I’m not 100% sure still, but my best guess is power states. The game barely loads the GPU, so the NVIDIA card dropped to idle clocks and slowed the PCIe link, making each upload crawl. OBS kept the card busy encoding, which hid it. Either way, I now only send what changed, and that fixed it for NOW.
Had a weird one. The game ran at 3 fps, but only when I wasn't recording. As soon as OBS started it was perfectly smooth, which made it really hard to catch.
Ended up pulling stack traces off the running game to see what it was stuck on. Turns out it was sending the whole live water simulation to the graphics card every frame, about 5 MB, when almost none of it was changing. Now it only sends the bits that actually moved. Back to normal.
Also built a little wall out there. It's not tall, but it's a start. I did notice performance dropping the more I built, so that's something to look into next.
Next for building is rotation. Right now a block faces whichever way you're looking when you place it. I also want building in this game to take real work and effort, so I'm still finding the balance between quality of life and what I'm aiming for with this prototype.
Frame Engine 0.1.0 is nearly here, Friday 30 October at 10pm UK. The legal side and the rest of the release prep are pretty much done.
I also need a way to fly around in game. It took me about 10 minutes of walking to get to this spot for a good sunrise shot.
#FrameEngine #gamedev #indiedev #rustlang
@Giulio6686 all of the above making are own game engine, and a game on it, and nearly there for the first public build off the engine, cant wait to get peoples feedback hopefully soon!
Most of what I worked on doesn't show in this photo, but it's the reason I'm standing on the grass and not stuck under it.
This is a playable build of the game, made with the engine's own game builder. It packs up the game's files and encrypts them, so it's ready for basic distribution.
The game has a proper scene setup now. It opens on its own menu scene, and pressing play loads the world. The player isn't saved in the world any more either. The game makes the character when you load in, finds a spot near the middle of the map that's dry, flat enough to stand on and away from water, then drops you onto it from just above the ground. Anyone joining a server gets placed the same way, next to each other.
Found a fun bug along the way. I'd dug a hole right in the middle of the map ages ago, and the spawn worked out the ground height there wrong. So it put the player inside the hill and they just fell out the bottom of the world. It stays away from dug ground now.
The world is slowly starting to get more colour to it too. Later on I might make the grass its own thing per patch, so it grows over time and each section can be a different length. Grass is going to be one of the basic resources in the game, so it should feel like something you can use up and watch come back. Still loads more to do.
What's the first thing you'd want to see when you load into a survival world?
#FrameEngine #gamedev #indiedev #rustlang
Frame Engine 0.1.0 is ready. Everything’s tested, the docs are done and the build is sitting there waiting. It goes public on Friday 30 October at 10pm UK time.I’ve only been able to test it properly on Linux. Windows has had a little testing and Mac none, so I don’t know yet what works and what breaks on other setups. If you’re on Windows, Mac or a different Linux or GPU and want to try it early, join the Discord and I’ll point you at the build steps. If anything turns up, I’ll work as fast as I can to patch it before release https://t.co/VwwwkiiR1D #FrameEngine #gamedev #indiedev #rustlang
@itzSaasified Not really testing either yet. I’m finishing up the engine for the 0.1.0 release right now. After that I’ll get the basics syncing between players first, like digging and building, and then properly test the multiplayer side across two machines.
Left the camera still over a valley in my game and let a couple of in-game days go by. Plus a couple of shots from the same world.
The game is a multiplayer survival game, and I’m building it on Frame Engine, my own engine written in Rust. Everything you see here is the engine’s own renderer, terrain and sky. The game is how I find out what the engine is missing, then I go and fix it. Frame Engine 0.1.0 goes public on Friday 30 October.
The streams are new. The world now works out where rain would run downhill, cuts small channels and ponds for it, and the water follows them. Getting them to actually show up on screen took a lot more attempts than I’d like to admit.
The bushes are new too. Each one is built from its own seed so no two are the same, and they’re shaded the same way as the clouds. Still a first pass, they go far too dark at night and I’m already fixing that.
What would you like to see happen in this world?
#screenshotsaturday #FrameEngine #gamedev #indiedev #rustlang
Day 100/100 of building a city-sized zombie simulation
It started as a GPU simulation experiment. Now, unexpectedly, it's going to be a playable sandbox game on Steam.
Excited to share the announcement trailer for Zombie Outbreak Simulator!
(wishlist link in the 🧵)
Snow used to be one flat white cap at a fixed height.
Now it follows the land: shaded hollows hold it, ridge crests and steep faces lose it.
Same mountain, same camera. On this tile hollows are 74% snow, crests 10%. Then one word in the world plan (“winter”) snows 89% of the ground.
Rebuilding the 0.6 km tile with snow takes 6.8 s.
Right now the multiplayer lives in the game, not in the engine release. It’s a small server that both players connect to, and so far I’ve only tested it with two windows on one PC. It’s on TCP for now with no smoothing, so movement is choppy, and digging and weather aren’t shared yet. Moving to UDP is something I’m looking into.
Both, sort of. The channels are made with the terrain, and erosion carves them from the world’s rainfall, so they’re always in the same place. Near the player there’s also a live water sim, and rain builds up and runs downhill in it. The streams themselves don’t rise yet though, so no floods so far. A crossing that’s fine one day and risky after a storm is a really good idea, and exactly the kind of thing I’d want the water to do.
Frame Engine now comes with an example project, so the first thing you see isn’t an empty scene.
Open it from the launcher, press P, and this is what you get: a row of entities each running one of the scripts from the getting started guide, a few steps to climb, and a character you can walk around with WASD. Every script is a few lines of Rhai you can change while it plays.
Building it found two real bugs. Entities resting on the ground counted as colliding, because touching was treated as overlap, so everything on a floor was tinted red and fired a hit every tick. And a cube 0.3 m tall placed at 0.15 m sank six nanometres into the ground, because positions are f64 and scales f32 and the two round differently. Now anything closer than a micrometre is touching, not colliding.
New projects also start with a ground, a sun and one cube instead of three entities floating in nothing. It’s not perfect yet, and I’m open to suggestions: anything you’d recommend I’ll look at, and if it fits before the release I may well add it.
What do you think belongs in a starting scene?
#FrameEngine #gamedev #indiedev #rustlang
One week to go. Frame Engine 0.1.0 goes public next Friday, 30 October, at 10pm UK time.
It’s a source release: clone the repo, build with cargo, open the editor. No installers yet. It’s been tested day to day on Linux, lightly on Windows, and not at all on Mac, and the README says exactly what it has and what it doesn’t.
Between now and then it’s testing, release notes and making sure a stranger’s first ten minutes go smoothly.
That’s where I could use help. If you’re on Windows, Mac, or a different Linux setup and you’d like to be an early tester, join the Discord and say hello. I’ll give you the current unstable build, and any feedback you send back before release goes straight into it: https://t.co/KAyFwgP1up
What do you check first when you try a new engine?
#FrameEngine #gamedev #indiedev #rustlang
This clip is my game’s world running in the Frame Engine editor: the sun coming up and going down over the valley while the clouds build and fade. It’s nice to look at, but most of what went into the engine lately is the stuff you can’t see.
Getting Frame Engine ready for its first release is taking a lot longer than I thought. Most of it isn’t new features. It’s testing, keeping the libraries it’s built on up to date, polishing, and making it easier for someone new to pick up.
I cloned a fresh copy and went through it as if I’d never seen it before, and kept a list of everything that tripped me up. Creating a project used to drop its files straight into whatever folder you picked. Now it makes a folder of its own. When Create or Open fails, the editor now tells you why instead of doing nothing. If you drop in a model file it can’t read yet, like a .glb, it says so instead of quietly drawing a cube.
The README now covers what you need before building, and there’s a new getting started guide. It starts with small scripts in Rhai you can change while the game runs, then shows how to write your own features in Rust and hook them up so scripts can read and tweak them.
I also checked that the oldest version of Rust I support really builds it, and tidied the whole codebase so a clean build has no warnings. Along the way I found that spawning from a script had never worked at all. “spawn” is a reserved word in Rhai, so any script using it failed to compile. It’s now spawn_new, and a test runs every script example in the docs so they can’t quietly break again.
If you’ve tried a new engine or tool, what made you stick with it or give up early?
#FrameEngine #gamedev #indiedev #rustlang
Made a few tweaks to our water in Frame Engine, our own engine written in Rust, and it’s already looking a bit better. The stripes are gone, and after a storm the runoff now soaks slowly back into the ground instead of vanishing. This is all running through a local server.
Did you notice the wall melt away at the start? Those dry mud bricks, with grass worked in, are the start of the first gameplay loop we’re building: dig mud, shape it, dry it, build with it. Max rain turned it back to mud a lot sooner than I expected, but fine.
60x in-game speed for the first 2 minutes, then 600x. The rain fills the valley through the day and night.
Still very early and everything is made in code. What would you want to build or test next in this loop: roofs to keep the rain off, fire to dry bricks faster, or something else?
#gamedev #indiedev #rustlang
Testing the new main menu prototype scene, played through a local server. Game builds can now run more than one scene per project, so the menu finally has its own world behind it.
Everything is still very early. Our first basic gameplay loop is working, but there are no real 3D models yet. Most of what you see is made in code.
As you can see at the end, the water system still bugs out at times, but we’re slowly getting there.
What would you want to see first in a survival game like this?
#gamedev #indiedev #rustlang