Today’s update shows off the Novakid AI you’ll find in the Novakid ship.





Dev BlogAs you’ve heard from metadept and omni, I’ve been working on a *complete* rewrite of the tile rendering engine. The old code was a nightmare of huge repeated hard coded blocks of logic, had long standing bugs, was *dog* slow, and was actually 3 systems running in parallel (one for regular materials, one for platforms, and one for neighbor based tiles like pipes). I’m nearly finished now with a brand new system, replacing the old complicated set of systems with one simple(r) rule based system that is about a 10th the size in terms of lines of code.
Even though the new renderer is running the new tile neighbor rules system for every single tile every single frame, the fullscreen cpu usage of starbound has actually gone *down* by about 30%*. The next step is to add caching of chunks into the system so that the geometry for each chunk is re-used for future frames if the chunk has not changed (the system was designed from the start with this in mind). This should further reduce the cpu usage *dramatically*.
This isn’t committed quite yet, as there are some small missing graphical features which would freak the artists out like not color shifting the materials properly and messed up preview tiles. Once those small issues are fixed, and caching is added, it can be committed to master. I’m hoping I can finish this up by early tomorrow, and I should have some better performance numbers then.
(*) The 30% figure is partially due to the new tile rendering system and partially due to some other related changes which also improve perf, it’s hard to tease out which is which.
Short one, what I’ve been up to lately:
Made AI actually perform events and gave it a proper action cost system, includes things like spawning items into the ship locker and upgrading ships. Involved pretty significant re-work of ship upgrades tracking.
With metadept, made more changes to the way biomes and spawn profiles are paired, and more info can go into the spawn profile on the biome, going to be used for things like tying specific color palettes to monsters within a biome.
Fixed interface bugs with the cockpit and E key and input priority handling
Fixed bug with current versioning upgrade scripts (still broken for stable -> nightly, lots more work to do)
Fixed fuel, after I (purposefully) broke it making the ship upgrades work with the AI.
STARTED work on a new system for essential items like the beamaxe. Rather than having the beamaxe be an item that can’t be thrown away, there will be several essential slots below the L and R slots that hold the beamaxe, paint tool, and wire tool. They will act like slots in the action bar, but are less like items and more like permanent player upgrades. Also, we’ve gotten rid of the system that applied status effects for items sitting in the inventory.
Also lots more boring stuff with the spawner and fixing other internal issues and bugs (or so my git log tells me).