Presenting the Species: Artificial Life, Real Evolution 0.6.0 Gameplay Trailer.
aka. SALRE060GT (pronounced “SAaarrrrgggklgglglreeeee”).
(aka. Quasar demonstrates how not to play Species)
I’m glad I decided not to include voiceovers in these video’s. My anguished, mournful howls don’t record well, and the annotations are more fun anyway.
Speaking of, I think I prefer this annotation style too. It’s a bit more obnoxious, but it means you don’t have to watch the video twice to ‘hear’ me. I just need to endeavor upon educating myself in the subtle nuances of communicating in a visual medium which ultimately is more appropriate to monosyllables and concise, abbreviated statements…
… oh dear god it’s like video twitter. WHAT HAVE I BECOME?!
Species 0.6.0 is out!
This update introduces a decent number of gameplay and environment options, and marks the end of the “gameplay” development for a while. The next few updates will be more heavily focused on the foundation of the game: the creature simulation…
– Exaggerated physics (it’s more fun if they’re virtually uncontrollable!)
– Multiple rovers can be spawned by the player.
– Programmable to apply artificial selection pressures, by feeding or killing.
– Drivable. (there’s no particular reason to include this, it’s just for fun)
– Found in the Ecosystem details page
– Shows the speciation history of the world, even after loading a game.
– Includes a fossil record. (periodic snapshots of each species average)
– Individual clades are hoverable, so you can see the phenotype of each lineage.
– Zoomable and pannable.
– Also found in the Ecosystem details page.
– Displays the entire map in real time, including biomes, food sources, camera FOV and rovers.
– Creature icons are hoverable, so you can see what’s evolving where without going to that location.
– Can be colour coded to make it even easier to find creatures with outlying statistics.
Web Of Life
– Yet again, found in the Ecosystem details page.
– Attempts to display the genetic relationships of the entire population in real time, as a way to visualise the mechanism of speciation.
– Kinda buggy and laggy: this infographic proved difficult to achieve, since the Speciation algorithm does not provide genetic relationships for every creature.
– Multiple “World type” styles.
– An alternative biome map for the saltwater “Ocean” world type.
– The ability to use alternative temperature/fertility maps, and change the fertility variation and average.
– Dry maps.
– Inverted “valley” heightmaps.
– Creatures now make use of procedural texturing. (goodbye stretching and scaling texture artefacts)
– Creatures now use a Hue/Sat/Lum colour palette, giving them a more toned-down, natural appearance when compared to the ‘circus-y’ colours of the R/G/B palette.
– Fixed the weirdness with Temperature/Fertility/Water-Level changes being given strange irregular increment sizes.
– Newborn creatures are no longer possessed by the souls of their previous lives and forced to attempt to complete the dead creatures final action. (even though it was awesome)
– Creatures in a loaded world are no longer unable to turn left or right.
– Loaded worlds now no longer include a ‘phantom ecosystem’ of invisible, inedible tree’s that for could nevertheless affect fertility and crowd out the regular, visible sort. (yes, that was a thing. And you never even noticed…)
– The game no longer crashes if you try to export a creature while in ecosystem mode. (This should also prevent it from creating corrupted creature files, which cause a crash when you go to the import screen)
– Reduced the once-a-second lag spikes caused by the Speciation routine by about 60-70%. (The game should now be a little more playable at high population levels)
– Temperature/Fertility across the map no longer slowly changes after you start the game.
– And a whole bunch of others…
Unfortunately, we’ve lost all forum posts since mid-December.
That’s not the fault of our hosting provider: they don’t generally provide backups unless the customer pays for them. Unfortunately, I wasn’t aware of this. We’re actually pretty lucky this mid-december one existed. I’ll see about manually setting up something to take more frequent backups in future.
Now that the site’s back, Species ALRE 0.6.0 will be released within the day.
Uh oh, there’s that word. “Procedural”.
For those who didn’t follow the game fanatically in the months up to it’s release, procedural was one of the words used by Will Wright to describe Spore in the early prototypes. As a result of that innocent usage, it developed something of a buzzword hype around it and grew a semi-independant life of it’s own. Unfortunately, once Spore was released and the inevitable backlash began, Procedural fell out with it’s partner, turned to drugs and alcohol and ultimately ended up joining a cult and sacrificing the local high-school kids to Satan. True story.
Once you strip away all the correlations, though, all it means is ‘automatic’. It’s just a way of saying we wrote a procedure in code to do something, rather than doing it manually. In this case, applying texture coordinates.
Texturing is something you’d normally do in 3ds max (or any other 3d editing software), because it gives you a variety of useful tools to do so. It’s possible to use the tools in max to customise and tailure exactly how textures are applied to your models, which is how other games can apply a 2d image to something as complex as a character model, for example. That’s how we were applying textures to body parts in 0.4.0 and 0.5.0.
Unfortunately, after accepting the models we feed into the game from 3ds max, Species proceeds to stretch and scale them according to the creatures genes. This in turn stretches and scales the textures, resulting in some rather strange visual artefacts. (Note: though it’s not an official term, a certain subset of programmers use “artefact” to refer specifically to visual errors in games, and “artifact” for all the other definitions. It’s totally not a typo I swear).
I had originally planned to do this in 0.7.0, but the website being down for so long meant I ran out of smaller tweaks and fixes* to implement, so it looks like we’re gonna get procedural texturing as a bonus feature in 0.6.0.
The method I’m using is called tri-planar texturing. The idea is to apply the texture from three planes, picking which one depending on the orientation of the surface. It’s a system more commonly used for terrain texturing, and I’ve had to adapt it a bit to apply it to an animated model (we don’t want it to be affected by stretching, but we do want it to be affected by rotation and translation), but it works well. I’ve often wished 3ds max had a triplanar shader in it…
Of course, there’s always a downside. Tri-planar texturing requires a consistant, tiled texture, which means we need to remake all the older textures, which weren’t tiled. Anything that involves remaking an entire category of files is a lot of work. It’s been easier than expected though: setting up a photoshop macro’s and using the automatic healing brush (WHAT SORCERY IS THIS?!) made tiling the images almost rediculously easy.
This is still just a stepping stone for 0.7.0 though: ultimately, I plan to make all the current placeholder body covers redundant and start over. This will be a good step not just for appearance, but also for functionality: I’m sure you’ve all noticed that skin type can change drastically in a single mutation. This is because it has no sensible mutation map: any body cover can mutate in a single step to any other body cover. In fact, the current body-covering system is one of the most placeholdery things in a game filled with placeholders (we don’t even note body cover in the creature details!), and implementing a proper mutation map and a variety of extra body covering types should vastly improve that side of things.
I plan to go quite a bit further with the texturing than just tri-planing their skin: this is just a first step. I’d tell you about the other plans, but well… “spoilers”.
*footnote: Speaking of fixes, you know that crash that sometimes happens when you’re importing and exporting creatures? I found it. It only happens on export when you’re in “Ecosystem mode”, so until 0.6.0 comes out just make sure you do all your exporting from Creature Mode (when you’re in creature mode the UI looks blueish, rather than green (ecosystem) or red (species)).
Release Date: Assuming we get the website back this week, Species 0.6.0 will be released to everyone on the 17th June.
Wait, should I have made that have been more dramatic? Dammit.
I’ve been told the website and forums should be back within the week.
Once we get them back I’ll be releasing 0.6.0 to all our testers and pre-release players.
I made you a biochemistry!
The above diagram still needs some work: I need to establish water, oxygen, fibre and enzyme requirements for the various metabolic processes. I might need to find better sources than wikipedia for that. I’d also like to simplify it: perhaps combine ATP, NADH, FADH2 and Quinol under the catchall of “energy” and eliminate the ATP Synthase and Citric Acid Cycle processes. Oh, and I need to work out how some bacterial colonies digest cellulose, and look into photosynthesis.
By now you’ve probably worked out what this is all about: at some point in the last few weeks I stopped thinking of “diet” and “dietary chemisty” as a game design problem, and started researching actual biochemistry instead. Turns out it’s fascinating. Who knew? Well, biochemists, probably. Slimy bastards been hogging all this fun to themselves.
In any case, the grubby fingerprints of evolution are all over the field of biochemistry. The entire metabolic system is built on progressively simpler but less efficient systems: you can elimate everything but glycolysis and anaerobic creatures can still get energy from ingesting glucose.
Researching it has also been an eye opener. I haven’t really learned any trivia I didn’t know before this, but I have tied together a large number of factoids I’d picked up via cultural osmosis and Attenborough documentries into a coherent, interelated web. “Termites and cows use bacterial colonies to digest plant matter”, “our muscles generate lactic acid when they can’t get oxygen fast enough”, “our body starts feeding on itself when we starve”, “animals breath in oxygen and breath out CO2″, those sort of things. Biochemistry links all these things together and tells us why they happen. Which is awesome.
This really is how I should have been designing these elements of the game from the very beginning. Although I still may not end up simulating biochemical evolution (doing so would violate the “seeing evolution happen” design goal), this bottom-up approach to diet provides us with several interesting elements that would otherwise be simulated seperately: oxygen and water requirements, as well as the… um… expulsion of CO2 and uh… undigestables. If we do include biochemical evolution, said… undigestables… might be digestable by other species, and could serve as as a… um… food… source…
Oh god what have I done. It’ll be just like that digimon I had as a kid.
Of course, the requirement for water and oxygen (clean water! fresh oxygen! nothing to do with shit!) might have some impact on Primum Specium’s ability to survive. How’s PS going to get to water if it can’t even find food consistantly? The bottom-up approach states that problems are caused by the simulation not being accurate enough, so how do simple real-life organisms solve the oxygen and water problem?
The answer is diffusion: their cell membranes are thin enough to absorb the elements they require. Which means that the reason Primum Specium is having trouble surviving isn’t because it’s simple, but the opposite: it starts with a complex rough-skin texture (it’s actually rhino skin). This will have to be replaced by a transluscent membrane of some description. Which should be fun to do.
Displaying a complex, semi-accurate biochemical system like this to the user is going to be an interesting design challenge. Done right, it has the potential to be an interesting insight into how the creatures work, with the added bonus of providing bucketloads of tangential learning. Done wrong, it could very easily become an incomprehensible mess (like the flowchart above) that obscures why some creatures survive and others don’t.
To simplify it, one possibility is to treat it as a discreet process. Minecraft is a great example of discreet processes: you don’t craft 1.24kg of logs into 4.96kg of planks, you craft 1 log into 4 planks. It’s impossible to have less than 1 of any resource in minecraft, which is part of what makes the game so intuitive and satisfying: integers, especially small (two digit) integers, are much easier for most people to work with than fractions or decimals.
Thus, a discreet biochemistry system would involve 1 glucose being ‘crafted’ into 2 pyruvate. This mirrors the molecular reaction, where 1 molecule of glucose is broken down into 2 pyruvate molecules, which is a nice bonus.
In Species, of course, the majority of numbers are continuous. This is a matter of necessity, rather than game design: evolution is a continuous process. In fact, the numbers which have to be discreet (“head type”, “body covering”, etc) evolve very differently to the continuous ones: they operate under a “lucky monsters” system, where the rare mutants who have improved types have to actively survive and outcompete their brethren, rather than the entire population slowly changing on a statistical level.
The non-genetic numbers, though, don’t always have to be continuous. Some of them do: Kinetic energy and movement can’t be represented discreetly unless time is also represented discreetly, as in turn-based games like X-Comm. But diet is one place we could take things in the other direction: rather than continually absorbing energy from plants and meat, a creature’s feeding routine could easily be reconfigured to take discreet, periodic “bites”, with every number between there and energy being discreet.
It’s an interesting concept, and would make possible my ideal representation of the in-game metabolism: a functional infographic where you can actually watch each molecule being broken down into simpler molecules as it falls through the metabolic pipeline.
As always, much of this is long term stuff. Not as long term as some of these posts, though: as I wrap up my work on 0.6.0 I’m already thinking about what I’ll be including in the 0.7.0 release, and I’ll certainly be laying some of the foundations for this stuff.
PS: Random Screenshot.
First of four, I apologise for any formatting problems. WordPress doesn’t like me posting from this machine, and won’t let me access the HTML-editor I usually use to spread my blither across the intertubes, so I’m forced to attempt to use wordpress’ text editor. And, as is always the case when I use software for the explicit purpose for which it is designed, it does it’s valiant best to stop me.
I take this as a good omen. After all, you’re not doing science properly until inanimate objects start taking up arms against you.
Second of e, 0.6.0 is very nearly feature complete, which means I’ll be announcing the release date very shortly. Rovers and Clade Diagrams and Sat Maps oh my.
Third of i, the official website is still down. Frustrating. I tried to sacrifice a goat to our hosting provider, but that didn’t really help much and was kind of embarrassing for everyone involved. Especially the goat, who left halfway through.
The other point about the website being down is the possibility of lost data. I should be able to retrieve things like people’s pre-orders from other locations, but there’s a chance the forums and wiki have been lost. I’m thinking it might be best to treat all this as a fresh start: stop maintaining a separate ”Genetic Engineering” version of the game, forget about as many of the indiegogo perks as I can without breaking promises, and organise the site to accept pre-orders without me having to manually create an account for everyone.
Regardless, I do hope the website will be back shortly. Or at least before I find another goat.
Forth of infinity, I’ve got a blog post or two lined up, so even if the website doesn’t come back there should be something interesting to see here over the weekend.
“Or at least, interesting by Qu’s standards, which means it’ll probably be a flowchart of the bodies metabolism or something equally weird.”