What the Zoning Prototype Will Bring
I've been very busy re-architecting and extending the planning system to incorporate a better road UI, zoning, smart buildings and multiplayer.
It's a hugely complicated endeavour, but I made good headway and even have some first visible progress, which I would like to use to give you a preview of what's to come.
Check out this ingame debugging screenshot:
What you can see here:
- A unified canvas on which you draw simple line paths which represent either roads or zones
- The paths and thus the roads/zones can be edited at any point by dragging their control points
- Roads smoothly follow their line paths, as we implemented it during the livestream
- You can add or remove lanes from a road by just dragging on it's left or right border
- This results in a much more useable road laying UI that is at the same time more powerful than the old one
- For example, you can very intuitively add slip lanes or offramps: they are just one-lane one-way roads that you draw as merging out, running parallel, branching off, etc. - only convenient snapping is missing
- A completely new algorithm handles finding and laying out road intersections - it is much faster, much more predictable and a lot less contrived than the old one
- Road geometry calculations that are much more stable in general - when something goes wrong in a particular arrangement, invalid roads might disappear until you move them, but the game doesn't crash anymore, which it did frequently
- Roads cut into zones, potentially splitting them into several pieces - this is the main thing I just got working, hence only one zone type so far
Next up before release is:
- Supporting several zone types and having them overlap
- Subdividing unused zone areas into building lots
- Possibility for developers to take vacant lots and start constructing there, by registering the exact lot shape as "used" in the city master plan
- Detecting conflicts of new or changed roads with existing built lots and dealing with different degrees of reconstruction that becomes necessary
Looking further into the future, the general motive behind a lot of my code architecture decisions was to make smart defaults with optional precise overrides possible for every aspect of planning. For example, intersection geometry, turning lane configuration and traffic light timing is chosen automatically, as reasonably as possible - while still supporting manual changes to each detail by editing the plan. All that's missing is the UI for that. In the old implementation that was entirely impossible.
Second, all of this is written with collaborative planning in mind. Both in the sense that multiple players might be working on the same city and even the same area, potentially having conflicting ideas - as well as in the sense that the player is preparing plans at the same time as the city's construction companies are acquiring and developing lots. Making sure that the system stays clean and still supports all of this parallel ongoing development was a very hairy design problem, but I'm really happy with the architecture that I have now.
The best thing about it is maybe that mods will be able to make use of this general planning principles, allowing the same combination of automagic calculations, precise manual modifications and collaborative editing for any topic which the mod might be about!
I'm really looking to the next release and to all the opportunities this opened. I can't tell yet how much more time I need, there is still quite some UI work and polishing left. But I will keep you in the loop!
Hope to see you all soon!