The Spatials: Galactology

The Spatials: Galactology 3.6

Version
3.6
Version Date
June 2, 2017
Links

Patch Notes

Version 3.6 is now available!

Finally! After two grueling months of technical work version 3.6 is ready to play. This is an unusual version. It contains very little gameplay additions. You can read about them in this March post:

http://steamcommunity.com/games/450700/announcements/detail/483414098550226384

So what happened in the two months since that post was made? A massive rewrite of all the gameplay code in order to port it to LuaJIT, from a completely different programming language.

After version 3.5 was released it was clear the game performance was bad once your station grew a bit. This was specially relevant in 3.5 since it added enough content and fixed enough balancing for players to build a bigger station.

At that point I decided to stop adding new features and concentrate on fixing the performance. Otherwise the game future viability and quality would suffer a lot. It was a gamble since there's a lot of abandoned half finished games in Steam and doing this would make Galactology look like just another one, even while I was working my hardest on improving it. But I decided to take quality over appearances.

Version 3.6 is the result of that work, and I believe it's successful. Moreover it also means mods can now be written in Lua, making it much easier for moders to work on our game if they desire so.

Technical details



40K lines of code have been rewritten (some manually, some with the help of a custom transpiler tool developed just for the task) from Scheme to l2l, a Lua-based language similar to Lisp. This allows the very sizable scripting side of Galactology to be based on LuaJIT, for the maximum possible performance for this kind of programming languages. sol2 provides the C++ binding layer for Lua.

The performance improvement is roughly 4x to 6x. In addition GC pauses are dramatically shorter thanks to Lua(JIT) incremental collector.

Next version



Version 3.7 will be a return to our feature roadmap, and you can bet I missed it!

Update 3.6.7



- fix crash when rich text code parses some user input with "@"
- force memory pool clearing before delayed lua delete during new/load game (tentative fix for crash)
- fix decor counter for goals
- fix factory inspector not updating its state when an interaction happens
- fix display of item recipe info
- corpse text descriptions on planets should not mention recyclers
- make load/save deserialization errors fatal
- update example mods in workshop
- fix error when deleting the blueprint of a just created floor build job before its state is initialized
- fix corruption bug: Tool objects had their destruction delayed too much and were invalidating sessionID in newly loaded games

Update 3.6.6



- fix mac build: change luajit.dylib to use @loader_path
- fix ocasional crash when selecting categories in the object build tool after some research has been completed
stop resetPanel on activate_delegate, just use a change listener like goals does
- add brief planetarium tutorial to the planet tutorial
- linux port using beta runtime GCC 5