Mechanics
What limits a big Zeus city
Zeus keeps its walkers, paths, buildings and army companies in fixed tables. A large city fills them, and then walkers stop appearing, workers cannot find a way, no more buildings can be placed and big invasions stay small. A patcher for the English executable has mapped the tables and doubled them.
Applies to Zeus
Fixed tables
The game does not grow its arrays. Each kind of thing the simulation tracks has a table with a set number of slots, allocated in the executable, and a city can run out. When it does, nothing warns the player; the symptoms are the ones that get blamed on bugs or on the economy. Walkers who should leave a building never appear. Workers fail to find a route. The build tool refuses a placement. An invasion arrives with fewer companies than the scenario asks for.
These are limits of Zeus.exe 2.1.4.0, the English executable, which is the one the GOG and Steam releases ship. The French retail executable is laid out differently.
The tables
Original size, and the size after the Zeus Limit Patcher. Record sizes are as stored in a save.
- Walkers
- 2000, patched 4000. Records of 388 bytes. People and animals moving in the city. The free-walker queue holds 1999, so slot 0 is not handed out.
- Paths
- 1000, patched 2000. The game keeps 500 bytes for each path and an owner value of 2 bytes. Walkers refer to a path by number.
- Buildings
- 4000, patched 8000. Records of 280 bytes, plus a list of 4000 16-bit values and a set of per-building arrays that grow with it, among them two matrices of 27 rows.
- Army companies
- 100, patched 200. Records of 156 bytes. Soldiers, invaders and monsters are grouped into companies, which is why a big invasion can hit the ceiling long before the walker table is full.
What the patcher changes, and what it cannot
The patcher moves the four tables into a new, larger section of the executable and fixes every reference to them, 18,558 of them in the GOG executable, along with the related counts and the save table. It also hands each new walker the lowest free number, so numbers stay as low as in the original game. It checks every patch by undoing it and comparing with the original byte for byte, and refuses to write anything if that fails.
It was tested in game on cities with more than 4000 buildings, and on an invasion with 152 companies and 2338 walkers in use at once, saved and loaded again. Two other tables of 2000 entries were left alone because their role is unknown and they were never full in the cities measured. Map size, graphics and rules do not change.
The price is save compatibility. A save written by the patched game crashes the original executable, so a player who might go back needs to keep copies. The container page explains why.