Civ like game - Spherical hex world

smallstepforman

Megalomaniac
Joined
Oct 30, 2001
Messages
130
Location
Melbourne, Australia
Hi everyone.
I'm an independent developer and have done some cheap iPhone games in the past (eg. Embargo game play video). I'm interested in doing a Civ like game for the desktop and handhelds, with the following features:
  • spherical hex world
  • we go system (strategy phase and action phase, ie. players manage their units during the strategy phase, and all units from all players move simultaneously during the action phase)
  • aggressive, neutral and defensive stances - units can withdraw from combat or fight to the death.
  • 4 epochs, 12 turns x 40 years = 480 turns per epoch. You play as a monarch descendant, where you inherit an empire from your ancestor.
  • And many more features based on community feedback.
I've just started working on the project last week, and have already developed the hexagon spherical world (screenshots follow).

World Size Small: 812 hexagons
world_small.jpg

World Size Medium: 2432 hexagons
world_medium.jpg

World Size Large: 7292 hexagons
world_large.jpg

World Size Huge: 21872 hexagons
world_huge.jpg


Now for some questions from the community:
  1. The 3D camera needs to be isometric. However, when the player moves the camera to face the bottom half of the world, it would look odd for the units to be upside down (just ilke in Australia). The camera will automatically rotate so that the atmosphere/horizon is always in the top half of the screen. This guarantees that the units are upright. Is this acceptable from the players point of view?
  2. When moving between units, is it better for the camera to move, or for the world to move? Preferences / opinions?
  3. Are the unit sizes too large / too small / just right?
  4. My biggest question - would the community be interested in supporting a bounty like system for game development if I were to open source the project. Essentially, the game would be free for the desktop, but to accelerate development, bounties would be collected to improve the actual game. The iPhone version of the game would be commercial to finance further development.

Cheers
 
technically, they aren't actually regular hexagons, are they?
Mathematically, you need 12 pentagons (Eulers formula => vertices - edges + faces = 2, see http://en.wikipedia.org/wiki/Platonic_solids). There is no other way to get around it. It's not a big deal, since for a huge map, you're still left with 21860 pure hexagons, which is 99.945% of total tiles. I've structured the map code in such a way that it doesn't matter for drawing / pathfinding, its still the same algorithm. In reality, it just doesn't matter that 0.055% of the world tiles have one less neighbour.

Today I've spent the day optimising the geometry to split the world into sectors, and do culling tests on each sector before drawing (ie. dont draw the sectors that are not visible). The Huge world raw map now renders at over 2500 fps on my box (AMD x2-4200, GeForce 8800GT) for a typical view, and at over 1800fps for the entire globe view. This gives me plenty of breathing room for additional terrain features (hills, rivers, water etc) and graphics effects.
 
Mathematically, you need 12 pentagons (Eulers formula => vertices - edges + faces = 2, see http://en.wikipedia.org/wiki/Platonic_solids). There is no other way to get around it. It's not a big deal, since for a huge map, you're still left with 21860 pure hexagons, which is 99.945% of total tiles. I've structured the map code in such a way that it doesn't matter for drawing / pathfinding, its still the same algorithm. In reality, it just doesn't matter that 0.055% of the world tiles have one less neighbour.

Today I've spent the day optimising the geometry to split the world into sectors, and do culling tests on each sector before drawing (ie. dont draw the sectors that are not visible). The Huge world raw map now renders at over 2500 fps on my box (AMD x2-4200, GeForce 8800GT) for a typical view, and at over 1800fps for the entire globe view. This gives me plenty of breathing room for additional terrain features (hills, rivers, water etc) and graphics effects.

that's a very interesting way of approaching the problem, i would have thought that you would have just distorted the hexagons to make them slightly irregular - i.e. slightly curved edges (although i don't know what algorithm i would use, so your method sounds simpler)


if you want someone to playtest an alpha version sometime down the line, i have extensive civ experience, so i would love to help. :)
 
Back
Top Bottom