Still too buggy for stable release, but we're getting closer! (Which isn't to say that it's less buggy than 0.11.2.5, I've actually fixed a lot. It's differently buggy)
Changelog:
* Adjusted balance calculations to be significantly more realistic
* Adjusted childhood to 'pull' a consistent amount of energy each frame, and childhood length to depend on total energy spent (rather than pulling a variable amount depending on childhood length).
- This will fix the problem with food energy flickering up and down.
* Increased 'base' stamina amount (to make adulthood easier).
* Increased childhood cost of primitive organisms (will make childhood longer)
* Fixed a bug registering live creatures as "inedible" and preventing hunting
* Fixed a bug making scavenging meat significantly rarer
* Fixed an issue with empathy cost being applied to creatures outside the predators species (which stacked with the first issue to prevent hunting).
* Fixed bug preventing brain report (eg. "Hunger >> Graze") from appearing in UI.
* Fixed crash when reviving creatures
* Fixed crash when using any god tool with both creatures and corpses selected
* Fixed potential crash when mating/gene splicing.
* Fixed a bug causing the skybox to render at half resolution and show distant mountains on the 'ocean' maps, which was never intended.
* Zoomed the camera in to show creatures at a better scale in the clade diagram/satellite map/gene editor
* Displayed balance forces in the gene editor when "Draw Bones" is selected.
* Activated the nursery UI when the first creature is dropped in, to better help players understand how it's supposed to work.
* Adjusted camera movement to be slightly less floaty
0.12.0.1 Experimental Release
Now available on the Steam experimental branch.
Changes:
* Gene Editor now includes a "Draw Bones" option, allowing you to visualize the skeletal physics that govern creatures body plans.
* Made dragging torso bones along the ground cost more in walk speed
* Increased cost of balance problems
* Reduced cost of compressive stress problems
* Caused Pregnancy Length to double after each litter born, making it necessary for creatures to increase their litter size if they want to engage in r-select strategies.
* Adjusted growth cost gradient to be more costly for simple creatures and less costly for complex ones
* Fixed bug preventing gene splice from working
* Fixed bug preventing corpses from being revived
* Fixed bug preventing corpses from showing up on the Sat Map
* Fixed visual bug showing the creature total as "CAPPED" indefinitely, despite the population dropping off
Species 0.12.0 Experimental Release
Early adopters rejoice! I've just put Species 0.12.0, the Multithreading Update, up on the Experimental Beta Branch on Steam!
0.12.0 adds multithreading to the underlying game engine, significantly increasing the performance (and Creature Count) of the game on computers with Dual-Core, Quad-Core, Octo-Core or Septendec-Core CPU's.
Please note that this is an Experimental Build. It is likely to be less stable and less performant (though still more performant than 0.11!) than the version that will be soon released to all Steam users.
You can access the Beta branch by right-clicking on "Species: Artificial Life, Real Evolution", selecting "Properties", then opening the "Betas" branch and selecting "experimental - Unstable Experimental Builds" from the drop down.
At the moment, 0.12.0 adds no features or tweaks: it's the same game, but faster. In addition to the obvious stability work, I will be polishing it in the coming weeks to make the survival strategies and body plans more varied and interesting, as well as see if I can make carnivory more viable.
0.12.0 Experimental Releasing Soon
In the currently released version of species, I can handle about 1100 creatures with an average FPS of 12.
In the current 0.12.0 Multithreading Prototype, I’m getting more than twice that. 2600 creatures with the same average FPS.
I think we can call this a success. 😀
There’s still a few bugs specific to the multithreading implementation, and further optimization to do, but they’re limited in scope and I’m pretty sure I can see the path ahead, so I’m happy to say that, barring any ‘incidents’ between now and then…
0.12.0 (Experimental) will be released to a Steam Beta Branch within the week.
Once that happens I will begin a stability pass to fix all of the crashings forever prior to 0.12.0’s official release. (Okay fine, most of the crashings forever. Gotta be realistic here).
And after 0.12.0 is properly released, I will be releasing regular polish updates for a while to reduce the effectiveness of limbless and herbivorous survival strategies and hopefully improve carnivores ability to survive.
Cheers,
Qu
On Stability (and Multithreading)
I've been paying attention to the Steam reviews and the exception reports flowing into my inbox, and have been compiling a list of crashes and related stability issues to address. I haven't been able to get to them yet because I'm a leettle bit desperate to get multithreading out of the way, but upon my oath: as soon as 0.12.0 is released, there will be a reckoning.
Ever seen The Purge? I haven't, but it's like that, except with a lot more bugfixing and slightly less murder.
Part of said reckoning will be a change to more robust coding practices. Currently, when the game encounters a bug it fails immediately. Great for me as a coder trying to identify problems: terrible for you as someone trying to play a game.
Instead of doing that awful thing, I will adjust the code to absorb the error, log it to the bug report and kill off the creature responsible out of spite before attempting to continue. This will give us the best of both worlds, at the cost of creatures dying instead of losing their anchor to the third dimension and ascending into the space between worlds, or whatever actually happens to you when your position become NaN ("Not A Number"). Thinking about it now, killing them when that happens is probably a mercy.
As far as Multithreading 0.12.0 goes...it's aliiiive! (by specific definitions of the word "alive") The Species development build now has a "Multithreaded mode" and it doesn't crash when you switch to it! All my evil schemes are coming to fruition. Except the one with the dinosaur soldiers. I'm thinking it's probably best to cut my losses on that one at this point.
Multithreaded mode currently utilizes quite a bit more of the CPU than before (up to ~40% from ~15% on my laptop, which has a quad core processor) and provides a very noticeable performance boost at high creature counts. There's still a combination of refactoring, optimizing and bugfixing to do (if I can get that percentage up to 80% or more I'll be very happy), and I've somehow managed to turn delicious meat into an inedible object (whoops), but we're definitely getting there.
For science!
Quasar
3 months on Steam! Past, Present and Future
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.
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.
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.
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 and deadlocks? 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:
Singlethreaded. CPU Utilization: 22%. Frames Per Second: 11.
And then, long story short, I implemented the system I intend to use for multithreading. The results are... promising.
Multithreaded. CPU Utilization: 100%. Frames Per Second: 125.
Yyyyup.
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 for yourself, 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 the blog for the thousand-word essay about race conditions and deadlocks I've got planned.
Ghost of Species Roadmap
So you're the last ghost. What's your deal? Or 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!
Cheers!
Quasar
Refactoring Bodyplan - devblog
I’m don’t have too much to say about the multithreading work just yet (aside from “it’s coming along, and early results are promising”), so instead let’s talk about a long-overdue task I undertook at the start of work for 0.12.0. It’s not directly related to multithreading, but it’s related to things that are related to multithreading, so it’ll provide a foundation for future blog posts.
I'll have more to say on the subject of multithreading very soon.
Where to next - Multithreading 0.12.0
Updates will be slowing down for a while as I work on multithreading for 0.12.0. This is a big and promising feature, but also a dangerous one. It's kind of like summoning an eldritch god: you might get immortality, or your life force might be consumed to power a terrible murder portal through which demons can invade the earth.
* Fixed bug causing uncontrollable population explosions when Automatic Population Control was set to "Niches"
* Fixed crash when setting Time Acceleration to 0 while the "Energy" information panel was open
* Fixed crash caused by new migration routine
* Allowed "Energy" information panel to continue to display change information when paused
* Adjusted "H&C" Automatic Population Control to keep the maximum population a bit further away from the creature cap
0.11.2.4 - Aesthetics and Balance
* Sedimentary layers visible in cliffs.
* 'Fallen Fruit' (Fruit/Pinecones) now visible on Palm Tree, Bunya Pine and Norfolk Pine (to better communicate that P. specium *can* get food from the large trees). * Terrain lighting angle adjusted to make the game less dark overall.
* Creatures will now (attempt to) migrate to a neighboring zone if they're hungry and can't find any food source that meets an "optimality" threshold.
* Predators that are suppressing population growth and hunting because of lack of prey will no longer suppress the hunger need, and will attempt to migrate instead of idling or occupying themselves with other behaviors.
* "H&C" automatic population control adjusted to try and maintain the population of both at a higher number and reduce the number of extinctions (even if it means capping out sometimes).
* Sat Map will now display the species average of the creatures you hover over, rather than the individual creature.
* Species List (next to Sat Map/Clade Diagram) will now take you to a specimen when you click on a species name.
* No Audio Hardware bug should now be handled more gracefully (muting the audio and putting some error text on the Main Menu rather than crashing).
* "Out of Order" sign hung on the Web of Life (I tried fixing it and made it worse) * Parking brake added to rovers (should reduce the amount of slipping down hills, especially on 10x speed.
* Droop and Balance costs slightly reduced.
* "Motivation" gene renamed to "Risk-Taking" to better communicate what it does.