Presenting the unholy lovechild of Fraps, Species and Premiere, whose birth heralds the riding of the horsemen and the coming of the prophesied end times… or would do, if October 21st wasn’t 4 days ago…
… Hmm. I don’t really have much to add here. I think I put far too much information into the annotations this time around.
I stuffed them up again. It’s hard finding a format that works: the first video’s annotations were distracting, this video’s annotations are unreadable without taking your eyes off the video. Plus they’re really fast, because I tried to put too much information into them.
I’m still reluctant to actually narrate because I sound like a nerd.
The game in it’s current state generally stops responding somewhere between 15 and 25 minutes in due to a SystemOutOfMemory error. This is annoying, but I’m fairly sure I know at least one way to reduce the memory footprint. It might also be related to running fraps at the same time: I’ll have to investigate that.
Looks nice, doesn’t it? I ‘borrowed’ a few images from google. It’s amazing the difference a good texture makes. But since I don’t know whether they’re under copyright or not, they’re still just placeholders. I’ll make my own trees eventually.
As you can see, a stable population of creatures tends to keep the vegetation from growing back. This is annoying, because the trees add a lot to the visual design. I’d like to work out some way of keeping a decent number of trees around even when there’s a moderate population amongst them: maybe rather than shrinking/growing, trees could transition between a ‘dead’ texture and a ‘live’ texture? Not sure, but mulling it over.
For the programmers amongst us who find this sort of thing interesting, here’s the colour key for some of the larger debug timer bars:
Blue: Update Call. Creature AI, Behaviours, Movement, Interaction: I've managed to reduce this one by a lot by messing around with the implementation. It's quite a compact routine now, though the code needs a major clean up.
Green: Species/Population Tracking. This should be almost entirely taken up by comparing creature genetics to search for speciation. Unfortunately, it's not: that's actually surprisingly fast. What really takes up the time in this routine is drawing the population graph. Render Targets hate me: the entire population graph may have to be re-written to fix this.
Magenta: Prepare Draw. Updating the animations, bone sizes and positions. This is where most of the Skinning is done. Lots and lots of matrix operations. It's been optimised, but it's still a fairly heavy routine. But not as heavy as...
Blue (2): Draw Call. Thanks to the 'every creature is unique' nature of Species I can't use mesh instancing, so drawing 1000+ creatures takes an utterly unholy amount of time. I am using State Batching where possible (so, for example, I draw all the torso's in one loop, all the necks in the next loop, and so on), and that helps, but mostly it's just a blow I have to take.
There’s any number of things that need improvement visible in the video, mostly related to entertainment value more than accuracy. Some, like homogeneity and being able to tell which species is which, are general behaviours that require a subtle solution. Other’s, like implementing a proper vision system for creatures, are specific and obvious. It’s probably simplest to focus on the specifics for now, since they’ll likely have massive effects on the overall behaviour of the simulation. A lot of work to do yet!
The Next Video
… I realise this video was kinda boring overall, so the next one will be about showing off potential creature variety and the effect different shapes and body-parts have on stats. Much more interesting! But there’s a lot I want to implement before doing that, and if this video was anything to go I happen to be absolutely terrible at getting these up at the time I want, so don’t expect it for a while, okay?
Huh. Guess I did have more to add. That was unexpected.
Oh well, it keeps me entertained. Not much else to do in the EMP cannons prison block. Thank goodness they have internet access, that’s all I can say. Very forward thinking of me, putting internet access in my own prison cells- DAMMIT WHY HASN’T ANYBODY LET ME OUT OF HERE YET?!!
(UPDATE) At 5:53 EST the insect-man army broke our defenses and overran the Orbital EMP Cannon. We were all taken hostage by the geneticist Overlord and mouthpiece for the bio-scientist hivemind, a rather pleasant bearded fellow.
Thankfully, after we locked Qu in one of the cells to shut him up, I was able to convince the Overlord to spare our lives. He even let us keep the cannon, though he took the firing mechanism (for our own safety, of course).
It’s been several hours, and everything has returned back to normal. Seems remarkably quiet, though. Strange, though. I can’t shake the feeling I’m forgetting something, but for the life of me I can’t remember what it is…
IT’S ME YOU BLOODY SASQUATCH! LET ME OUT!
… nup, can’t think what I might be forgetting. Oh well, I’m sure it’s nothing important.
I WILL WREAK VENGEANCE UPON YOUR PATHETIC FORGETFUL SOUL! YOU HEAR ME?!