Update v0.88
So... I took some time away from Startron to try out some other projects (
I even released a couple) but ultimately came back to Startron after realising the features I was implementing in other projects, were really things I'd always wanted Startron to have in the first place.
Some key things were weighing on my mind when it came to Startron:
- Automation - I'd basically just implemented the first lazy thing I could think up back in the day, and it unfortunately did not lend itself to particularly engaging gameplay. I'd tried to enhance it with the inventory delta checking system that kept a record of how much of a thing was being produced by an entity while the player was away from it, but this was just an unsatisfactory hack that presented its own set of problems (not to mention needless complexity). Above all though, I hated having to place different directions for conveyors to get anything to move around, so I imagine other players were possibly put off at this point too.
- Presentation - Simple things like the 3D perspectives not having floors because I didn't invest the time in figuring out how to code such a thing, or menus being fairly ugly, just bothered me and needed replaced. Not to mention the representations of tiles in the actual gameworld were muddled and confusing to work with from a player's perspective and my own as the programmer.
- Compatibility - Let's be real here, I don't expect the half of people to actually try playing this in a terminal. Knowing this, I basically felt I had to make a Unity emulator if Startron is going to endure between operating systems with any sense of reliability. Frankly it's a miracle the same code works at all between Windows10, Ubuntu & Raspi as it is, but the Unity emulators just ensure there should always be a playable version of Startron somewhere.
I came back to Startron in 2023 Q3 to try and update things along these lines and, after burning out just updating the 3D engine, it ultimately took me until 01/01/2024 before I felt I could actually put all the pieces together the way I wanted.
By the time I'd finished with Startron v0.88, so much had changed (I've basically remade the entire game) that it might as well be a sequel. So with that in mind, I have decided to draw a line and say
Startron v0.87 and below is now considered to be Startron Classic (these versions are largely compatible with one-another), and
Startron v0.88 and above is now considered to be Startron Auto (largely named for the fact the way automation is done is completely different from any of the previous versions). The differences between Classic and Auto go beyond the gameplay into cosmos generation, codebase, compatibility & design too and hence, saves are not cross compatible between Classic & Auto.
So this is what I've been doing for the last month and a half lol:
There were 95 //TODOs: checked off in this update
Enhancements & gameplay: The cosmos generation now generates roughly double the number of systems, with more interesting connections between them
All building templates, shops & resources have been rebalanced
The database has basically been rewritten since most things have changed
Gas giants now have their own land-mass generation code separate to rocks
Lithrogen covered planets (waterworlds) now have a chance to generate as well as the original soil-covered variants
I remade the intro so it's actually relevant
The menu system has been remade with funky expandy windows
You can now generate and choose from multiple cosmoses (cosmi?)
Cosmos data now includes when they were last saved
There is now a generation options window (additional options will be added here in future)
The space stations have been converted to use the new 3D engine
Some space station types generate with fuel pumps on them
Automation is now achieved with groups of storage yards adjacent to industries (instead of directional conveyor belts as in Startron Classic)
The starting resources and starting-story transmissions have been adjusted to account for rebalance and new automation
I remade the website
Tweaks & updates: There is now a loading spinner when the game saves
Music toggling has been shifted to the options screen
Ship addons are now explained in the cosmic database
The flipper tiles at the edges of planets & moons are now more obvious
The ship markers around the edge of the screen flash so you can see them more clearly now
The captain's log background is now black so it's clearer that it's an editable area
Entering shops in space stations can be done with space now as you walk (so you don't have to remember the shop-specific key)
Magnetars now produce communications interference
Prices now vary slightly between space stations
All resources of a type can be collected at once from adjoined yards
Industries can now be toggled on/off
Rocks are now represented with more characters in the system view
The 2 language choices have tiny corresponding flags on the options menu
Materials/scrap/debris don't all look the same now
The ship will now orbit entities in the system view (instead of awkwardly hovering next to them)
The ship will now orbit the sun upon entering a system (instead of floating in the middle of nowhere)
Verse portal system colour alterations now show in the cosmos view
A minimum science rating is now required to operate energy funnels after building
Fuel price is now lowered as science rating increases on an entity
Build template requirements that aren't met will now flash in the top left so it's clearer what's missing
Grass and trees can now be beamed up to acquire organics (not really sure how I intended the user to get this resource in Startron Classic to be honest)
When hovering an industry or functional tile, it'll show its respective catchment area if it's expecting resources
Lithrogen is now animated
Air and ground tile previews now show in the correct colours on the build menu and at the bottom of the screen
Tile logic: Explosion chambers now require lithrogen cooling to function
Extractors will now sometimes produce a fluff
Mines will now sometimes produce a gemstone
Occupied dwelling output is increased when adjacent to trees, grass or gardens
Sunlight absorber output is decreased when adjacent to trees
There is now an incinerator tile which will destroy any resources in range of it
Picker tiles now replace controllers and allow selective grabbing of resources from nearby yards (the resource it chooses to grab can be set by beaming something down onto the picker from the cargo bay)
Minigames: Rock Blaster has been updated to not be so boring and clunky
MazeBase now uses a new 3D engine that supports floors & ceilings (also more correct perspective rendering)
The enemies actually follow you now in MazeBase
Stars now show through ceilings in MazeBase
Decorative walls and scenery have been added to MazeBase
The Spacejack card backs are now randomised
Bugs fixed in this version: Fixed petroop stations never spawning in bottom left of planets
Fixed the sun appearing twice in space stations
Fixed being able to indefinitely outrun the camera on planets & moons using the flipper tiles
Fixed a typo on orbiting
Fixed tiles from the opposite hemisphere being interactable off the edge of planets & moons
Fixed placing extractors (they just didn't work in v0.87 lol)
Fixed rock generated under energy funnels on Grogoth
Fixed gas giant rings occluding other characters in the system view
Dev stuff: I wrote a Unity emulator for Startron
The engine was converted to be compatible with the Unity emulator
The build pipeline now comfortably churns out all 5 different builds of Startron for me to upload
The engine was converted from largely static code, to largely object-oriented code (I will point out here, that this change wasn't actually necessary and the codebase was completely manageable in its static form, I just felt like taking on the challenge here to convert it to the industry standard)
The entire engine was subsequently refactored and reorganised to make redevelopment of the automation mechanics in-game way easier
The automation logic in-game was overhauled (none of this "resources go north of the industry" nonsense - now they just go into any adjacent storage yard, and fill them up as more resources are produced)
I removed the delta processing (this was just a workaround for the old clunky conveyor-driven automation from Startron Classic anyway, so had no place in Startron Auto)
I removed conveyors (as above)
I removed monorails (sadly as much as I liked the concept of monorails, and their tile animation, there just didn't seem to be a good way to slot them into how the new automation mechanisms work, since resources moving along yards/roads/conduits are not limited by distance anymore - maybe I'll think of some way to bring monorails back some day)
I removed a somewhat hidden concept of "resources" as distinct from "tiles" in the game - now they are all just the same thing, so technically any tile can be in the player's inventory, and moved around logically in mechanisms, but of course gameplay restrictions apply on top of this where necessary
I swapped height for depth (I just didn't like the Y axis being from north to south along an object's tilemap, so this is all the Z axis now in the code, and the concept of the Y axis is reserved for things with height, like ground-tile > air-tile > cloud)
Performance of drawing tiles has been improved by removing a load of old clunky switch statements in favour of data-driven mechanisms
Ore and resource tiles have been simplified so it is easier to tell what they are on top of
Clouds now only darken the backgrounds of tiles, so things get less visually confusing as they blow by
tl;dr:Unity! Automation overhaul! New 3D! New 2D! New generation! Cosmos rebalance!