Posts Tagged Philosophical
With the basic body-plans implemented, the next job was detailed bits: things like hands and feet. In truth, this is probably one of very few aspects of the game that were changed very little from the original design: I take this as proof that the many long hours I spent labouring tirelessly over design documentation prior to beginning the game were well spent, because my fragile psyche is more comfortable with that idea than the alternative.
Individual body features like this are simple, pre-built parts, imported and attached to the end of the much more complex limbs. In general though not always, their only mutable statistics are scale and ‘type’, type being a discreet integer: the ultra stat that determines all the other stats. One stat to rule them all, and other such unoriginal movie references.
The complexity of these parts will come in the form of versatility via quantity. I intend to add a ridiculously large number of different types of feet and hands, all with different stats and connected through a web of allowable mutations.
Interestingly (well, to me: my sense of interest runs on Insane Troll Logic), this sort of feature requires a very different approach when it comes to generating content. With a feature that relies on procedurally manipulating geometry, like the torso or to a less extent the limbs, content generation is exponential: I do a bit of modelling work and then spend a lot of time programming, but I don’t actually see any content until the very end at which point there is suddenly ridiculous amounts of variety spewing messily all over the place: thin torsos, thick torsos, wide torsos, fin-shaped torso’s and symbolically phallic torso’s.
In general, I like this approach. Sure it takes a load of work before you see any result, but the ultimate result is awesome. Oh god, did I really just say that right after that screenshot?
With features like limb-tips, on the other hand, content is very much linear. I do a little programming, and from that point onwards the amount of content in the game is directly proportional to the amount of modelling work I put in. And quite frankly, I’d rather be improving the game mechanics than building crappy placeholder models for it until I can get an artist to look at it, so this sort of content is sorely lacking.
I do have a rather interesting idea to combat this lack of content, but I’m not certain how easily it can be done… stay tuned on that front. 🙂
Moving on, with hands and feet modelled and in place at the ends of limbs, it was time to move onto heads. Heads are more complicated than hands and feet, because they’re not just an attachment: they also do something. I’m not talking about influencing diet, or bite damage, I mean something technical… okay okay, feet raise the body by a certain amount which is “doing something technical”, but if you’ll just disregard my inability to be internally consistent for a moment and let me make my bloody point… What Heads Do is serve as an attachment point for Eyes.
Eyes are the most complicated type of feature, because in addition to having an independent texture and model (both of which influence their stats), there can also be any number of them, and they can be situated anywhere on the head (spoiler: later they’ll be able to be situated anywhere period. For the moment, just the head).
My initial solution to this conundrum left a lot to be desired. I instituted the EyeList, a system for tracking and mutating a variable number of eyes, and when I was modelling the head-shapes I added several rows of dummy objects. Each dummy object was a potential eye position, and by using them the eyes knew where to appear on each of the differently shaped heads.
I’ll go over the many horrobad problems inherent in this system later, when I reach the point in the saga where I fixed them. Suffice it to say, my fixing involved a method roughly analogous to the method veterinarians use to fix pets.
In the meantime, Eyes! And Heads! And Feetses! That is totally a real word!
/tangent I’d like to quickly expound on one other difference between procedural content and handmade content. Handmade content is specific, which means it can be tailored. So if I want a head shaped like a donut, or a skull, or a paperclip, I can model and import a head shaped like a donut, or a skull, or paperclip. But with procedural content, I can never reach that level of freedom: I might be able to get a spectrum of infinite variations on torso width and height, but I’ll never have a skeletal torso, or a torso with a great big hole through it, unless I add a discreet aspect to the Torso genetics (hmmm… idea…). This sort of melding of discreet and floating point variables can produce an astounding amount of potential variety amongst the creatures: certainly more than I expected when I started designing the game.
Our universe is purely procedural, but then again it can afford to be. It doesn’t require considerations like CPU usage and memory footprint: where I’m forced to simulate a creature using maybe a hundred distinct numbers, our universe simulates a creature using trillions of physical molecules all working at cross-purposes. The limitations I run into are ultimately the result of discreet variables representing macroscopic structures: the various 3d meshes that make up body parts. The universe has no such discreet variables: everything in it is floating point, to a Planck level of accuracy.
Ultimately, it comes down to the fact that Species is a simulation of a universe, not a universe in and of itself. But I’m certain the creatures in Species don’t care. They struggle to survive and reproduce in their own universe just as much as real-life creatures do, so maybe… just maybe… that qualifies them as alive…
* * * * * *
PS: I’m going on holiday for a bit (New Zealand! I’m gonna join the sheep races and be the fastest sheep jockey that ever lived, and then I’ll feed my hire car to the birds that eat cars, and then I’ll hang around Mount Doom heckling the midgets with rings!), so it’s improbable there’ll be anything to see here for the next two weeks. But I’ll definitely be back come Christmas.
* * * * * *
“I haven’t the heart to tell him there’s no such thing as sheep races…”
(Written by a younger me, aka. a jerk who took himself far too seriously)
Quite some time ago I spent time thinking about what separates Life from Non-life. There are many features that immediately spring to mind, but they all seemed to have plenty of exceptions. Consciousness? Plants have no sensory organs. Reproduction? A simple machine can easily duplicate itself. Organic molecules? Created all the time by simple chemical reactions. DNA? RNA creatures might object to that. A soul? I’d prefer an answer which we can verify actually exists. And so on…
At about this time I stumbled onto a small evolution simulator called “Primordial Life”, created by Jason Spofford. It reproduced small ‘Biots’, which used simple hereditary and mutation to fight for survival on the computer screen. I spent fascinated hours watching the life cycles of these simplistic collections of lines, saw entire ecosystems come and go… but eventually I got bored, and went to turn it off.
But I hesitated. These ‘creatures’, despite being nothing more than a small collection of variables rendered on the screen, had spent hours developing on my computer, had descended from creatures that had survived mass extinctions and developed brilliantly to the environment they lived in… and I was about to simply delete them and destroy their entire universe.
And I decided then what defined life, at least for me: Evolution.
The struggle of each population to survive, individuals changing randomly but being directed and guided by natural selection, made the biots more than mere lines of coloured pixels.
They might have lived in a tiny, restricted world, limited to the 2 dimensional space on the screen, but how different is that from real life, which lives on a tiny planet, limited to the 3 dimensional space it can see and interacts with? It’s easy enough to argue that the biots could never evolve things like intelligence, but this is a limitation of their environment: unlike real life, their mutations are limited to a small set of variables.
So I decided to see whether I could make an evolution simulator on a much more massive scale. A full sized 3D world with completely mutable creatures, a hereditary system, resources for the creatures to compete for and no fitness function. The only thing that would determine how well an individual survived would be its ability to reproduce. I believed that with all these simple things set up, the complexities of evolution; including punctuated equilibrium, convergence, sexual selection and geological separation; would visit my world. And if I was lucky, some people would see in what I had created the same thing I saw back then in the biots.
Welcome to Species.