I’m back after a while. It’s been long since I last posted here, a year in fact and even longer if only considering longer devlogs. So what have I been up to? I’ve been all over the place - studying contemporary and not-so-contemporary philosophy and mythology, but most importantly, I’ve been working on the game throughout the spring and summer. I’m also starting my studies in Computer Science this fall at the University of Tartu, so I have no plans to disappear any time soon.
I’ve been considering posting devlogs for a few months now, but I’ve held back as a lot of my work has been technical with little visual output. And hey, who wants to drown folks with complex engine stuff and imagery that makes it look as if all the game that there once was is being restarted. Luckily this isn’t one of those cases. I’ve been fleshing out the necessary components of the engine that didn’t exist before to actually move forward with development (Fully integrated multiplayer is a thing now, yay! But more on that later). If you’ve seen my older devlogs, you might know that I didn’t have any fancy terrain generation, there was no properly working multiplayer, the NPCs were rather janky and the combat might just do justice to an 80’s action movie.
So where are we now? The magic called the core engine is quite close to being finished. Dynamic (spinning, jumping and flying!) terrain has been implemented to support more immersive gameplay features. Modularised multiplayer is implemented into the core of the engine, which means that nothing has to be hard-coded and multiplayer features are easier to implement than ever. Concepts for the lore of the game, procedural world generation, general progression, ideas of combat, magic and more have been tidied up and some even implemented to a small extent. 2Volution also requires a slight name alteration, it’s fine cheating the numeric-alphabetical sorting system for a while, but no point doing that forever. I’ll tell more of this soon™.
Has the general idea of the game changed? Nope. This soon-to-be-game, once it’s released in 2045, will be a procedurally generated dangerous roguelikelikelike combined with more peaceful dwellings in places that you’ve never heard of before - probably because they come from the Estonian and other Finno-Ugric mythologies with a slight mix of custom lore and worldbuilding. It’s still going to feature co-op, puzzles and monsters as noted in the game’s description.
What I’m going to do next is exactly what I wanted to avoid - flood the place with technical updates that might at times include topics and themes that require some knowledge of how things work behind-the-scenes, but I hope I can do justice to that with fancy gifs which make the devlog interesting even to those that would rather skip all the coming engine talk. I’ve prepared 4 or 5 slightly longer devlogs in advance, each getting a little bit more interesting to those with no technical knowledge.
Update stuff
So let’s start off by just jumping straight back into April - when I took the world apart and put it back together in a slightly different way.
Generally, sandboxy games divide the world into chunks - block regions of the same size that is usually a power of 2. While this is a great solution to having to deal with only tiny parts of the world memory management and processing wise, it still has its issues. First of all, dealing with entities per-chunk isn’t really that effective. You end up having to deal with the mess of transferring entities between chunks, flooding the HDD with loads of files and generally not having a lot of say about grander-scale features. That’s why I split areas of chunks into Zones that contain a couple hundred chunks. Zones deal with Zone specific entity data, file handling, camera management, structure generation and more. The Zones are stored in Regions, which depend on a more general game object called ‘Link’. Links provide the dynamic shell to chunk Regions, allowing them to move around the world, interact with each other, be relative to each other and generally do any crazy thing I want them to.
The colourful squares at the start of the gif are Chunks, the white rectangles are Zones and green areas are Links/Regions. The red rectangle is the camera view that a player would have. The gif shows chunk management with cameras and how relative regions work with the camera.
So what will this be used for? Many things (including the world tree on which a bunch of realms await to kill you).
For example, I can have rotating windmills (imagine that the bottom rectangle is the windmill building and the rotating square is the vane):
Or I can have a region follow an object similar to a flying ship:
The point is, anything is possible as long as it’s thought of! I’ll be showing what I can do with this in a couple coming devlogs.
6 comments