I am finally putting the finishing touches on the My Colony v0.86.0 patch, which should be hitting all devices within a few days. I had planned for this to be a huge exciting content update, but then once I started working on it, I began running into one problem after the other and it ended up taking way longer to complete than I had anticipated. As a result, there are a lot of engine changes in this update but no content additions, so from the outside it may look like I've spent the last two weeks doing nothing. Rest assured though, there are some improvements to the game in this release, so let's take a look!
The first major change, which actually inadvertently started a domino effect of changes to the engine, was a total rewrite of the way the game saves files. As most of you know, when My Colony first came out there was no such thing as Regions, and so the concept wasn't even considered during game saving. Once Regions came out, many of the engine mechanics had to change to accommodate having multiple game objects processing at the same time (the individual city you are playing, the region itself, and the minor updates to the surrounding region files).
With all of these changes happening to different game objects at the same time, the game saving function remained the same as before. I sort of duct taped a solution together which worked pretty good for the most part. For instance, I had never personally run into any major issues with saving a Regions game. However, there were always reports of problems with saving in Regions, particularly with Resources and Technology levels not saving. This is unique to Regions, as it shares a single Resource and Technology pool among many different game files.
In addition to Regions, the structure of the game itself has changed considerably over the last three years, and over time, layers upon layers of different ideas have been cobbled together in the code creating a mess of sorts. To resolve all of this, I decided to completely change the manner in which game data is saved to the system. The new method allows making saves to multiple game objects at a time, instead of just the currently active game object. For example, prior to this update, when you were playing a region, the overall Region file did not save until you chose "Exit to Region" from the game menu. With this new update, you no longer have to Exit to Region for all regional data to be saved.
This is all well and good, but I didn't anticipate, or rather appreciate, just how many parts of the code were tied into the previous game saving functions. This lack of preparation on my part led to a major issue in the pre-release code on Ape Web Apps where saving a regional city would cause all colonists to lose their jobs and become homeless. Which is not good. It was like doing a fire-drill with each save, except after the fire-drill, the colony would never recover. So that was fun, and working through that led me on a breadcrumb trail that resulted in little changes and fixes all throughout the engine.
As if that wasn't enough though, I also decided to make major changes to the way virtual colonists work. Virtual Colonists are the "colonists" in your colony when your population exceeds 2000. These colonists do not actually exist, but the game instead uses statistics to simulate their education, housing, entertainment, and industrial output. With today's changes, the accuracy of this simulation should be greatly increased, especially in regards to education, which was barely simulated before.
On top of those significant engine changes, I also decided to completely rewrite the way colonists find jobs! I know, too many big changes for one update. There were so many changes here that I could write a whole article about it, but to avoid putting you to sleep, I will give the general overview. With this latest update, the game now keeps track of a "now hiring" list, sort of like a classified advertisement page. Whenever a business has an open job, it adds a now hiring record containing the x:y location of the job, the IQ requirement, pay, etc. Whenever a colonist doesn't have a job, the game takes the now hiring list, and sorts it for that colonist based on location from their house, how it matches their IQ, how it pays, etc. They then start at the top of the list and apply for the jobs. If the job is within a certain range of their house (40 tiles I think) and they meet the requirements, they will take the job. If they don't find one, they will lower their standards a bit. If they still don't find one, they will enroll in school. If they don't find a school to enroll in, they will be mad and complain about lack of education.
This change actually works pretty good, but there is a computational penalty when sorting the job openings. When only a handful of colonists are looking for jobs, it's no big deal. But if you conduct a fire-drill and the entire colony looks for work at once, you might experience a lag in the game of several seconds or more. I will need to look into a fix for this at some point soon.
Ok, so that addresses the bulk of the engine changes I made. There are some other little things here and there that you might notice, as I actually changed so much that I can't remember it all. But since there were so many changes, I would expect to see bugs as a result. Please let me know in the forum what you find!
Let's move on to non-engine related changes. First off, on the main Region city selection screen, the game now shows the name of the city on the overall map.
I will probably add a toggle to turn this on/off, I just did not get to it this time. This is mainly for mobile/touch players, since they don't have a mouse and therefore do not see the mouse-hover popup box that Desktop players see on this screen, making it hard to tell which colony is which.
Next up, I have consolidated most of the Commonwealth management settings into the main Commonwealth section of the statistics screen, so you no longer have to dig through the Policy menu to find everything.
If you look closely at the above, you will probably also notice the next thing I added. That's right, you can now finally change your Commonwealth Tax Rate! This has been requested since Commonwealths first came out, and I apologize for not adding it sooner, but it's there now. I have also capped the Commonwealth Payroll Assistance at 500%, since some of the levels on the server were insane.
Moving on, I have added a new feature called Layout Templates. This is mainly for Regions, but you can now save a "Template" of your current map and export it to the file system to share with other players. When you activate a template on your map, you see a ghosted image of the template buildings overlayed on your colony (you can turn the image on/off) that you can use as a guide for building. This is mainly for players who have designed certain build layouts and want to share the layout with others. I imagine it would work best on an empty regional map with no resources. You can find the template options on the bottom of the General Statistics screen.
There is a new engine setting that allows you to turn Gamepad input on or off. It has always been turned on from the beginning, but there was a concern that if you were playing another game on your desktop while My Colony was open, My Colony would be processing the gamepad inputs from the other game. If you find yourself in this situation, you can now turn off gamepad input completely from the Engine Settings screen.
There have been some minor changes to Colonist processing. Entertainment facilities now increase energy and happiness at a faster rate. In addition, colonist happiness will also slightly increase when they are at home. I have also increased the starting colonist IQ range to make them a bit smarter by default (will not impact current colonists, only new arrivals). And finally, I have further increased the rate that colonists age, since I still think it's too slow.
And last but not least, there were a couple of changes to existing buildings. The Mass Driver trade capacity has lifted from 100 to 300, and the basic Greenhouse now has a slightly faster production rate and a higher storage capacity.
So anyway, for me this was one of those updates that was pretty large, but for the general players of the game, it should seem like a pretty small patch. Hopefully nothing major has been broken, but continue to let me know what bugs you find. I should note that on the Android and Windows clients, there is a new "Send Feedback" button on the My Colony sidebar that will allow you to send a message or bug report directly to my Inbox, and I will add this to the Desktop, Web, and iOS versions at some point too. A lot of times people leave bug reports in the app store comments, and those are easy for me to miss.
That's all for today;s update though, let me know what you find, stay tuned for more, and thanks for playing My Colony!