An evolution simulation game. Take control of your species in the environment and edit your species as a whole. Compete with other evolving species for resources on an alien planet.
Another few months, another Thrive update full of game-changing new features and improvements! Headline features of Thrive 0.6.5 include organelle unlocking mechanics and fog of war for the patch map, adding more elements of progression to our evolving gameplay loop, together with further performance enhancements on top of those made by the rework last release.
[previewyoutube=Hg6jv75cbgU;full][/previewyoutube]
Following the relatively feature-light release of Thrive 0.6.4, Thrive 0.6.5 brings you some major updates in mechanics that should make the whole game a more satisfying experience. See our patch notes at the end of this post for full details, or read on for some of the highlights.
[h1]Organelle Unlocks[/h1]
[img]https://i0.wp.com/revolutionarygamesstudio.com/wp-content/uploads/img2.jpg?resize=1500%2C844&ssl=1[/img]
The most notable feature of this update is the introduction of unlock mechanics for some organelles. In a regular game, several organelles are now locked from the start and the player must meet certain criteria to evolve them.
These criteria include:
[list]
[*]Being in a patch with a certain amount of a compound.
[*]Having another organelle in your cell for multiple generations.
[*]Engulfing a certain number of other cells.
[*]Having a certain amount of excess ATP production.
[/list]
This list will likely grow in future as we extend the mechanic to other organelles and fine-tune current unlock conditions in light of player feedback.
Organelle unlocks should give a greater sense of progression and achievement to the game and lessen the impact of overpowered strategies. They also open the path forward to endosymbiosis, where advanced organelles can be unlocked by engulfing other cells with simpler organelles, a reflection of real theories about the origin of organelles such as mitochondria. We’re eager to hear your thoughts on this feature, so please let us know what you think on [url=https://community.revolutionarygamesstudio.com/]our community forums[/url].
If you don’t want to play with organelle unlocks and preferred having all parts available from the start of the game, don’t worry! The feature in its entirety can be turned off in new game settings.
[img]https://i0.wp.com/revolutionarygamesstudio.com/wp-content/uploads/img3.jpg?resize=1500%2C844&ssl=1[/img]
[h1]Patch Map Fog of War[/h1]
[img]https://i0.wp.com/revolutionarygamesstudio.com/wp-content/uploads/img4.jpg?resize=1500%2C844&ssl=1[/img]
While we hope organelle unlocks add a better progression system to building your creature, patch map fog of war should increase engagement with exploration. Patches not directly connected to your starting patch are now shrouded in mystery and must be revealed by traveling between patches.
Again, this feature is entirely optional, so head to new game settings to configure your desired exploration mode. You can even select a more intense variant for the truly adventurous where patches aren’t revealed until you enter them.
[h1]Further Performance Improvements[/h1]
[img]https://i0.wp.com/revolutionarygamesstudio.com/wp-content/uploads/img5.jpg?resize=1500%2C844&ssl=1[/img]
With the performance refactor from Thrive 0.6.4 as a base, we sought to push the game further and scrape out any performance advantage we could in this release. Overall performance is now significantly better than it was pre-0.6.4, which we hope will make playing a much more enjoyable experience.
In particular, this release adds multithreading for ECS systems to take advantage of hardware with multiple CPU cores, alongside some general tweaking to extract performance from some ECS systems. We’ve also analysed the game’s memory allocation to reduce overall memory allocations by about 75% during gameplay.
Aside from any potential gains from moving to Godot 4, it’s unlikely we’ll see any further performance work in the near future. We’ve come a long way from the game’s past performance issues though.
[h1]Expanded Thriveopedia and Tutorials[/h1]
[img]https://i0.wp.com/revolutionarygamesstudio.com/wp-content/uploads/img6.jpg?resize=1500%2C844&ssl=1[/img]
We’ve worked on improving information availability and clarity for the player in this release through a number of routes.
The Thriveopedia – our in-game information store – now supports inter-page linking. This has been especially useful as we’ve filled out the organelle pages with content taken directly from [url=https://wiki.revolutionarygamesstudio.com/wiki/Category:Organelles]our wiki[/url]. To make the Thriveopedia more visible to players, we’ve added hotkeys while hovering over organelles in the editor. By default, press F1 to open expanded information about an organelle in the Thriveopedia.
We’ve also added a number of new tutorials and reworked some messaging within existing ones, particularly around organelle operations within the editor. Remember to ensure tutorials are enabled in the options menu if you want to use them!
[h1]Other Notable Changes[/h1]
[list]
[*]Auto-Evo predictions in the editor now show energy first and population second. This should reduce confusion over population reductions due to larger individual cell size despite higher energy gained.
[*]Hovering over a species name in the patch map (in the editor or Thriveopedia) shows a preview of that species. We’ve found this very handy for understanding what prey and perils await you in nearby patches!
[*]New music track exclusive to volcanic vents.
[*]Reimplemented pilus damage cooldown to prevent cells dealing way too much damage.
[*]Added hotkeys for the macroscopic editor in later stage prototypes.
[*]Late multicellular speed now depends on the number of metaballs with myofibrils.
[*]Plenty of small fixes and additions.
[/list]
[h1]Looking Ahead[/h1]
We intend for the focus of our next release to be porting Thrive to [url=https://godotengine.org/]Godot 4[/url] to take advantages of benefits not available in Godot 3. While this will be a substantial amount of work, it’s likely new features and the gradual stream of small fixes will continue as well. After Thrive 0.6.6, focus will shift to completing features in line with [url=https://wiki.revolutionarygamesstudio.com/wiki/Release_Roadmap]our release roadmap[/url].
As always, remember to join us for our developer Thrivestream starting very soon, where we’ll cover the changes in this release and answer any questions you might have about the future of development:
[previewyoutube=Rp6KNb4FTp0;full][/previewyoutube]
You can also visit [url=https://community.revolutionarygamesstudio.com/t/0-6-5-general-feedback-thread/7326]our feedback thread[/url] (or comment below) to give your thoughts on this update.
[h1]Full Patch Notes[/h1]
[list]
[*]Implemented fog of war for the patch map, you now need to explore the map to find all the patches that exist
[*]Added part unlock system. Some organelles are now locked until the player fulfils certain conditions.
[*]Added multithreaded running of ECS systems. This improves the performance a bit more on systems with enough CPU cores.
[*]Reduced memory allocations during normal gameplay by 75%
[*]Auto-evo prediction now shows the gained energy first and population second
[*]Hovering over a species name in the editor report now shows an image of the species in a tooltip
[*]Added button to eject all engulfed things, helpful when you have ingested too poisonous prey
[*]Thriveopedia now has inter-page links and external links
[*]Added a button to open an organelle's Thriveopedia page when hovering over the organelle
[*]Added multiple new microbe stage tutorials and reworked many existing ones as well as changed the tutorial flow in the editor
[*]The initial tutorial message is now customized based on the life origin selected in the new game options
[*]Added a new microbe stage music track that is exclusive to the vents biome
[*]Reduced bacteria swarm spawn counts for larger bacteria to try to balance large swarms of killer bacteria that clear out all smaller species
[*]Reimplemented pilus damage stab cooldown when dealing large amounts of damage at once, hopefully to prevent ejected cells from very quickly killing their engulfer
[*]Previous gathered energy is now shown in the prediction tooltip for comparing to see how much the increase/decrease is
[*]Did some further small system tweaking based on profiling for a bit more performance
[*]Increased minimum entity counts a bit now that we have more game performance
[*]Reduced density of big iron chunks to make them pushable by cells again
[*]Fixed big iron chunks having their collision models rotated differently than the visual modes (this caused the visuals to now be rotated differently than before until someone can remake the model)
[*]Added explicit check for available CPU features and making the game exit cleanly if the current CPU is not new enough. This is implemented through a small library which is loaded first and only after confirming things are good loading the main native code of Thrive is done.
[*]Improved the handling of native library load not succeeding and the game needing to close (this shouldn't be a hard crash anymore)
[*]Made compound cloud creation use interlocked operations rather than locks to slightly improve performance
[*]Added middle mouse button for panning to the list of rebindable keys
[*]Middle mouse button can now be used to pan in the society stage
[*]Made the move and delete hotkeys work for macroscopic editor
[*]Late multicellular speed now depends on the amount of myofibril metaballs
[*]Added a cheat for unlimited growth speed
[*]Cells now stop emitting mucilage when joining a colony, this should fix a really old reported bug
[*]Tweaked auto-evo prediction GUI a bit to give more horizontal space for numbers
[*]Fixed bug with colony member attach positions sometimes being incorrect which has been a bug for a really long time (note that this is different from multicellular body plan change bug)
[*]Fixed engulfing used storage not taking things currently being pulled in into account leading to overuse of storage and ejection
[*]Fixed engulfing not taking targets being in colonies into account, now the lead cell is no longer always yanked out of a colony
[*]Fixed regression in previous Thrive version with multicellular growth buff not working leading multicellular growth to be half the intended speed
[*]Fixed regression in entering engulf mode in a colony where other members could engulf but the player couldn't
[*]Fixed editor button not re-enabling after exiting a colony
[*]Fixed some bugs related engulfable being stuck with 0 contents, at least infinite toxin damage should be fixed
[*]Fixed a crash when accessing incorrect cell colony member index due to one missing "=" character in the code
[*]Fixed Thriveopedia map not displaying if opened before going once to the editor
[*]Fixed slime jet activation only playing a single frame of animation, now a full animation cycle is always completed
[*]Fixed bug with visual system setting Godot scale directly when a separate system should be doing it
[*]Fixed microbe sound effects continuing after cell death
[*]Fixed mouse click not working regression in signaling agent command wheel
[*]Fixed toxin projectile visuals not loading properly from saves
[*]Fixed fossilise buttons not updating their state when a species was fossilised, now the buttons correctly show the species as being fossilised
[*]Fixed bugs with body plan editor and cell editor displaying their graphics at the same time
[*]Fixed the 3D environment colour leaking into the cell editor in multicellular editor (the background is now disabled while in the cell editor and enabled when returning)
[*]Fixed saving not working in the editor if a save made in the editor was loaded and the stage was not entered in between
[*]Fixed an error being triggered when exiting from a save loaded in the editor without going to the microbe stage before quitting
[*]Fixed the metrics panel entity counts not making much sense with the ECS changes
[*]Added option to turn off the multithreaded world simulation in case it is slower or has other issues
[*]Added new setting to control the number of native executor threads (affects physics performance)
[*]Added some more models to the list in the gallery
[*]Added some extra safety checks to task executor based on one recent crash report
[*]Added some safety code to ensure ejected cells will despawn in a few seconds if they are dead
[*]Added safety code against entities being stuck in dead engulfers, instead the engulfing state is now properly cleared
[*]Added safety checks in editor enter button state apply to ensure the player hasn't died during the one frame it takes for the state change to apply after it is triggered
[*]Added code to force all cells into normal mode when they are engulfed to make sure engulfed cells can't be in weird states
[*]Added a check to ensure gas compounds add up to 100% in biomes
[*]Made the benchmark get progressively more intensive to ensure it should always eventually end
[*]Removed protoplasm from the game, it was an old buff for AI bacteria cells
[*]Removed a few unnecessarily saved fields from save files
[*]Added debugging feature to draw debug lines easily
[*]Added debugging helpers for verifying ECS component access patterns
[*]Wrote an overall Thrive ECS architecture describing document
[*]Implemented dependent entity delete for future use in Thrive
[*]Added .mo files to gitignore to stop people accidentally sending those in PRs
[*]Updated our scripts to run on .NET 8
[*]Fixed a few problems in the setup instructions (.NET 8, gold linker), added more info on submodules
[*]Updated code style rules and checking tools
[*]Added a styleguide section on avoiding memory allocations
[*]Removed unused code constants
[*]Renamed an interface in the code to clarify its purpose
[*]Renamed UsedIngestionCapacity to UsedEngulfingCapacity in the code to improve clarity
[*]Setup dependabot to automatically update our git submodules
[*]Some native side code build options improvements
[*]Applied our single letter LINQ lambda style across the codebase
[*]Updated AngleSharp from 1.0.7 to 1.1.0
[*]Updated YamlDotNet from 13.7.1 to 15.1.1
[*]Updated Jolt physics engine
[*]Switched translation files to no longer have source reference lines, this should reduce merge conflict amount massively, but most translation tools don't know how to look at the translation template file to find the reference line information
[*]Updated translations
[/list]