Previous: March 2024 Dev Diaries
Iron Village Dev Diaries - April 2024
Diary #12 - New Progression & UI
4 April 2024
As per usual, I underestimated the amount of effort involved in putting together a new user interface. So why did I go through the effort of redoing some of the UI? Game progression.
So far in the prototype, trains have basically been random. Apart from the first train that grants you pops, gold, and wood, all of the trains have randomly generated cars. This was basically just filler behaviour, so that the game was actually playable. In order to convey what was in each car, I put together a simple panel for each car. That part was intended to be the long term design, but it didn’t quite sit well with me. Part of the issue was that it was hard to tell exactly what each panel was actually telling you - the small graphical space and lack of text made things unclear.
I didn’t immediately have any solutions though, so I moved on to the next big piece - adding an actual feeling of progression to the game. Eventually (with the help of my partner) ended up with the concept of picking from a set of pre-assembled trains, assigned to a specific “progression level”, rather than assembling random trains. This way the trains can have their own character (different colors, logos, etc.), have cargo that fits the stage of the game, and be open for trades that the player is more likely to actually use.
This looped back around to the train UI - if the trains are treated as one thing, rather than a collection of separate cars, then the UI should reflect that. Instead of a bunch of tiny panels for each car, with their own varying transaction types (sale, purchase, etc.), there would be panels for each transaction type across the whole train. Sales of resources to the player would all be on the same panel, gifted resources on another, and passenger info on another. This also allows for a new “fuel” panel - steam engines need to get the water tanks topped off, and later on in the game the trains will be expecting coal to be restocked. These are the only cases where you’ll be expected to supply a resource without any payment, so it makes sense to have a dedicated panel for them.
Anyway, the UI is still in progress, but there’s enough that I’ve actually done a lot of the progression framework as well. It’s nice to finally be adding some length to the game and see the mechanics I built over the last few months actually come to life!
Diary #13 - A Fortnight Later - 20 April 2024
The fun thing about having three kids is the waves of various unknown diseases you collect. That, plus my day job ramping up, meant that a weekly dev diary was not really feasible. Moving forward, I think fortnightly updates are the way to go.
Anyway, the first main thing is that the new train UI is done, and the rest of the framework for progression is in place. Buildings now have their own progression levels; for example, the bakery is no longer available at the start, but in level 2.
The second main thing is train coloring. This may not sound like much, but there was a bit of work required to separate the sprites out to support this. Every train car is now separated into separate sprites (where relevant) for:
- Parts of the train that should not have their color changed: roofs, windows, outlines, etc.
- Parts that should be colored in with the main color.
- Parts that should be colored in with the “trim” color.
- The wheels, which are now animated for all cars and not just the steam engine.
- The load - mainly relevant for log cars, originally it was just a sprite sheet of 8 load states with the whole car copied.
- Front details - in the case of the log car, the stakes in the front need to be renewed on top of the load, but the load has to be rendered on top of the car, so a separate sprite is needed.
Finally, you can now click and drag to move the camera. That may not sound like much (it wasn't), but that means the game actually fully works on Android now! There is one more platform I'm looking to put this on, the Steam Deck (just got one a couple days ago!), but it'll be a bit before I tackle that.