It’s about time I wrote one of these. I’ve been working quietly on 0.13.0 in the background for a while now, but I didn’t want to write anything solid until I was certain 0.12.0 no longer being haunted by the dreaded ArithmeticException.
0.13.0 will revolve around improving the New World screen, or at least changing it to be something more user friendly than an impenetrable wall of number spinners. Instead of one New World screen, the game will have 4: Quickstart, Creatures, World and Advanced Settings.
Quickstart will be exactly what it says on the tin. You’ll get a creature panel with the Type dropdown (Initialise Blank Slate, Initialise Random, etc), and a Map panel with the Randomise button and maybe some temperature/fertility sliders. That will make it nice and easy for new players to find their way into the game without being overwhelmed with unnecessary options.
The Creatures page will be a bit more involved than before, and will include at least a few new options for customizing your starting creatures. Not a full-scale creature editor, but a few basic adaptions for things like temperature and oxygen. This should allow you to start in a tundra without immediately killing everyone off.
Initialise Exported will also have an interface to control which creatures you want to populate the world with, and I’m considering giving Initialise Random should include the ability to page through the randomly generated creatures and choose whether to keep or discard them. Like Tinder but for Abominations of Nature.
The World page will be the centerpiece of this update, and will include a realtime 3d map editor. The player will be able to shape the worlds landmasses with raise/lower/flatten brushes, and the game will automatically apply erosion to make the result look more natural. This is where my shiny new erosion algorithm will come in handy.
I had a lot of fun working on this. The algorithm simulates rain erosion, cutting sediment out of cliffs and depositing it in catchments, creating ravines, plains and just generally making the heightmap look so much better than it did. Just… so much.
Erosion will not happen in-game: the terrain I use is still optimized for a static height map and Monogame’s OpenGL platform doesn’t support Vertex Texture Fetch (Monogame is open source, but I don’t currently have the expertise or understanding of OpenGL to implement it myself), so that will have to remain as is for now. But when complete it will look a lot fancier and more natural than the current playdough-terrain shapes. Take a look at some of these comparison screenshots I hacked together.
Click to enlarge
Since the terrain will now include fancier and more realistic cliffs, I also intend to adjust creature’s pathfinding a bit. Climbing will need to be significantly more expensive than walking to make cliffs serve as barriers to geographic dispersal, especially since the ocean no longer serves that purpose once they find an amphibious survival strategy.
The Advanced Settings page, for settings what be advanced an’ stuff. This will serve two purposes:
- This is where you’ll find all the lesser-used input spinners you currently see on the New World screen that aren’t directly related to the starting creatures or the world. I prefer not to remove features unless I can confirm that nobody is using them.
- More importantly, this is also where you’ll find brand new settings. Some people have been doing amazing experiments with the settings available in 0.12.0, and I want to help facilitate this scientific approach to the game by providing new variables to tweak. At the very least, some modifiers for the stamina and oxygen bars would seem to be in order. If you have any suggestions for settings, let me know!
Other things worth noting
Sliders: To make the new world page more user-friendly, I’ll be implementing horizontal and vertical sliders in place of the existing Input Spinners. Hopefully I can find a good way to balance making these simple and user friendly with making it possible to see and type in the decimal value you want.
Scrollbars: I’ve needed to add a working scrollbar control to the game for a while, but I keep putting it off. The Species GUI is a… let’s call it a “proprietary system” (read: homegrown mess), so I need to implement new controls myself. Additionally, a scrollbar is defined by its relationship to other controls, so it’s a bit more complicated than a simple spinner or label. But I’m committing to it this time. We’ll have scrollbars in Species 0.13.0, and I’ll retroactively apply them to everything that needs ’em.
Biome Editor (?): Big question mark on this one, but I’m toying with the idea of making the biome map 100% customizable, down to the type and number of trees that spawn in each biome. On the one hand it would be a good feature, particularly for people interested in modding the game, but on the other it would be a fair bit of extra work and may eventually prove redundant when it comes time to overhaul the Vegetation system into something more ‘evolutionary’. We’ll have to see how it goes.
Tweaks: As always, once the major features are done I’ll launch into a few weeks of bugfixing and tweaking the simulation to be more interesting and intuitive. This is when most of the physical and behavioural adjustments will come into play.
Unfortunately, 0.12.0’s tweaking period got absorbed into my epic battle against the Arithmetic Exception (I dance on it’s grave), so I have a fair-sized backlog of minor adjustments I’d like to make when 0.13.0 comes out.
Frequently these tweaks can do as much for the game as the major updates, so I imagine Species will undergo a rapid (and hopefully very positive) diversification period immediately after 0.13.0 is released.
Do you have any idea’s for tweaks? Let me know in the comments below.