Hello, Colonizers!
From time to time I find myself contemplating the creation of a mod for Sid Meier's Colonization (1994) that would introduce new mechanics to the game. However, since I have no knowledge of assembly language modifying the executable files directly is out of the question. Recently, though, an idea struck me that could potentially serve as the foundation for such a mod.
We already have a good understanding of the structure of SAV files, and with the help of smcol_saves_utility, they can be easily edited. Therefore, the workflow for a new utility could be as follows:
1. The player finishes their turn and presses the space bar. The game processes the turns for other nations and natives, and at the start of the player's new turn, it performs an autosave.
2. The utility runs in the background, monitoring changes to the autosave files. It automatically loads the latest autosave, applies changes according to the new mechanics we want to introduce, and then resaves it as a different SAV file (for example, COLONY00.SAV).
3. After that, the utility sends a command to the window running Colonization (DOSBox or similar) to load the modified SAV file (this can be easily done by assigning a hotkey for loading the game in the menu.txt file).
4. The player continues the game with the changes applied by the utility.
Does this make sense? What mechanics could we add this way? Upkeep for units and buildings? Some experience points mechanics (i.e. upgrading veteran troops to cont. army after several victories)? Something else?
Looking forward to your thoughts!
From time to time I find myself contemplating the creation of a mod for Sid Meier's Colonization (1994) that would introduce new mechanics to the game. However, since I have no knowledge of assembly language modifying the executable files directly is out of the question. Recently, though, an idea struck me that could potentially serve as the foundation for such a mod.
We already have a good understanding of the structure of SAV files, and with the help of smcol_saves_utility, they can be easily edited. Therefore, the workflow for a new utility could be as follows:
1. The player finishes their turn and presses the space bar. The game processes the turns for other nations and natives, and at the start of the player's new turn, it performs an autosave.
2. The utility runs in the background, monitoring changes to the autosave files. It automatically loads the latest autosave, applies changes according to the new mechanics we want to introduce, and then resaves it as a different SAV file (for example, COLONY00.SAV).
3. After that, the utility sends a command to the window running Colonization (DOSBox or similar) to load the modified SAV file (this can be easily done by assigning a hotkey for loading the game in the menu.txt file).
4. The player continues the game with the changes applied by the utility.
Does this make sense? What mechanics could we add this way? Upkeep for units and buildings? Some experience points mechanics (i.e. upgrading veteran troops to cont. army after several victories)? Something else?
Looking forward to your thoughts!