The Ghosts of Species Christmas appeared to me to demand I reflect upon my misdeeds. Unfortunately, I was otherwise occupied, so I’ve been procrastinating on that ever since. But I’m getting a bit sick of the chain noises and the spooky jerk popping up through the floor when I’m not expecting it (I swear he’s doing it on purpose), so let’s take a look!
Ghost of Species Updates
Species has been on Steam for more than 3 months now, and I’m still not crushing the world in an iron fist. Slightly disappointing, but I’m willing to call it progress! The game’s gotten a lot of feedback and I’ve made a lot of changes since October…
- Performance Improvements – It’s hard to quantify exactly, but I’ve made some significant optimizations to the game since launch. I may have also murdered empathy in the process, but it’s safe to say Species now can handle far more abominations of nature than it could at launch.
- Stability – Oh my goodness yes. So many bugfixes. I’ve learned my lesson: in the future, major updates will be released on a beta branch for play-testers and early adopters.
- Mac and Linux Support – the game actually runs on Mac and Linux now! This is a big deal for me: I always knew I wanted Mac and Linux support, but actually trying to implement it intimidated the heck out of me. So glad I did!
- Underwater Ecosystems – Aquatic life is now nicely balanced with land-borne life, and both are viable niches for creatures to occupy.
- Graphics – Underwater worlds in particular look a lot prettier than they did with improved fog, lighting and most importantly bubbles. If I may take a moment to brag, the new sedimentary layers in the cliffs also look pretty awesome.
- Animation – Creatures body parts are now screwed on properly and spend a lot less time waving in the air like they just don’t care.
- Anti-cannibalism Measures – I may have screwed over the poor carnivores with this one, but they were cannibals. They deserved it.
- Over-hunting Suppression – But then they took revenge on the prey species! I had to do it! I had to kill them all! I’M A MONSTER OF CIRCUMSTANCE!
- “Niches” Automatic Population Control – designed to encourage creatures to continually adapt to new food sources rather than adopting a single strategy and relying on it forever.
- And so many tiny improvements to the simulation it’d be difficult to list them all here. Let’s just say, I’m satisfied that Species is a better game now than it’s ever been.
Okay? Okay! We’re done here. Take your chains, and…
… wait, two more ghosts? Seriously? Urgh. Fine. Let’s get this over with…
Ghost of Species Multithreading…
What? I’m working on it. It’s multithreading, it’s not exactly a photogenic topic, y’know? What, am I supposed to write a thousand word essay on race conditions? Nobody wants to read… oh, huh. Yeah I suppose I could share the prototype. That’s… actually a good idea.
One of the things that helps a lot when implementing big terrifying systems that you’ve never built before is to prototype them on a small scale. It allows you to learn where the bottomless pitfalls with spikes at the bottom are by face-planting into them in a safe environment (We put these little nerf balls on top of the spikes).
Multithreading falls into the category of “big terrifying systems that I’ve never built before”, so I made a little particle physics simulator to feel out the path ahead:
And then, long story short, I implemented the system I intend to use for multithreading. The results are… promising.
Of course, this is just a particle physics system, not a full game. Current results are not indicative of future performance, and all that. But nonetheless, “yyyyyuuuup”. I’m very much looking forward to getting multithreading working in 0.12.0.
If you want to try the multithreading prototype out, you can download it here:
(Generic disclaimer: The multithreading prototype executable is provided as-is, and is run at the users own risk)
BTW, stay tuned to this blog for the thousand-word essay about race conditions I’ve got planned.
Ghost of Species Roadmap…
So you’re the last ghost. So what’s your deal? Do you just stand there in a hood, looking ominous?
Last time I posted this, I did so without comment.
Let’s rectify that!
The indigo oval in the middle encompasses 0.11.0 and 0.12.0’s features: past and present respectively. Everything else is future.
Generally speaking, features closer to the center of the image will be implemented sooner than those out by the edge. If you can draw a direct line between 0.12.0 and the feature, it’s probably not too far off. The exception to this is the violet “modding” bubble in the top right, which is standalone and could happen at any time.
Lines represent relationships between features, usually of a “prerequisite” nature. For instance, flight is useless without perches, which can’t be added until the tree’s are overhauled. You can follow the lines to get a literal road-map from a possible 0.13.0 feature to one in the distant, post-apocalyptic future. (I realise I’m just assuming the apocalypse’ll happen here, but it seems a fair bet at this point)
The ovals around the features are colour-coded:
- Cyan – Gameplay. These features are centered around establishing an interesting game-play loop and a science-inspired progression system, wherein you unlock features in the game by observing and experimenting with the simulation.
- The closest feature here is ‘Sampling’, where you utilize the rovers to “sample” creatures and build a library of body parts for… later use. Oh lordy what did I just type.
- Green – World. Improvements to the world, mostly from a ‘simulation’ standpoint.
- The features I’m looking at here are seasonal cycles and a map editor. Admittedly, mostly for my own edification, but I know at least a few people are interested in the latter.
- Yellow – Creatures. Mechanical, graphical and animation improvements to the creatures themselves.
- These are incredibly important, but as you can see on the map most of them are gated behind other features. Most notably, I want to get working on the Phenotype Editor, a “spore-like” graphical creature editor (distinct from the numbers-based gene editor). This will come in handy for previewing and iterating on creature improvements.
- Red – Creature Interactions. Social and combat behaviors and balance improvements. By far the most important of these is making carnivory and hunting viable in the long term, but that’s also going to be an incremental process over the course of several updates. Calls and social behaviours, such as herd defense and pack hunting, are also high on my priority list.
- Indigo – Mod support. This is planned. I tend to think simulation games live or die on the strength of their modding community, so this is definitely planned.
- Violet – Multiplayer. Extremely long term goals. I’ll probably try networking in another context before I attempt to introduce it to Species: I have experience with the subject, but not as much as I’d like.
Mmm hmm. It’s a grave. With my name on it. And… the dirt’s shifting? Sweet, you mean that immortality ritual actually worked? And here I thought it was a scam. Best $20 I ever spent.
Alright, thanks for… whatever this was. I guess?
I’m going to bed and if the ghosts aren’t gone by tomorrow morning I’m going to start to researching how to build real-life proton packs. Bye!