Devblog #18: Thrive is Alive

Thrive’s back, baby.

We’re beyond excited to announce the release of the culmination of our efforts for the last whoever knows how long, Thrive version 0.4.0.

It’s true: we’ve returned from the dead. We finally have a new engine. And, as you’ll learn if you read on, a hell of a lot of other things too…

Thrive 0.4.0

We promised an overhaul of the engine. Because it took a little longer than expected, we’re giving you plenty of other new content nuggets to boot. In the way it works, the way it looks and the way it plays, Thrive 0.4.0 is a completely different game.

New Engine

We threw out the outdated and difficult to maintain old engine and built a new one. Some said it couldn’t be done. They reckoned without the Finnish programming juggernaut that is hhyyrylainen.

Based on Leviathan, his own creation, it still uses Ogre for graphics and similar overall architecture, but all scripts were converted from Lua to Angelscript, GUI changed from CEGUI to HTML/CSS (so if you have experience with these languages, we’d love for you to join and help design interfaces) and a ton of background processes like window management and input are different. Most of the systems were completely rewritten, including the compound processing system which now works as expected.

The end result is an improvement in stability, but more importantly, far better ability for developers to understand what’s going on under the hood. We can identify and fix errors faster, for instance, which has helped a lot with last-minute bug fixing.

Improved AI

Another major overhaul is the AI system for NPC microbes. While it lays the groundwork for the behavior editor in later releases, even now the system provides a much more organic gameplay experience.

Using four parameters tuned for each species – aggression, fear, activity and focus – a finite state machine switches between multiple behavior types based on a microbe’s nearby environment. For example, high aggression species target bigger cells as prey and/or shoot toxins at everything that moves. Highly focused species might stay in behavioral states longer than others, chasing prey for longer in a battle of stamina. A species with low activity will prefer to stay in one spot. Fearful species run away from everything. Combinations lead to even more interesting behavior, such as aggressive, fearful species lashing out at predators.

Compound gathering routines now use algorithms inspired by nature. Many real microbes use “run and tumble” to gather nutrients. In essence, it’s an approximation of a gradient descent algorithm. It’s also astonishingly simple and produces organic results in simulation. So that’s in the game now too.

The simplicity of implementation of both systems means a behavior editor isn’t too far away. The player will wire up the brain of their own species by changing and connecting the parameters above using the same iterative mutation system as when adding organelles.

Bacteria

Bacteria now populate the tidepool alongside eukaryotic species, providing expanded gameplay options.

They’re treated as small microbes with unique structures, such as chromatophores and cell walls. Some start with flagella, others don’t. Bacteria always spawn in colonies connected by some structure, whether it be a line, a network or a clump. They collect and process compounds and can be a nutritious source of compounds for your own cell. But be warned – some have deadly toxins inside.

The code surrounding bacteria largely matches that for eukaryotes, so it’s theoretically possible for us (or an aspiring modder) to add bacterial gameplay.

Early Auto-Evo

This is a big one. Darwinian evolution, in-game, first time ever. Until now, the player alone has evolved, but no longer.

Now every species has an associated population count. Auto-Evo checks these values every so often. If a species population exceeds a predefined threshold, it splits into two or more new species. If the population drops below zero, it goes extinct. Species population is tied to how well species are doing in the player’s vicinity (the maximum zoom level). If a species dies a lot around you, its population goes down. If it performs multiple successful hunts, its population goes up. If it reproduces, its population goes up. Simple enough? The upshot is a surprisingly realistic evolution system with the ability to hunt a species to extinction. Auto-Evo affects bacteria too, and we’ve observed bacteria evolving “invisibility” (really just high transparency) time and time again. It’s very cool.

Speciation works as it does in real life, with small changes each generation. If you’re paying attention, you can even track lineages across time. We even have genus differentiation encoded through colour variation.

Win and Lose Conditions

You can win Thrive now. Sadly this isn’t by building an Ascension Gate in orbit around your planet as we hope it will be someday, but by surviving fifteen generations with less than five deaths. So now at least you have something to aim for, even if it’s only the Thrive 0.4.0 Temporary Win Condition Champion of the Universeā„¢ title.

Graphical Updates

There are graphical updates galore in 0.4.0. New backgrounds, new biomes, new intro videos, new icons, new GUI elements, etc. This one’s easier for you to see for yourself than have us explain it.

We also managed to fix the flagellum model last-minute. It’s a bit small, but it’s 3D (unlike 0.3.4) and isn’t so rigid it resembles a microscopic jousting stick (unlike earlier in-dev builds for 0.4.0). Further updates are expected.

New Organelles

Chemoplasts, plasmids, metabolosomes, chromatophores. What the hell are these things? Well…

Expanded Help Info

The new in-editor tooltips will tell you. Hover over organelles in the list to learn what they process and how to use them.

Also, expanded help menus (which don’t yet pause the game…we’re working on it) and various tips mean you’ll lose your way less than you used to. Or so we hope. There are also fun facts about microbiology to keep you entertained.

Procedural Species Names

Microbe species have names now! Not only that, but they’re generated by the Auto-Evo system and are full of Easter eggs. See these names by hovering over any cell with your mouse. Look out for references to individual developers in your tree of cellular life.

Other Stuff

It was added so long ago we basically forgot it existed, but there’s a new suicide button. Stuck in an unwinnable situation? Press the button and jump to another member of your species.

We also have: a psuedo-free camera, NPC members of your species showing up in-game, a faster gameplay loop, new compounds, and plenty of other stuff lost to the ruins of our GitHub commit list.

Known Issues

We are aware of some issues with this new build and will strive to fix them for version 0.4.1.

Lack of Tutorial

The most glaring omission from 0.3.4 is the lack of tutorial. While the improvements to help screens and tooltips should offset some of this, we recognise it’s vital to guide new players through all the strange biochemical processes.

This is one of our priorities moving forward. For now, watch a developer playthrough or two (see the livestream point below) to get up to speed.

Missing Graphics

Due to the engine switch, there are a few missing graphics. For instance, organelles no longer show up in the editor hex-grid. Again, we hope to fix this soon.

Occasional Crashes/Freezing

The engine should make the game more stable, but we’re aware there can never be total coverage here. Setting a release date means we’ve had to skip over fixing some crashes and temporary game freezing when calculating Auto-Evo. If you experience problems with 0.4.0, please create a thread in the bug reports section of our forums with as much detail as possible.

Coming Soon

We have a whole host of events coming up shortly to celebrate, consolidate and expand on this release.

TODAY – Developer Livestream

Within a few hours of this post, we’ll be hosting a livestream with a bunch of devs to stream 0.4.0 gameplay, answer questions and most likely devolve into general messing around for no apparent reason. Be there or be regular quadrilateral.

TOMORROW – Thread of the Week Begins

As mentioned in the last Devblog, we’re starting a new initiative on the community forums called ‘Thread of the Week’ (TOTW). Every weekend, a developer will start a discussion intended for deep and engaged conversation about one particular topic. This could be related to game development, science, simulation, or anything else we don’t have the energy to think of right now.

This week’s thread will focus on feedback on 0.4.0 and wishes for future features. We hope to see you there.

SUNDAY – Community Survey

Remember that time we made a survey? We’re doing it all over again (and probably with the same questions because they were pretty good questions). Watch out for the opportunity to tell us all about yourselves and your hopes and dreams for the future of this crazy project.

NEXT WEEK – Social Media Revamp

Also from the last Devblog, we’ll be ramping up our social media presence from next week. Expect to see more stuff posted more often to help you remember that we are in fact alive.

Some examples will include the TOTW, game screenshots from fans, and the inevitable Thrive gameplay video from Kinesis, who now holds the role of Unofficial Official Thrive YouTuber Man. We have him to thank for keeping hype alive when no one else did. Without him, we wouldn’t have 0.4.0 to celebrate.

WHO KNOWS? – Thrive 0.4.1

Well, that’s just about it for this Devblog. This release has been a long time in coming and we feel it’s a massive step forward. Enjoy!

A thriving community is just as important to us as a thriving development program. The open-source nature of the project means the two are often one and the same. If you want to help make this game faster but don’t have relevant skills to join the team, the next best thing is to take an active role on our community forums or subreddit. If you haven’t already, head on over to one of these and start your own discussion of something Thrive-related. The more people stay attached to the project and keep breathing life into its veins, the more likely we’ll see Thrive 0.4.1 in a reasonable timeframe.

So stay tuned, and see you all next time!