Releases: MovingBlocks/Terasology
Engine 4.0.0 / Alpha 16 - GSOC 2020
Release Summary
This release contains all the content and other changes from GSOC 2020, at least those that are specific to Terasology the game - work also happened on Destination Sol via @IsaacLic doing more Gestalt-ES implementation over there and @TheShubham99 worked on a shiny new "journey site" to help guide a user looking for information, be it to play the game, work on it, and so on
It isn't exactly the most stable stable release ever, as it contains a bunch of stuff plus we've been majorly overhauling some engine systems since last as well. But a lot of the basics test out OK and there's a pile of good stuff in this release :-)
Highlighted changes
Likely to be incomplete as it is hard to stay on top of / find all the relevant changes, especially in module-land!
- The rendering DAG project (#3994 and #3732) by @dave2s finally got merged! This was actually a GSOC 2019 project and originally began with @tdgunes all the way back in GSOC 2016 as one of our very first GSOC projects! Rendering is hard ;-)
- We finally extracted our NUI library (#4017 and #2307 before it) from within the engine to its own external repo https://github.com/MovingBlocks/TeraNUI - special thanks to @BenjaminAmos for not only finally getting it past the finish line but also preparing a version of it that works with Destination Sol as well!
- Bunch of actual UI/UX improvements as well, as part of @stefaniamak's GSOC project (focused on Master of Oreon + Light & Shadow)
- Some tweaking around our module filter on the Advanced Game Setup - check on which boxes are checked in case anything seems off. Still could use a bit more work and classifications
- A handy new run config for IntelliJ that'll recreate a game with the most recent settings without needing to manually navigate the game UI at all - just use "recreate latest" !
- Physics and collision tweaks, player height refactoring, and lots of other refactoring to clean up and improve code
- Better ability to substitute lib projects in a workspace for their binaries using shiny new Gradle magic (like
groovyw module get TeraNUI
if you need to edit NUI separately but test it in-game) - various other neat Gradle changes too - Piles of JOML conversion work slowly getting us to where we could drop our old TeraMath in favor of JOML - thanks to @pollend and others for keeping at that!
- Various supporting changes needed for GSOC projects
- Various other bug fixes, performance improvements, etc (while acknowledging some new performance issues have crept in, like #4154)
See also the v4.0.0 milestone with closed issues and PRs
Modules
Beyond new modules we also extracted several more from the engine repo into their own module repos. At this point the engine is actually module-less without using groovyw module ...
to fetch some.
- BiomesAPI was extracted
- CoreAssets, CoreAdvancedAssets, CoreWorlds, Drops, Explosives, and Furnishings came out of a rework of our fundamental set of modules (see graph below) - many thanks to @jdrueckert and @skaldarnar!
- Debugging was also split out, but kept out of the lineup since it is more for developers
- CoreRendering goes with our finally-merged DAG overhaul from GSOC 2019
- ParadIce by @Qwertygiy was added as a new world module with some new palm trees and such to go with Lakes getting a new oasis feature by @sin3point14
- Lost was reworked as part of a TSOC project by @meetcshah19 - the original was from GSOC 2017 authored by @nihal111 but relied on a provided save game, now it works straight out of the box with everything dynamically placed!
- ClimateConditions and related modules were updated by @ktksan as part of a GSOC project for making biomes more meaningful, with temperature + humidity introduced along with items to craft to guard against them
- Genetics / breeding had another round of effort put into it by @vedant-shroff - breed plants and animals with meaningful (if perhaps hard to spot) outcomes!
- Worth mentioning again was UI/UX improvements to Light and Shadow by @stefaniamak for GSOC 2020 which finally pushed it over the finish line to be fairly gracefully playable and replayable, after many past efforts like from @darshan3 (2019) and @dacharya64 (2018) in previous GSOCs
- MetalRenegades got a second season of work done to it by @AndyTechGuy mentored in part by @mayant15 - both of them worked on MR for GSOC 2019
- Some of the AI, pathfinding, and behaviors related to MR and others were also improved by @agent-q1 who also went on to work some on our logistics as part of a TSOC project
- Volcanoes were introduced via TSOC by @sin3point14 alongside improvements to Lakes, like the desert oases
- @RatMoleRat worked a TSOC for further improvements to the WeatherManager and other related systems
- @4Denthusiast worked independently on a pile of cool systems including FlowingLiquids and FallingBlocks, even hooking up parts functionally to the systems in JoshariasSurvival
It was extra neat to see emergent interplay between work from different contributors - such as a volcano from @sin3point14 overflowing unintentionally thanks to @4Denthusiast's FlowingLiquids, going down the sides to melt/destroy snow blocks build up there by snowing weather being worked by @RatMoleRat for WeatherManager
Removals
Some have had their repos archived, others just removed from the Omega lineup
- Core & CoreBlocks were retired in favor of the new set of Core modules
- SimpleLiquids (for flowing water) was retired in favor of FlowingLiquids
- Tutorial modules were removed from the Omega lineup as they're really for development, not learning the game
- Malicious likewise is a test module to provoke naughty behavior in code trying to escape the sandbox, not for players
- MarcinScIncubator and ThroughoutTheAges have been removed as old/deprecated (even NeoTTA is not really working and that's newer)
- AdditionalWorlds has been removed from the lineup as it is a "parking" module with very assorted work from Google Code-In and such
- BuilderSampleGameplay and QuestExamples became tutorial modules instead: TutorialMinimalEngineDemo + TutorialQuests
Upcoming changes
Not in this release but worth highlighting as coming soon (some right after this release being published):
- Physics upgrade from TeraBullet to JNBullet and more JOML conversion by @pollend and with help from others
- Upgrade to LWJGL 3 from 2 by @DarkWeird alongside Gestalt version upgrades affecting hundreds of repos and PRs, wee!
- glTF model format introduced by @immortius with piles of model and conversion work by assorted contributors since like @Qwertygiy and @pollend
- Performance improvements surrounding both chunk loading as well as fundamental library improvements by @DarkWeird @keturn and others. Also better memory & thread handling, so an overall better behaving game instance
Full changes
Since I forgot to make a PR from develop
to master
to get a nice view in case it matters (or looks impressively huge!) here's a list copy pasted from Jenkins and formatted a bit. We really need to automate this part and improve our change notes. Plus our commit messages, as perhaps illustrated by the first one 😁 We've started trying to adopt conventional commits to get more descriptive messages and that should help better automate them into a release report at some point.
- hmm (commit: c9633d4)
- playing with some things (commit: e8248da)
- mend (commit: b7e409a)
- drafted methods for adding connections to new abstract node (commit: 1f4fa2b)
- init input output connections variables in new abstract node (commit: 78c997a)
- remove connections, get number of connections, get list of input/output connections, get input/output connection by name (commit: a9dac0c)
- Comment out DAG dependency matching draft (commit: fc5a4f4)
- depndendency get/set->public, constructor on top (commit: 9bfbd1c)
- finalpostprocessingnode->extends newabstractnode,++passtrough node (commit: cb03399)
- Switch to new abstract node super type for some testing nodes late in the pipeline (commit: 04bd2ae)
- Faulty design atm, contains the usage idea behind newabstractnode changes. Todo: adding logic must be moved somewhere else. In other words the removed change by this commit was more functional...so something along those lines (commit: c76c24d)
- Methods for tampering with in/out dependencies input getting protected, outputs getting public ..etc (commit: d2715dc)
- connection names from Name to String. Might construct some Uri class based on names later. ++Setters/Getters for Uri/Urn acting as connection data but so far only point there (commit: ffc417c)
- Reading FBO inputs inside a specific node to try and run. (commit: a8b64f5)
- mainly checkstyle (commit: 2b855f4)
- merge PR-edgeConnections into edgeConnections and apply previous edgeConnections stas...
Play test zip for September 2020
Looks like our formal zips after the NUI extraction program have gone funny for some odd reason. Here's a locally built one for this weekend's play testing :-)
This zip should roughly compare to Omega 1096
Engine 4.0.0 / Alpha 16 - Release Candidate 1, but not really
This is really just a developer build, but still being in a transition state between Jenkins masters regarding to where the game launcher gets its releases from we don't do get a whole lot of dev builds out either, so it might as well be a release candidate! But it also definitely isn't a "stable" (lulz) release like our usual ones are meant to be (in our dreams, at least!)
But it is something, and it contains a ton of work, fixes, GSOC/TSOC, and more. JoshariasSurvival works (at least in single player) and is more deadly (watch out for signs that you're overheating or dying from cold!), MetalRenegades seems fairly stable even in multiplayer, and the same can be said for LightAndShadow which now has a neato new end game screen and other UI/UX improvements by Stefania (only a hosting player can restart gracefully at present though)
- Caves rework by 4D
- FlowingLiquids has been improved further and FallingBlocks is a thing now (for, well, falling blocks if they lack support), also by 4D
- WeatherManger is getting really awesome, just still doesn't work reliably in multiplayer, RatMoleRat has been working on it as part of TSOC
- ktksan's biome GSOC added to JoshariasSurvival (watch that temperature!)
- See https://www.twitch.tv/videos/698367440?t=00h22m44s for an updated playthrough with deer hunting etc to help craft stuff to survive
- Note: JS may hit severe performance issues until we stabilize this further, particularly in multiplayer. This seems fairly erratic. Sometimes it works great sometimes the world never loads, the host player may stall as a 2nd client connects, etc.
- Lots of other GSOC/TSOC work of course
List is laughably incomplete and will hopefully be updated later. See also the Roadmap Trello in particular the GSOC+TSOC 2020 lists, in progress, and v4 ready. Which is also pretty incomplete, we still badly need somebody dedicated to track all that stuff 🤔
Engine v3.2.0 - Alpha 15
Another point release with fixes and various goodies! Some of our high priority bugs should be squashed with this, several specific to Josharias Survival.
Also new release of the launcher: https://github.com/MovingBlocks/TerasologyLauncher/releases/tag/v4.1.0
Engine 3.1.0 - Alpha 14
Minor point release here with some initial fixes after the big (and long delayed) v3 engine release.
- See its merge PR #3896 for content
- See milestone 3.1 as well
A few substantial issues remain outstanding, along with the usual array of smaller and larger bugs. For instance an assembly bench in JS seems to not work first try, yet reloading the game seems to fix existing tables (but not new ones). More to come soon, hopefully frequent smaller releases again!
Engine v3.0.0 - Alpha 13
First release in 14 months! Finally :-)
- 686 commits so somewhat difficult to summarize - listing in our legacy Jenkins or in the engine merge PR #3874
- New modules: Inventory (extracted from engine), MetalRenegades, AdvancedRails, WildAnimalsMadness, Health (extracted), Apiculture, CoreAssets (extracted), CoreBlocks (extracted), SoundyGenetics, Exoplant
- An immense amount of changes in modules that still aren't tracked well
- Completed issues/PRs in the milestone
Release is at least semi-stable, but hopefully will be followed up on in the near future with some bug fixes.
This is paired with the Terasology Launcher v4 release
To find this game release (the attached TerasologyOmega.zip
) in the launcher look for the "Terasology" line entry 34. The "Lite" variants contain next to no modules and the "nightly" lines are dev builds.
Also attached is TerasologyOmega1081.zip
which is available in the dev line for the launcher, this has a single fix beyond the release that addresses an issue in the NameGenerator module that caused several crashes (MetalRenegades, WildAnimals, etc)
Alpha 13 RC 3: Now with actual moderate stability!
For this release every single module in the stable lineup has built successfully in the new Jenkins, and JoshariasSurvival seems good at least in the beginning, even the ShatteredPlanes world for it appears to work 👍
Probably the biggest change since last is the Gradle 6 upgrade merged to develop, which facilitated all the rebuilds. May of course still lead to as-of-yet undiscovered bugs as well
Also goes with an RC for v4 of our launcher: https://github.com/MovingBlocks/TerasologyLauncher/releases/tag/v4.0.0-rc.4 - which should be able to find this game zip at present!
alpha13rc2
Second release candidate for Alpha 13, has better working JoshariasSurvival and multiplayer in general, but some minor dependency version issues on other modules. Will get replaced but aiming to use for the December play test.
First alpha 13 release candidate
After the long dark ages of v2 it looks like we're about ready to go stable again! This is the first solid Omega zip after we broke all the things (again) over the last few months. Has JoshariasSurvival stable at least! A few modules still fail, will keep updating #3737 till all clear!
This is also the first built game zip from our new Jenkins, after also trying to rebuild pretty much all the modules. Still more work to come there but we finally can have easily triggered builds off all branches, PRs, and all the other things again :-)
v2.2.0 - Alpha 12. Checkpoint release
This is a fairly boring and standard stable release that's hopefully a fair improvement on top of Alpha 11 :-)
Mostly changes on the engine side are incremental, lots of UI improvements and general quality fixes. Lots of javadoc. An obsolete per-block liquid data type was removed, which might improve performance a bit.
Changes in module land remain tricky to summarize. The WeatherManager now has pretty particle-based effects for rain, snow, and hail! Nice to finally have that, although the current version struggles a bit performance-wise.
In part this is being done so we can do one more big round of impactful engine changes before the GSOC work period begins in 3-4 months, assuming we get in.