First a slight apology for posting this here, since it's not strictly about C2C, though I know the audience here will be well-targeted.
Recently I started work on a modern game engine for a Civ-like game, into which I want to incorporate many of the great ideas that have been developed over the years in C2C. This is very early work, and likely to progress slowly - I'll probably be ready to start blogging about the design choices and early working code in a few weeks (at which point I'll post a suitable link to said blog).
As part of this I have abstracted the game engine over possible map typologies (and yes, it won't be restricted to one map, or one view in any way, though that's not relevant to this post), so it'll run happily with any cell arrangement that can be projected in 2 dimensions (including arbitrary connections for things like worm-holes, tunnels, inter-map links, ...). In particular I didn't want to totally bake in a commitment to squares or hexes, though I intend to default to hexes, and the first displays will probably be written to support explicitly hex-based maps.
I had only considered (at least for regular tessellations) hexes and squares (connected to all 8 neighbors or just 4 are both valid possibilities in the square case), but it occurs to me that there is another regular polygon that tessellates in 2 dimensions (on a flat map), which is equilateral triangles. In fact a hex-tessellation can be subdivided into equilateral triangle sub-cells by connecting the vertices to the center in each cell, yielding the equilateral triangle tessellation.
This got me thinking about the old navigable rivers problem in Civ. The problem is that you want to:
- Allow movement along rivers by boats etc. (at least parts of a river)
- Have a concept of river crossing for land units
For (1) you ideally want the rivers to flow through the center of cells so that the river units move on them. For (2) you want the rivers to flow along the edge of cells, so that as land units move between cells the act of crossing the river is well-defined. In existing Civ map layouts you cannot really achieve both without cell-wide rivers, which don't work for obvious reasons.
However, suppose we have a hex map, and then (logically, not necessarily in a user-emphasized way) sub-divide each cell into its constituent triangles. Then route the rivers along the sub-cell boundaries so that they flow from (hex) cell vertices to centers (i.e. - always through the middle of a cell). Now if we internally hold the position of a land unit as being in a particular sub-cell we can still display it as being in the parent hex cell (maybe we offset it slightly as a visual indication), and can have all the usual movement/combat rules (i.e. - the unit of movement is a full hex, and enemy units in the same hex fight). However, the concept of river-crossing is now well-defined, since the sub-cell arrangement tells us which side of the river a unit started on.
Best of both worlds...?
Opinions welcome - this only occurred to me as a possibility today.