1. Iron Village
  2. News

Iron Village News

Diary #61 – Sale Retrospectives

[p]Yes, the Autumn Sale isn’t actually over yet, but I was looking for something to talk about in this dev diary, and thought it might be interesting. First though, a huge thank you to everyone: Iron Village has now surpassed 50 reviews (54 as of time of writing!), making it “Very Positive” in Steam’s eyes. I literally couldn’t have done it without you all – I mean, I didn’t write any of the reviews, so *I* didn’t actually do any of it.[/p][p]So as you may or may not know, discounted sales are a huge chunk of total sales. Outside of the initial launch, they are the vast majority of sales. If you look at the graph below of net sales over time, you can see a few distinct phases:[/p]
  1. [p]The initial launch spike.[/p]
  2. [p]A mini plateau and another spike. (This and the previous phase will be the subject of another future dev diary.)[/p]
  3. [p]A shallow climb from Mid-May through Mid-June.[/p]
  4. [p]A big jump coinciding with 20% off and the 1.1 release, continuing through the Summer Sale.[/p]
  5. [p]An even shallower climb from Mid-July through Mid-September.[/p]
  6. [p]A smaller jump in late September for 25% off for the 1.2 release and Autumn Sale.[/p]
[p][/p][p]There’s a few different variables at work, so it’s hard to pin results on any one thing, but I’ll go through them all anyway. First off, the 1.1 release: I managed to set the timing up to do a little bit of outreach to YouTubers beforehand. This was fairly limited (I always make the mistake of skipping marketing when crunched for time – even though the time crunch is my own fault), just contacting people who had played before, but since this was 1.1 and not a new release, there wasn’t much response. (Shoutout to Fort Malthus for playing it though!) Still, this may have contributed somewhat.[/p][p]Second, the 1.1 update itself wouldn’t have had much impact (I figure most people hearing about 1.1 would be existing players), but Steam has a feature where it shows significant updates to games. That placement gives Iron Village more exposure on the store, and (one would assume) more sales as a result.[/p][p]Third, the 20% off has a significant impact. There are several reasons for this – part of it might be Steam algorithms like to promote titles on sale, but I have no idea. The biggest measurable impact though is wishlist conversion: when a sale starts (I think there’s a percentage threshold of either 15 or 20%), an email goes out to everyone that has the game on their wishlist. Some people will hit the buy button thanks to this email, either because the sale was enough to make them buy it, the email reminded them that the game existed and they decided to buy it, or both. It also means plenty of people remove the game from their wishlist without purchasing – sometimes you decide you’re just not that into that game, and your wishlist is already super long.[/p][p]The seasonal sale has an additional impact on top of the previous ones as well. I had structured the 1.1 sale as an extended sale, such that the seasonal sale would just extend the release sale I had made. Whether or not that’s a good plan, I have no idea. I might try some experiments later with separating them and see how that works, but there’s so many variables there might not be a ton of useful information. However, that seasonal sale means (1) an additional email (although Iron Village has to compete with every other game on sale on your wishlist) and (2) a bunch more eyes on the store to begin with. That ends up driving another mini-bump within the sale.[/p][p]The 1.2 release has been pretty similar, except a lot less marketing – it’s basically just been Steam’s algorithms doing the work. It’s definitely been a smaller jump, probably partly to do with it not being a brand new release, and partly because 25% isn’t much more than 20%, but still a big chunk of sales![/p][p]The letter of the day is… Z![/p][p][/p][p]Anyway, if you made it this far, here’s a cryptic teaser of project OY! More to come later.[/p]

Diary #60 – 1.2 Launch & The Future

[p]So it looks like the Iron Village 1.2 launch has gone pretty smoothly! Apart from the bug that caused 1.2.03, there haven’t been any significant issues, and the launch sale has gone well so far. (As long as you say it’s “25% off” instead of “$2 USD off”, it sounds like a decent discount, haha.)[/p][p]\[Another] Side note: if you’ haven’t ‘ve bought Iron Village, but haven’t left a review, please take the time to do so! Iron Village only needs two more reviews to reach the magic 50, which puts the word “Very” in front of “Positive”. I’m not entirely sure if it has a direct algorithmic impact, but it definitely has an impact on people when viewing the store page, and the resulting purchases and wishlists do have algorithmic impacts![/p][p]So what now? Well, serious work began on the new project (nicknamed Project OY for now) at the start of September, and it’s been basically full time for the last week and change. There are still a few things I’d like to fix and add on to Iron Village, but for now I need to get a move on and get some core mechanics built for OY. I’ll probably revisit Iron Village later, there are a couple of player suggestions I really want to implement, but it felt like if I didn’t switch and dedicate a solid length of time to OY, it would take forever to actually build it.[/p][p][/p][p]👀 Those of you that are familiar with Jamie Brownhill’s work might find this style familiar, but I’m afraid that’s all the context I’m giving right now. Very WIP.[/p][p]I would be sharing more about Project OY so far (and I do have things to share!), but of course there’s a thing called marketing™ that has to happen. Doesn’t mean there won’t be any teasers though! (Look up!) The plan is to get a Patreon set up at some point in October, and I’ll have a steady feed of new info coming in there.[/p][p]These dev diaries aren’t going away though! I want to push something out every week, alternating between the sneak previews and public-facing dev diaries. Nothing on Patreon is going to be exclusive forever either: once project OY has a proper announcement, I’ll share it all, but that’s the first marketing/PR beat that I have to plan out beforehand.[/p][p]“But Chappington”, you ask, “what will those dev diaries be about if you’re not actively working on Iron Village, and not revealing details about project OY?” Good Question.[/p][p]…[/p][p]…[/p][p]…[/p][p]I was really tempted to leave that as a cliffhanger. At the start of Iron Village, the idea was that this is an experiment to see if I can pull off making (and releasing – that’s the most important part) a game. After any good experiment though, we have to look back and see what actually happened, and share some data. So that’s the plan, try and do some deeper analysis into how it went, and hope it comes across as interesting![/p]

Diary #59 - 1.2.03 Release Notes

[p]As is tradition, we have another post-release patch! Nothing game-breaking this time, but a couple of issues were reported, and I uncovered a separate minor bug along the way.[/p]
  • [p]Fixed an issue where the tutorial bubble informing you of the HQ's upgradability would not disappear after actually building it. (Additional code has also been added to fix it in old saves.)[/p]
  • [p]Fixed the Grand Headquarters achievement to actually unlock upon building it. (Additional code has also been added to unlock it in old saves.)[/p]
  • [p]Fixed an issue where villagers entering the HQ (base level) would disappear at the cliff rather than taking the time to actually walk up the stairs.[/p]
[p]That's all for now![/p]

Diary #58 - 1.2.02 Release Notes

[p]Iron Village 1.2 is now out! Here's a full list of features, changes, fixes, etc:[/p][p][/p]
  • [p]Show an icon over a building when it is being demolished/chopped down.[/p]
[p][/p]
  • [p]Add charts for current and maximum production rates of resources, unlockable via levels of the Railway Headquarters.[/p]
  • [p]Created new icons for farm fields that are rotated from their base option.[/p]
  • [p]Stopped minecart animations from automatically playing, regardless of whether or not workers are present.[/p]
  • [p]Target SDK on Android has now been set to 35 to comply with Play Store requirements.[/p]
[p][/p]
  • [p]Some resource piles now have upgraded graphics.[/p]
  • [p]The City Status Permit now contains a line referring to the palace that is required for the ceremony.[/p]
  • [p]Added new icons for job priorities, maximum production, and current production.[/p]
[p][/p]
  • [p]Added a Railway Headquarters building that can be further upgraded. This building also supplies housing.[/p]
  • [p]Stop villagers from being evicted when their housing is upgraded. While this may be realistic, it isn't very nice to those poor villagers, so they get to stay in the upgraded building now.[/p]
  • [p]Increased resting rates (i.e. the rates at which villagers regain energy) and differentiated stone & wooden housing (stone houses have 50% higher resting rates now).[/p]
  • [p]When going to rest, villagers may now look for nicer housing (defined by resting rate).[/p]
[p][/p]
  • [p]The Railway Status Window has been restructured to better handle all of the new buttons.[/p]
  • [p]Many panels have been replaced by windows, allowing the user to drag and resize them.[/p]
[p][/p]
  • [p]UI graphics have been updated to use a modified version of the new Minifantasy UI.[/p]
  • [p]Added an EventLogManager to track resource production and consumption events.[/p]
[p][/p]
  • [p]Allow players to choose to discard excess resources when demolishing buildings. Insufficient storage will no longer be a hard block to demolition.[/p]
[p][/p]
  • [p]Added a Population Statistics window to track usage of resources by villagers, as well as other useful population information.[/p]
  • [p]Change certain chopping and mining sounds to be played by the villagers (and synced with animation) rather than by the building.[/p]
[p][/p]
  • [p]Added a buildable Immigration Office which allows the player to increase (or decrease) the villager cap.[/p]
  • [p]Added new achievements.[/p]
  • [p]Added new tutorial bubbles to explain the new features.[/p]
  • [p]Overhauled the tutorial system internals to make it a lot less finnicky.[/p]
  • [p]Fixed the catenaries so that their components are drawn on the correct z layers.[/p]
  • [p]Implemented the Steam Input API, which will allow you to remap controllers. (Steam only)[/p]
  • [p]Created a custom "local save/load" window, since controllers could not handle the built-in FileDialog well.[/p]
  • [p]In "construction projects" (i.e. buildings that are construction sites for other buildings), filling up the need for one resource will move its corresponding bar to the right, out of the way of resources that still need to be filled.[/p]
  • [p]Those construction projects will now have a button saying "Build" instead of "Upgrade" to better reflect what's really happening.[/p]
  • [p]Fix the fill indicator of the water tank to not show up above structures in front of it.[/p]
[p][/p]
  • [p]Adjusted locomotives to not have multiple smoke stacks.[/p]
  • [p]Shortened the height of most train cars and locomotives by 1 pixel. (The scale compared to buildings is still off (intentionally), but the proportions seem better now.[/p]
[p][/p]
  • [p]When villagers are looking for a new job, they now join the queue in the JobManager. JobManager then assigns jobs in priority order, finding the closest available worker for each one.[/p]
  • [p]Fixed clock speed hotkeys to work when other windows are in focus.[/p]
  • [p]Windows are hidden when the menu is up. (This is because the menu is still a PanelContainer rather than a Window, and therefore cannot easily be drawn above the other windows.[/p]
  • [p]The Info Box should better handle when an upgrade causes a tutorial bubble to pop up.[/p]
[p][/p]
  • [p]Added a button (accessible from Screenshot Mode) that will take a screenshot of your whole town.[/p]
  • [p]Adjusted the loading/unloading position for villagers on the train platform.[/p]
  • [p]Wait to play music in the main menu until the settings are loaded or created. That way it won't play if you've muted it. (Or at least, it'll play silently.)[/p]
  • [p]Wait to play music until the game is loaded (if it's loading). This should prevent playing a second of the first song, and then switching to the song that was last playing in that save one second later.[/p]
  • [p]Demo Only: 1.2.02 fixes an issue where the Railway HQ does not show up - apart from its front door.[/p]
[p]Phew, that was a lot! I hope you enjoy, and please let me know if there's any new bugs/bugs I missed/random things you like![/p]

Diary #57 – Iron Village 1.2 Features

[p]It’s been almost 3 months since the last major update, and it’s time to give a full preview of what’s coming in the update. The plan is to release the 1.2 update on Thursday, September 18th – all of the major features are done, it’s mostly just some minor bugfixes I’m trying to squeeze in, plus some more thorough testing, so I don’t see a reason why the date will change. Here’s what you can expect in this update:[/p][p][/p][h2]UI Updates[/h2][p][/p][p]The lower right corner of the user interface with the new graphics applied.[/p][p][/p][p]Probably one of the first things you’ll notice. I’ve implemented the updated Minifantasy UI (with some modifications), giving the panel textures a more crisp look that contrasts them better against the background. I think this brings it more in line with rest of the game’s aesthetic as well.[/p][p][/p][p][/p][p]A tree waiting to be chopped down.[/p][p][/p][p]There’s also new bubbles that pop up on buildings & trees that you are demolishing/chopping down, which should better communicate the status of things.[/p][p][/p][p]The new version of the Railway Status Window[/p][p][/p][p]The biggest change in the functionality of the UI is the use of Windows instead of PanelContainers for many UI elements. These are two different UII objects in Godot: the PanelContainer is a simple box with a background, whereas the Window is a little more finicky, but more powerful object that acts as a window, complete with resizing and moving. (These can also be used to create “native” windows, that show up outside of the game window.) Many windows can now be dragged around and resized so they won’t get in the way of you playing.[/p][p][/p][h2]Production Data Charts & Other Analyses[/h2][p]The Current Production Rates window[/p][p][/p][p]I would consider this the main feature of 1.2, if you had to assign that title to one feature. Although Iron Village has 88% positive reviews (out of 45: go add to that number if you haven’t already!), and half of the negative reviews are transphobia, there’s always room for improvement. One item that has come up multiple times is the lack of production data: basically, how do you figure out the rates resources are being produced so that you can find bottlenecks?[/p][p]Originally I didn’t have this as a necessary feature, given that Iron Village’s gameplay is relatively short and simple. However, the importance of some sort of data analysis screen came apparent for a few different reasons:[/p]
  1. [p]Review comments & discord feedback about feeling like they were missing that information.[/p]
  2. [p]Since I literally programmed the game, I have a decent understanding of what’s going on just by looking at the movement of villagers and the flow of the resource counts. New players would probably not have this intuitive understanding, no matter how well I otherwise designed the user experience.[/p]
  3. [p]The late gameplay came together rather late in the game’s development cycle. While it’s fairly easy to keep track of what you need in the early game, the late game gets a lot busier and can really be helped with that extra information.[/p]
[p]There were four new windows designed for this feature, although the last one is only tangentially related and covered in a section below. The first two are the Maximum & Current Production Rates: What can your buildings theoretically produce (so you can find out what buildings are missing or superfluous), and what have they actually been producing (which will hint at other problems like low population). More details about these can be found in Diary #53 – OK, What’s Next?, with some implementation details in Diary #54 – Workers and Resources: Iron Village.[/p][p][/p][p]Spreadsheets![/p][p][/p][p]The third window (which actually gets unlocked between the two, more on unlocking below) is Population Statistics, giving you an overview of the population, housing, and job counts; summaries of urgent needs such as hunger or homelessness; and the production and consumption of food and water. This should get you an idea of if your villagers are having their needs met.[/p][p][/p][h2]Railway Headquarters & Immigration Office[/h2][p][/p][p]Level 1 of the Railway HQ[/p][p][/p][p][/p][p]Level 2 of the Railway HQ[/p][p][/p][p]You don’t get all of that information right away though – there’s in-game reasoning for it instead. You have to build a Railway Headquarters (available in the 2nd level, the Light Industrial Permit) to get the Maximum Production Rates. This HQ upgrades again in level 3 (Full Agricultural Permit) to grant access to Population Statistics, and again in level 4 (Heavy Industrial Permit) to get the Current Production Rates.[/p][p][/p][p]Level 3 of the Railway HQ on the top of the screen, connected to the Immigration Office across the railway[/p][p][/p][p]The fourth window I alluded to above is the Immigration Controls window, which unlocks with the Immigration Office (itself unlocked in level 5, City Status). This office acts as an extension to the HQ, and handles another bug/issue/feature request from players: why does my population stall at just above 120 villagers? I had programmed in some population caps per level to avoid the player having to take care of more villagers than they could realistically handle. For level 5, this was set to 120, and as long as the population was at least 120, passenger trains would stop carrying new villagers. However, since City Status is the highest level you can achieve, that places a permanent cap of 120 villagers on your town/city.[/p][p][/p][p]The Immigration Controls window[/p][p][/p][p]With the Immigration Office, you now get the ability to increase that cap, so now the main limiting factor will be the size of the map. You can also decrease the cap, although this won’t actually kick anyone out. Instead, it will just prevent new villagers from coming in.[/p][p][/p][h2]New Resource Graphics[/h2][p][/p][p]In the middle: a pile of steel. To the bottom left is a new decoration available for construction.[/p][p][/p][p]This was also covered in Diary #53, many of the resource piles have been graphically updated and should better fit in with everything else.[/p][p][/p][h2]Villager Housing Logic Improvements[/h2][p]Upgrading houses used to come with a semi-hidden drawback: doing so would evict the current residents. They might end up getting to live in the new building, but they might also just get moved to another random house, or in the worst case scenario become homeless. Either way, the eviction comes with a happiness penalty. Depending on where you live, this may be realistic, but that’s not a good enough excuse to mistreat the poor villagers. Now whenever there’s a housing upgrade, the existing residents get automatically rehoused in the upgraded house.[/p][p]The villagers can also take the opportunity to rehouse themselves – if there’s a nicer building (defined by the resting rate – how quickly they regain energy) with open space, they have the opportunity to change homes when they’re ready to go back to sleep.[/p][p][/p][h2]Excess Resource Disposal[/h2][p]Until 1.2, demolishing a building would require that you have enough storage space for the resulting resources. For example, demolishing a stone building would require sufficient stone storage for the resulting building materials, and demolishing a stone storage area would require sufficient capacity to store the resources that were present.[/p][p]The new method of dealing with excess resources.[/p][p][/p][p]Now you’ll receive a warning when trying to do this, but you won’t be completely locked out from the bulldozer. Instead, you’ll just lose the resources that can’t be stored.[/p][p]This also now applies to upgrades. Some upgrades, such as upgrading wooden houses to stone, included a refund (in this case wood). Before 1.2, you would end up over capacity, but now the excess is removed.[/p][p][/p][h2]New Achievements (Steam Only)[/h2][p]New large construction projects means new achievements of course! The first and third levels of the HQ come with achievements, and reaching 200 villagers will get you a shiny badge as well.[/p][p][/p][h2]Steam Input API (Also Steam Only)[/h2][p]This isn’t full support for key remapping, but this should enable playing Iron Village with just about any game controller, with fully customizable button choices.[/p][p][/p][h2]Chop & Mine Sound & Animation Alignment[/h2][p][/p][p]A villager mid-chop.[/p][p][/p][p]The some buildings emit sounds when villagers are working inside them. You get fiery forge sounds from the Steelforge, windmill swooshes from the windmill, etc. With the new mining and chopping animations in 1.1 though, you can clearly notice that these sounds do not line up with what the villagers are actually doing. This is fixed in 1.2, and the sounds should play as the pickaxes and axes impact the rocks and trees, respectively.[/p][p][/p][h2]Train Graphics “Overhaul”[/h2][p]Iterations on the steam engine, counterclockwise from top right: (1) The original steam engine asset. (2) The first experiment that I posted on Bluesky: removing two pixels of height. (3) The finished modification, I settled on 1 pixel instead of 2, and fixed the extra smokestacks.[/p][p][/p][p]A lot of the locomotives and train cars have been tweaked to be a whole pixel shorter. You probably won’t notice, but if you compare side-by-side it’s surprising how much of a difference it makes. The locomotives have been tweaked too, with slightly longer cab roof overhangs, and I removed the excess smokestacks to make things a bit more realistic.[/p][p][/p][h2]Job-Finding Overhaul, a.k.a. LinkedIn[/h2][p]Before 1.2, villagers were in charge of finding jobs. When they were idle (that is, they already sorted out their basic needs), they would ask the JobManager to find an open job, which would then look through all of the jobs and assign one of the highest priority ones. This system did work, but could cause some issues in larger towns, since the location of the villager was not taken into account.[/p][p]To fix this, the JobManager is now in charge of the whole process. When an idle villager decides they are ready for a job, they set their state to LINKEDIN (Yes, that’s literally what I called it, but it’s less humiliating than #opentowork.) The JobManager keeps track of the job market, and each frame goes through the open jobs in priority order, assigning them to the closest villagers that have indicated they are #lookingforwork. This is a greedy algorithm, so it could potentially be more efficient, but it at least means your orders to chop down trees will be taken by villagers who are actually nearby.[/p][p][/p][h2]Full Town Screenshots[/h2][p]A screenshot of the whole town that has been used for testing so far.[/p][p][/p][p]This was a little tricky to figure out, since it's not super well documented IMO, but thanks to this video I managed to get a second camera set up in the game. What does this special camera do? It lets you take a picture of your entire town. When you open up Screenshot Mode (the camera button in the lower right), a second button also appears. That button takes a picture from the second camera and saves it to user://screenshots/. (user:// varies by OS, for example on my Windows machine it's C:\\Users\\(USERNAME)\\AppData\\Roaming\\Godot\\app_userdata\\Iron Village.) I need to figure out the best way to document the feature, since that description is trickier to fit into the game, but I at least want to make it available for 1.2.[/p][p][/p][h2]And More![/h2][p]There's a few more minor tweaks and fixes that would've made this even longer, so you'll have to wait for full patch notes to see those. Anyway, I'm looking forward to sharing this with all of you on the 19th![/p]