I'm looking for a way to render a game world that allows for both flexibility and easy editing. Directly modelling the world by hand is too labor-intensive. Using a pure height map is great for rolling hills, but terrible for anything else. Building a mesh from a vector representation of the map would seem to be ideal, but the geometric algorithms involved are quite difficult. Using a regular square grid is appealing in its simplicity, but only being able to use 90-degree angles everywhere would be painfully obvious to the player. Hexagon grids suffer from being unable to use 90-degree angles anywhere.
My latest idea is an octagon-square grid, which consists of a regular tiling of octagons with squares to fill in the gaps between diagonal octagons. This has numerous benefits.
- Tiles can be rotated 8 ways, so one tile can do the work of 8, while squares usually only get 4 and hexagons only get 6.
- Broad winding features like roads, rivers, and beaches are free to wind in 8 directions without the complication of passing over a corner.
- 45-degree angles are almost small enough to prevent players from noticing that the game is rendered on a grid, especially when viewed from a first-person angle. It is far less obtrusive than other options.
This seems like a good plan, but it's not easy to find resources on the internet to make it easier. For example, where are the pre-made octagon-square tile sets? I couldn't find anything about octagon-square tiling on gamedev.net. Am I failing to see some issue that makes this approach unpopular? Is there some easier way to get the same effect, or is there some hidden pitfall that will cause me problems?