Posted1 screenshot
My Vision for Evolve

I’ve been developing games for around five years now, but I’ve never actually finished one.
That sounds worse than it probably is. Most of that time has really been spent learning. I’ve built lots of systems, started lots of projects, thrown plenty of things away and gradually learned more and more about how Unity actually works.
Everything I’ve made so far has been in Unity, and pretty much every project has eventually run into the same problem.
I like big worlds.
Survival games have always been the games I enjoy the most, and my dream has always been to make something that feels genuinely large. Somewhere you can head in a direction and actually feel like you’re travelling, rather than just moving between different parts of a relatively small map.
The problem is that doing that in Unity isn’t particularly straightforward.
Unity traditionally uses 32-bit floating point positions, and once you start getting several kilometres away from the world origin you eventually start running into precision problems. Things begin to jitter and behave strangely, and when you then add networking into the mix it becomes even more complicated.
There are ways around it, such as moving the world around the player with a floating origin system, but doing that in a multiplayer game adds another layer of complexity.
Most of the things I’ve built previously have therefore ended up being relatively small scale.
With Evolve, I want to try something different.
Building it differently
I’ve decided to build Evolve around Unity’s ECS and DOTS systems.
That is partly because of performance. A voxel world potentially contains an enormous amount of data, and ECS is very good at processing huge numbers of relatively simple things very quickly.
But it also gives me much more control over how the world itself is represented.
The long term goal is to build a world that can be much larger than anything I’ve attempted before, while still supporting networking and the amount of simulation I want to run in the background.
A lot of people would probably say that if large worlds are so important to me, I should just use Unreal.
And there is definitely an argument for that. Unreal uses 64-bit coordinates for its large world systems and has a lot of technology already built around enormous environments.
The problem is that I’ve spent years learning Unity.
Starting again with an entirely different engine, editor, networking stack and programming environment just doesn’t really appeal to me. Unity is also an incredibly capable engine, especially once you start digging into DOTS.
The downside is that DOTS has a fairly brutal learning curve.
So a large part of the first phase of Evolve is really going to be building the technology underneath the game.
A voxel survival game
The basic idea for Evolve is a hardcore survival game set in a world inhabited by dinosaurs.
The world itself will be voxel based, but I don’t want to use particularly large voxels.
Minecraft, for comparison, uses blocks that are roughly one metre across.
At the moment I’m thinking Evolve will use either 0.5 metre or possibly even 0.25 metre voxels.
That obviously means significantly more data, but I think the smaller scale could make a huge difference to what can be built with them.
Buildings should be able to have much more detail, terrain should feel less blocky and there should generally be more freedom to shape the world.
I also suspect I’ll eventually end up using micro-voxels for certain things where even more detail is useful.
Exactly where the balance ends up between performance and detail is something I’m going to have to discover as I build it.
A slightly strange visual style
Visually, I want to try something that might be slightly unusual.
The world itself is going to be stylised because it is made from voxels, but I don’t necessarily want everything around it to be stylised in the same way.
I want realistic clouds.
I want proper fog.
I want good lighting, storms, rain and an atmosphere that can sometimes feel almost realistic.
That might end up being a strange combination.
Traditionally voxel games tend to lean heavily into the voxel style. The terrain is voxel, the characters are voxel, the clouds are voxel and everything fits together nicely.
I want to experiment with mixing the two.
There are actually plenty of Minecraft shader packs and mods which do something similar. They take this extremely blocky world and put realistic skies, lighting and weather around it, and somehow it works.
Whether I can make that work for Evolve remains to be seen.
Making the world feel alive
Probably the biggest part of the vision is the simulation itself.
I don’t just want survival to mean watching a hunger bar slowly go down.
I want weather.
I want seasons.
I want temperature to matter.
I want crops to grow differently depending on the time of year and the conditions they’re growing in.
I want rain, fog, wind and changing weather patterns to actually affect how you play.
If winter is approaching, I want there to be a reason to prepare for it.
Then on top of all of that are the dinosaurs.
The aim is for the world to feel like a place you are trying to survive in, rather than a world that exists purely to give the player things to fight.
Where the game goes after that initial survival experience is still a little bit up for debate.
I have plenty of ideas about progression and what players might eventually work towards, but I don’t want to design too much of that before I actually know whether the underlying survival game is fun.
My plan is to build the world first.
Build the terrain.
Build the simulation.
Build the basic survival mechanics.
Then play it.
Once I can actually spend time in the world, I think it will become much clearer what the longer term progression loop should look like.
Multiplayer from the beginning
Another thing that is very important to me is multiplayer.
I enjoy survival games far more when I’m playing with other people, and Evolve is going to be built as a networked game from the ground up.
Technically I expect you’ll be able to play it alone, but I think the game will ultimately be at its best with friends.
I’m also planning to use dedicated servers rather than peer-to-peer networking.
There are several reasons for that, but one of the biggest is simply that I want the server to be capable of doing a lot of the heavy lifting.
If the world contains large amounts of simulation, AI, weather, animals and potentially lots of players, having a dedicated server gives me somewhere authoritative to process all of that without relying entirely on one player’s PC.
PvP, but not Rust
I also want PvP to exist.
Not because I want to make another Rust, but because I like the risk created by knowing another player might be out there.
You might be hunting.
You might be gathering resources.
You might be travelling somewhere with something valuable.
The fact that another player could interfere with that adds another layer of tension to the world.
At the same time, I want PvP to be completely optional.
There is a fairly common belief that PvE and PvP players cannot coexist in the same game and that you have to choose one or the other.
I’m not convinced that is necessarily true.
I think a lot depends on how PvP is designed.
In particular, I’m far more interested in encounters between players out in the world than I am in making a game centred around destroying somebody’s base while they are offline.
Base raiding creates an entirely different style of game.
I want PvP to create risk without necessarily becoming the entire reason the game exists.
How that balance actually works is something I’ll have to experiment with much later.
Steam Deck?
One slightly ridiculous goal I’d also really like to achieve is Steam Deck support.
My wife has a Steam Deck and absolutely loves it, and I think being able to play Evolve on a handheld would be brilliant.
Whether that is remotely realistic for a game with an enormous voxel world, dinosaurs, weather and lots of simulation remains to be seen.
But this is another reason I’m excited about using ECS and DOTS.
If I can make the underlying systems efficient enough, then theoretically I can start scaling things like draw distance and simulation distance down depending on the hardware.
Maybe a desktop PC can see kilometres into the distance while a Steam Deck sees considerably less.
I genuinely think it might be possible.
We’ll see.
The plan
For now, almost all of the work is going to be on the underlying engine.
Terrain generation, voxel storage, networking, world streaming and all of the things that need to exist before there is really much of a game.
I’m giving myself somewhere around three to six months to get the core world technology into a state where I can confidently say it works.
Hopefully within around six months I’ll have something resembling a prototype where I can actually run around the world.
Then perhaps another few months to start adding some real survival mechanics and an actual gameplay loop.
And, if everything goes particularly well, I’d love to have something approaching Early Access within roughly twelve months.
Those are very ambitious timelines.
Considering I’ve spent the last five years starting games and never actually finishing one, there is every possibility I’ll look back at this post in a year and laugh at them.
But that’s the vision.
A huge voxel world.
Dinosaurs.
Seasons, weather and survival systems that actually matter.
A world you can explore with friends, where another player might be just as dangerous as whatever is hiding in the trees.
Now I just need to build it.