Alright, here’s what what’s done as of 0.5.0:
I know the original plan was to work on the simulation first, but 0.6.0 will be a slight deviation: I’d really like to fill out the gameplay profile above with Species-level Interaction and Ecosystem-level Observation tools. Aside from being entertaining, these upgrades should provide systems that will help me tweak the simulation in the future, and will allow me to focus exclusively on the sim for later updates rather than switching between interaction and simulation work all the time because I’m still worrying about whether the game is “fun enough”.
So without further ado:
Ecosystem Observation Tools
1. Sat map.
A 2d satellite map of the entire world, showing creatures as coloured dots or icons. Currently the player has to zoom out to see the movement of the creatures as a whole, which makes population concentrations hard to spot and the geographic distribution of different species impossible to track. This abstract view will allow for a much better visualisation of population dynamics in general.
2. Clade Diagram/Fossil record.
A proper one, with zoom and pan, and a “fossil” copy of the Species Average stored every few generations, stored as a node on the species line. Since it’s going to be sprite-based rather than render-target based, features like per-pixel population-sizes will be lost. I’m okay with this, since in exchange we get loads of other features: selecting species by clicking their lines, and shuffling the nodes of the graph as it develops (so you don’t end up with lines on top of lines), and viewing the graph in real-time or symbolically by generation, will be possible.
The population history will remain in the game, since it’s per-pixel population sizes are still useful, but I’m not planning on working on it any further. This new graph will replace it as the games official Tree Of Life.
I’m also not sure whether I’ll get to it, but I’d like to make is possible to see a “march of evolution” of the selected species avaliable as a part of this feature. That might get postponed, though.
I think this will probably be one of the most important features of 0.6.0, since it will give the in-game evolution post hoc evidence of actually having happened. It gives each saved world a past history, rather than just a present moment.
3. Web of Life
I cannot wait to work on this one: it will be a great way to see exactly how the mechanism of speciation works. What it will do is show genetic relationships as a node-link web, complete with it’s own elastic physics, world-of-goo style. Baby creatures will be added to the web, and dead creatures removed, in real time. Different species will be visible as groups of nodes with no links connecting them. Speciation itself will be visible as an area of the web ‘breaking off’ as the links (creatures) holding it to the main population die out.
Species Interaction Tools
1. The Mk1 All-Terrain Programmable Rover.
BAM! Hands up everyone who saw that one coming. (If you’re currently holding your hand in the air, congratulations on discovering your latent psychic abilities)
Yes, we are going to add a rover. Or more accurately, rovers: I plan to make them spawnable, so you can set up as many as you like.
This early in the piece they’ll be programmable only in the most simplistic fashion: [Feed/Kill] creatures who are [High/Low] in [Statistic]. But the advantage of it is that it will be operational at 10x speed, and it won’t get bored like a player would: it’ll just keep doing it’s thing until you tell it to stop. This will make artificial selection much easier to apply.
They’ll definately be drivable, if only because it’s easier to program them that way in order to test the physics, and it seems silly to remove a feature like that. I don’t know yet whether you’ll be able to do anything with them when you’re drive them.
I want to give these guys decent physics, too. None of the oversimplistic stuff the creatures use: the rovers will exist in limited numbers, so they get to have proper suspension and tire-friction. I’m hoping to do a halo|warthog-style exaggerated physics model for them, to give them a bit of character and make them fun to drive. I realise that doesn’t make much sense for a scientific rover, but there’s no way I’m going to pass up the chance to make something
1. World Types
I really don’t like “island” being the only world type: the semi-static shore biomes annoy me and the biome system is capable of much more than just islands. Simply adding a minus sign the the height/fertility equation can give us islands of forest in a salt plain, for example. So making the world system more versatile will be an important step.
2. Upgrade to XNA 4.0
Simply because it’s something I’ll have to do sooner or later. Might as well get it out of the way.
Oh, and it’ll probably come with a bunch of other tweaks and fixes to implement as I go, much the same as I did for 0.5.0.
One big advantage of the stuff included in this update: all of these features will be a lot faster than anything in the last one, which involved several major overhauls to existing systems. These are just UI screens and spritebatch representations of existing data.
Oh, and a realistic 3d point-vector physics engine for the rovers, but it’s not like physics is actually hard or anything. Normally that would be sarcastic humour, but it’s three days since I started working on this and I’ve already got something drivable, so… yeah…
Truth is, I expect 0.6.0 to be a pretty quick release. 😀