Development Video # 2

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.

Annotations

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.

Locking up

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.

Vegetation

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.

Debug Bars

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.

In General

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?!!
Qu,

(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?!

Advertisements

, , ,

  1. #1 by Shaggy on October 25, 2011 - 11:46 pm

    I am so psyched to get ahold of this game. Having been following this since forever, I want to be in the beta. πŸ˜›

    The annotations were fine. A little quick, but I didn’t find it that bad.

    Is species colour also a variable for skin? Most of the textures currently seem really similar to one another, is there a selection process for colour? We need racist creatures.

    Also, did I see a creature actually think “Meh?”

  2. #2 by ququasar on October 26, 2011 - 7:40 am

    There are two colours per creature: a primary and a secondary. (There’s also a colour texture, which in the long run will mean stripes, spots, etc, but which is currently just a placeholder). Both mutate, but they are neutral: selection plays no part. But I’m planning on adding a ‘favorite colour’ to the psychology, which increases the chances of approaching and mating with any creature of that colour.

    The textures are not actually very similar to each other, and include textures taken from fish, sheep, snakes, rhinos, cane toads and so on, but I think the colour blending masks it.

    And yes, you did. I’m still working on implementing “Lolwat” and “Orly”.

  3. #3 by Reprieve on November 1, 2011 - 1:54 am

    I didn’t find the notations much of an issue either.

    If you’re planning on making the size variable more important, perhaps you could make it so only creatures of a certain height could eat from trees. This would provide a selection pressure to be big and help keep your trees around for longer. In fact, if there were adequate downsides to being big (increased energy needs etc.) then the population of “giraffes” might remain low enough that trees remain a permanent feature on the landscape.

  4. #4 by ququasar on November 1, 2011 - 7:31 am

    That’s a really good idea. I had considered the classic giraffe-evolution example, but I wrote it off because I was thinking about it in per-tree terms (ie. each tree would need a ‘canopy energy’ and an ‘undergrowth energy’, which would be silly and overly complicated). But distinguishing individual trees by height, and making them non-edible to midget creatures, has a lot of potential.

    Hmmm… it should also provide a selection pressure for torsoRotation, since standing on your hind legs makes you taller. Perhaps I’ll measure by physical head-height, rather than by overall size… yep, this one is definately going on the to-do list. Thanks!

  5. #5 by Reprieve on November 1, 2011 - 11:22 pm

    It could also provide a source for natural selection on trees, should you ever implement vegetation adaptation.

  6. #6 by Brandon on February 8, 2012 - 1:07 pm

    Really cool! Can’t wait for some kind of release! Keep us posted!

  7. #7 by ququasar on February 8, 2012 - 6:23 pm

    Thanks! The current plan is to do one more Development Video fairly soon, then start work on polishing it all up for an alpha release.

  8. #8 by baxed on February 13, 2012 - 7:09 am

    THis looks amazing! I’m so excited for the next dev video.
    One (Perhaps difficult to implement) idea i thought of is maybe generating a sort of ID number for each kind of species (Certain traits contribute differently in different places, sort of like a Hex color code). Then, you can run the simulation several times under different conditions and see if the most successful species are similar in each situation through the ID code (Maybe even making a way to see how genetically similar two species are by ID code)
    Keep up the amazing work!

  9. #9 by ququasar on February 13, 2012 - 11:49 am

    Would you believe I already have that?

    Hmm… I was about to go into loads of detail, as I often do, but I realised I might as well simply show it off in the Dev video itself. πŸ˜€

    I’ve been redesigning the User Interface with some help from an actual graphic designer, which has held it up a bit, but the video should still be recorded and released very shortly. Next week’s post, hopefully. (You know, I really shouldn’t say things like that. The universe has a nasty habit of proving my deadline-predictions wrong. Oh well, I guess we’ll see how it goes).

  10. #10 by baxed on February 16, 2012 - 11:49 am

    Awesome πŸ˜€ i’m so excited for the vid.
    Odd question: In the trials, have you noticed any symbiosis (specifically mutualism) developing between species? Any mutualism seems like it would be a good step in countering the “irreducible complexity” argument by showing that two systems can evolve to rely on eachother

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: