Full notes
Full My Colony update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Performance
- Maps
- Gameplay
- Balance
- UI and audio
My Colony changes
As I get further into the work on the big My Colony v3.0/10th Anniversary update, it is becoming clear that what I had originally planned as a mainly a graphics and performance upgrade is quickly turning into a complete overhaul of the underlying simulation engine. So today I wanted to discuss some of the things that are changing and how it might impact existing colonies, as well as what you should prepare for as the update approaches.
The current simulation system in My Colony is very much building centered, whereby each building tracks its own precise stats and is continually updated on a per-tick basis. This system is good and accurate for a small scale game, but quickly causes major performance degradations as a colony grows. That is the primary reason why the Regions system had to be implemented in My Colony, as the current system simply does not support a gigantic single-map colony.
When I was developing the original voxel-based My Colony 2 (now MC2 Classic), worlds ditched the fixed map sizes of the original My Colony and migrated to an infinitely scrolling chunk-based system, similar to games like Minecraft. Production/consumption/resource generation moved from being building-based to chunk-based, and this allowed the game worlds to scale up very high, with the limiting factor in the game now becoming the voxel based 3d models themselves. The new rendering engine for My Colony v3.0 has no such issues. While there may be some frame rate dips when loading many chunks at once, the renderer quickly normalizes at a stable 60fps no matter how many sprites are on-screen.
All of this extra idle time gave me the idea to remove the Regions feature completely, merging all of the region sub-cities into a single mega-map, and allow for an "infinite" world chunk-based system similar to what was used in MC2 Classic. I believe this new system will allow players to build cities that are even larger than a completely filled out region map would have allowed and then some.
To accommodate this massive scale-up of single-map sizes, simulation processing is being moved away from the per-building model to the per-chunk model that MC2 Classic used. On each game tick, chunks are processed differently based on whether or not they are "active" or "inactive." Active chunks, or chunks that are currently being watched by a player, are processed normally every tick, whereas all other chunks are processed more statistically. This simulation is not as accurate as the current single-map simulation of My Colony today, although it is more accurate than the current Region sub-city based simulation, or the settlement based simulation that was in MC2 Classic.
The main tradeoff here is losing the ability to look at an individual building and see exactly how many workers/residents/guests/students/etc that it has. These stats are now stored at the chunk level. The game will still present you with a statistical average when you click on a building, but under the hood it is not 100% accurate as it once was.
The upside to this, besides a faster simulation/processing speed, is a reduction in save-file sizes, as there are many data points that are currently being stored in every single building object and will no longer be needed in the new simulation engine.
With the removal of Regions though, I know that some players have old/large Region colonies where some of the sub-city files have become lost or corrupted. Sadly, these sub-cities will now truly be lost, as it will be impossible to migrate them over to the new save format. Resources are stored in the base/master region file and will not be lost, but if you have power/utility generation or resource storage coming from inaccessible map files, you may want to plan ahead for the migration.
In My Colony 3.0, wages and workers are being reworked significantly. There are now 5 income tiers in the game: poverty, lower/working, middle, upper, elite. Right now in My Colony if you go to the statistics screen, in the Economy tab you will see the Poverty Line rating, which is actually calculated in relation to the live prices of goods on the Galactic Board of Trade. In My Colony 3.0, monthly worker salaries are going to be based on a percentage of that poverty line rating, scaled to the income-tier of the job in which a colonist is working. Each chunk in the game knows how many open job positions it has in each income tier and what the IQ requirements are. Open positions in a chunk can be filled by residents in the same chunk, the 8 surrounding chunks, or from chunks connected to the mass-transit system.
Residents will first try to get the highest paying position they can based on their IQ, and then accept lower work as required, at the expense of happiness. If a job site cannot find workers at the needed IQ level, it can still operate, but at a lower efficiency. Housing buildings will have different income ratings, and residents will try to live in the nicest house they can afford. If nothing is available, they will move into a cheaper house, at the expense of happiness. If they can't find anything, they will either move to a neighboring chunk or become homeless. In a similar manner, entertainment structures now will also have an income tier, and citizens will try to utilize the nicest entertainment they can afford, or choose lesser options at the expense of happiness. If they can't afford anything, they will be really unhappy.
Dissatisfaction in a chunk, poverty, and homelessness will all contribute to crime. Crime happens on the chunk level and will have multiple effects on the chunk, including lower output efficiency, population loss due to murder, and faster building condition degradation due to property damage, as well as increasing the unhappiness level of the chunk, which thereby further leads to more crime, so a chunk can enter into a death spiral. Crime can also start to spill over into neighboring chunks if left unchecked.
Because of all of these simulation changes, some thoughtful consideration may need to be taken for city layouts. Chunks are 32x32 tiles in size, and so a chunk does need to be somewhat balanced based on what you are trying to accomplish in an area. A good rule of thumb though is to keep similar leveled buildings near each other when you are designing your colonies. For example, luxury housing next to a clothing sweatshop is probably not a good design.
The change might sound worrisome at first, but most players with effective colonies should not notice too much of a shock when the update hits. Consider that a chunk is 32x32 tiles and can pull workers/jobs/entertainment from itself and it's neighboring chunks. This means a building can have an effective impact radius of 96 tiles, which right off the bat is almost the size of a current MC1 medium sized map. So I don't want to make it seem like you will need to be micro-managing building placements and reconfiguring your maps once the update hits. Where people may run into problems are on former region based maps where some sub-cities may have been ultra specialized for one particular thing.
On top of the new chunk system, My Colony 3.0 is getting a new user-defined Districts system, allowing the player to draw arbitrarily sized named districts that can have their own micro-managed stats that are separate from the overall global colony values. For example, you could have a district with a higher wage scale, or a subsidized housing district, or a district that has a certain production priority (produce more microchips here, for example). In addition, you will also be able to "lease" a district to a player of another colony, who will actually be able to build on your colony within their defined district, sharing in the colony utility pool, but bringing their own resources with them. This is part of the new real-time multiplayer coming to v3.0 and the replacement for the current Multiplayer Regions system (which is going away), but this is a topic for another update, so stay tuned for more!
Source
Changelog.gg summarizes and formats this update. How we read updates.
