Possible Future Direction (personal view)

Before everything is done from scratch: did anybody take a look at FIFE?

http://fifengine.net

I was not aware of this - it looks like it might be a good candidate to base our graphics on, though it doesn't really impact anything discussed so far (apart from possibly constraining some of the tiling choices). Underlying engine wouldn't be impacted either way though - but this might be a good front end for sure.
 
Impressive and potentially Very useful video on procedural generation
http://www.youtube.com/watch?v=iTBvpd3_Vqk&feature=player_embedded#!

'A magic way to make a vast amount of rich content easily that isn't used in many video games but should'
'takes a second to generate a galaxy of data' (even in complicated 3d rendering of map data) 'whole star systems created' 'solar systems within systems'..'with their own shapes and momentum properties'
'if the procedures are varied enough - so is the end result'!

I was thinking this very thing in the late 80's. (and have mentioned something almost exactly the same here several times - add tweaked fractals to procedural generation)
Could be useful for just about everyone (who programs).
I definitely highly recommend that everyone sees this!! It is easy to see that it is a big deal.
:)
 
I was not aware of this - it looks like it might be a good candidate to base our graphics on, though it doesn't really impact anything discussed so far (apart from possibly constraining some of the tiling choices). Underlying engine wouldn't be impacted either way though - but this might be a good front end for sure.
I think a good part of the code should not rely on specific tiling anyway but use the relation abstraction.

In regards to graphics some stuff from the Freeciv project might be useful:
http://freeciv.wikia.com/wiki/Main_Page
 
Impressive and potentially Very useful video on procedural generation
http://www.youtube.com/watch?v=iTBvpd3_Vqk&feature=player_embedded#!

'A magic way to make a vast amount of rich content easily that isn't used in many video games but should'
'takes a second to generate a galaxy of data' (even in complicated 3d rendering of map data) 'whole star systems created' 'solar systems within systems'..'with their own shapes and momentum properties'
'if the procedures are varied enough - so is the end result'!

I was thinking this very thing in the late 80's. (and have mentioned something almost exactly the same here several times - add tweaked fractals to procedural generation)
Could be useful for just about everyone (who programs).
I definitely highly recommend that everyone sees this!! It is easy to see that it is a big deal.
:)
What do you think how map scripts in Civ4 work?

The guy in the video talks a lot about parts that are quite easy to do but very little about the things that are really interesting.
 
@ Koshling: Good luck with your project! I read through your blog posts so far and find it very intriguing.

I'm really a map fetishist at heart. I suppose anyone who is dedicated / crazy / stupid enough to sink months of his spare time into making something like the Gigantic Accurate Earth Map has to be a map fetishist! So, while everyone is throwing around ideas, I would like to add a few thoughts on that:

1. Huge map sizes: Koshling, I believe you are a fan of gargantuan maps yourself, right? In other threads, I saw you writing about how to make 1000 x 1000 tile maps work in Civ IV using viewports or multimaps-and-theaters or whatever. So I assume that one of the features of your project will be to support huge maps like that? If so, that would be great!

2. Hexes vs. squares: When it comes to the debate about squares vs. hexes, I as a mapmaker am in the hex camp. Actually, the introduction of hexes is pretty much the only thing I really liked about Civ V. While hexes are somewhat more complicated to use (not just for programmers, but also for mapmakers), I think the advantages they offer over squares more than make up for that. Not only can movement be modelled better, you also get the ability to put more detail into coastlines and rivers.

3. Globes vs. flat maps: It's impossible to represent the Earth's surface on a flat, cylindrical map without distorting some of its properties. Every cylindrical map distorts area, or landmass shape, or distance, or direction, or all of the above. As a mapmaker, I am pained by having to make these compromises. I am waiting for a Civilization-style game that finally uses a globe!

I know there are players out there who dislike globes, but after discussing the matter with all kinds of different people for years, I have come to the view that the reason for this aversion of some people is really just lazy conservatism rather than a sound game design argument. Because there isn't really a good game design argument against using globes. Let's face it: flat maps are a relict of tabletop wargaming. And in tabletop wargames, they have their obvious advantages. You can lay out a flat map on a table, and you can put unit figures on it and move them around. This would not be easily possible with an actual, physical globe on a table. In a PC game, however, there are no such practical problems. You can use globes, you can make an interface that makes them easy and intuitive to use, and the advantages they offer over flat maps in terms of accuracy are enormous.

And look at this. Wouldn't something like this be beautiful? Image courtesy of a program called Geodesic globe WIP:



4. Navigable rivers. They really are a must. Please!
 
Yeah... that Geodesic globe is awesome! I'd be convinced fully to utilize hexes if it allowed us this kind of global mapping!

Also... been further thinking on this. It'd be very nice if we could zoom into greater detail. Both hexes and squares could do this. I can go into the concept more later but you may be able to get my drift from just this alone.
 
I'd prefer to use OGRE with it's C# wrappter MOGRE for our render base. It is IMO the most modern and actively developed open source rendering engine, and using it would give a powerful platform and save loads of time all at once.
 
@ Koshling: Good luck with your project! I read through your blog posts so far and find it very intriguing.

I'm really a map fetishist at heart. I suppose anyone who is dedicated / crazy / stupid enough to sink months of his spare time into making something like the Gigantic Accurate Earth Map has to be a map fetishist! So, while everyone is throwing around ideas, I would like to add a few thoughts on that:

1. Huge map sizes: Koshling, I believe you are a fan of gargantuan maps yourself, right? In other threads, I saw you writing about how to make 1000 x 1000 tile maps work in Civ IV using viewports or multimaps-and-theaters or whatever. So I assume that one of the features of your project will be to support huge maps like that? If so, that would be great!

2. Hexes vs. squares: When it comes to the debate about squares vs. hexes, I as a mapmaker am in the hex camp. Actually, the introduction of hexes is pretty much the only thing I really liked about Civ V. While hexes are somewhat more complicated to use (not just for programmers, but also for mapmakers), I think the advantages they offer over squares more than make up for that. Not only can movement be modelled better, you also get the ability to put more detail into coastlines and rivers.

3. Globes vs. flat maps: It's impossible to represent the Earth's surface on a flat, cylindrical map without distorting some of its properties. Every cylindrical map distorts area, or landmass shape, or distance, or direction, or all of the above. As a mapmaker, I am pained by having to make these compromises. I am waiting for a Civilization-style game that finally uses a globe!

I know there are players out there who dislike globes, but after discussing the matter with all kinds of different people for years, I have come to the view that the reason for this aversion of some people is really just lazy conservatism rather than a sound game design argument. Because there isn't really a good game design argument against using globes. Let's face it: flat maps are a relict of tabletop wargaming. And in tabletop wargames, they have their obvious advantages. You can lay out a flat map on a table, and you can put unit figures on it and move them around. This would not be easily possible with an actual, physical globe on a table. In a PC game, however, there are no such practical problems. You can use globes, you can make an interface that makes them easy and intuitive to use, and the advantages they offer over flat maps in terms of accuracy are enormous.

And look at this. Wouldn't something like this be beautiful? Image courtesy of a program called Geodesic globe WIP:



4. Navigable rivers. They really are a must. Please!

I hadn't actually considered a natively spherical map, as opposed to a projection onto a plane. The downside of course, is that you cannot zoom out more than a certain amount (ultimate limit being a hemisphere, but obviously distortions in the rendering start well before that). However, since local regions (assuming large map) are essentially flat (so little render distortion) it's certainly an intriguing idea.

Rest assured that VERY large maps are definitely something I want to support!
 
I hadn't actually considered a natively spherical map, as opposed to a projection onto a plane. The downside of course, is that you cannot zoom out more than a certain amount (ultimate limit being a hemisphere, but obviously distortions in the rendering start well before that). However, since local regions (assuming large map) are essentially flat (so little render distortion) it's certainly an intriguing idea.

Rest assured that VERY large maps are definitely something I want to support!
Laskaris makes a good point with considering globes.
I wonder what tiling restrictions are there if you use globes. Might need both pentagons and hexagons or arbitrary tiling.

An example of using globes:
http://freeciv.wikia.com/wiki/Buckyball
 
Laskaris makes a good point with considering globes.
I wonder what tiling restrictions are there if you use globes. Might need both pentagons and hexagons or arbitrary tiling.

An example of using globes:
http://freeciv.wikia.com/wiki/Buckyball

Has anyone else thought about what we are going to do for graphics (both assets and the engine)? Or is that the next blog post? Sorry if I'm jumping ahead, I'm excited about this project.
 
Laskaris makes a good point with considering globes.
I wonder what tiling restrictions are there if you use globes. Might need both pentagons and hexagons or arbitrary tiling.

An example of using globes:
http://freeciv.wikia.com/wiki/Buckyball
Hexes can always form, scalably, into a globe shape without the need for any 'fill-in's provided that the math is completely accurate and you have the correct increment of hexes that will all piece together correctly.
 
Hexes are very flexible, but to me they limit movement too much. I've have played several board and video games with them, but the movement seems awkward and unnatural in certain directions. Maybe there is way to benefit from both worlds?
 
I hadn't actually considered a natively spherical map, as opposed to a projection onto a plane. The downside of course, is that you cannot zoom out more than a certain amount (ultimate limit being a hemisphere, but obviously distortions in the rendering start well before that). However, since local regions (assuming large map) are essentially flat (so little render distortion) it's certainly an intriguing idea.

The main game design argument people use against globes is that: "But you can't see the whole map at once!" This is actually a game design argument (rather than just lazy conservatism), but I don't think it is a very good one, because the problem pales in comparison to the advantages a globe offers, and it's a solveable problem, too.

For most of their time in the game, players will not zoom out very far, anyway. In order to do the turn-to-turn tasks that you usually perform in Civ, like moving units or clicking cities, you will be at a subcontinental level or even lower. It doesn't make sense to go farther out. Now, for those cases where you really want a total view of the map, like comparing the size of your empire to the others, a flat mini-map that you can call up separately could be used. That adds a bit of work, yes, but I think it's hardly the biggest challenge of a game of this scope.

In terms of user friendliness, globes are no more difficult to use and get used to than flat maps, really. There are various geography programs that use them, and it doesn't take long for people to learn how to "turn" the globe with their mouse and move to different places on it. My own experience is that you quickly get used to doing it intuitively and end up moving just as fast from A to B as you would on a flat world map.

Now, the advantages to modelling really are significant. In a Civ-style game, cities and the map tiles they occupy are important. In other words, area is important. A globe has an accurate representation of area. My Gigantic Accurate Earth Map does, too, because it uses a cylindrical equal-area projection. But the tradeoff of my flat map is that it is forced to distort all the distances. Units use just as many tiles to move around the world at the equator as they do moving around the world at the polar circle, even though the equator is 40,000 km long and the polar circle is 16,000 km long. For everything concerning unit movement and movement time, like warfare or exploration, that really isn't very good! A globe, on the other hand, has accurate representation of distance in addition to accurate representation of area.

And accurate representation of direction: you can fly your modern bombers and ICBMs over the pole, taking that shorter route to launch an attack on your opponent on the other side of the globe. Just like the US and the Soviet Union would have done if the Cold War had ever gotten hot. That is what all those airbases and listening posts in Greenland and northern Siberia were for! But all of that is completely lost on a flat tile map, where the far north and south are the "edge" and nobody ever tends to do anything there.

Anyway, you get the idea - I'm a fan of globes! I'd be very happy of one was considered for this project. If they turn out to be unfeasible for some technical reason, or nobody else but me wants them, fine. But I'd love for them to be at least seriously considered.

Rest assured that VERY large maps are definitely something I want to support!

Great, that's what I wanted to hear!
 
Hexes are very flexible, but to me they limit movement too much. I've have played several board and video games with them, but the movement seems awkward and unnatural in certain directions. Maybe there is way to benefit from both worlds?

I don't mean to dismiss your criticism of hexes - I'm trying to understand it. But I am always a little perplexed and wary of arguments along the lines of: "The movement seems awkward and unnatural with hexes." What exactly does that mean, the movement is "awkward" and "unnatural"?

I've made the experience that, often, these arguments about hexes or squares or whatever eventually, simply come down to: "That is what I'm used to, and I don't like anything else!" I'm not saying that this is the case with you. I'm just saying that I've made the experience with quite a few people in the past.

Would you care to elaborate on what you find awkward and unnatural about movement on a hex map?
 
When moving horizontally or vertically, you may follow a zig-zag path depending on orientation.
In some games it breaks the continuity of game play with the tiles being offset and not visually directly next to each other.

I do not deny it's superiority in some situations, I like a game with more visual organization, and if you use squares the unit placement and terrain placement look more naturally lined up.
Squares can provide 9 directions if you include diagonal. (think of the 9 key if you have one on your keyboard). Not seeing a lot of hex monitors or maps shaped like hexes in the real world. Like I said, I have played a good number of hex based board and video games, and I struggle with the back and forth pathing.
When it comes to RL (Real Life) not much of anything is lined up in hexes.
Not in the business world, not in the science world, not in programming; not in spreadsheets or gps screens or much of anything else but some strategy games.
I still don't see how 6 directions trumps 9.
They throw off the natural North, South, East, West directions.
Programmers do not use hexes in making tables, they use squares.
Most things are made with squares.

I do understand most of the globe and map arguments. Especially when simulating realistic maps. But for gameplay purposes, just like we look at a map of America or our home town. N,S,E,W, + the other directions NE, NW, etc. make sense. Dropping one of the cardinal directions to use hexes does not make sense.
 
When moving horizontally or vertically, you may follow a zig-zag path depending on orientation.
In some games it breaks the continuity of game play with the tiles being offset and not visually directly next to each other.

I do not deny it's superiority in some situations, I like a game with more visual organization, and if you use squares the unit placement and terrain placement look more naturally lined up.
Squares can provide 9 directions if you include diagonal. (think of the 9 key if you have one on your keyboard). Not seeing a lot of hex monitors or maps shaped like hexes in the real world. Like I said, I have played a good number of hex based board and video games, and I struggle with the back and forth pathing.
When it comes to RL (Real Life) not much of anything is lined up in hexes.
Not in the business world, not in the science world, not in programming; not in spreadsheets or gps screens or much of anything else but some strategy games.
I still don't see how 6 directions trumps 9.
They throw off the natural North, South, East, West directions.
Programmers do not use hexes in making tables, they use squares.
Most things are made with squares.

I do understand most of the globe and map arguments. Especially when simulating realistic maps. But for gameplay purposes, just like we look at a map of America or our home town. N,S,E,W, + the other directions NE, NW, etc. make sense. Dropping one of the cardinal directions to use hexes does not make sense.

Thanks, I understand your argument better now.

I would argue, however, that both squares and hexes are an abstraction of the real world. In the real world, we can theoretically move in an infinite number of directions from any one point. Hexes are an abstraction that restricts this to 6. Squares restrict it to 8 (not 9!).

Are squares better simply because 8 is bigger than 6? I'm not sure I agree with that argument. I see the point that you can't move in a straight line on a hex map, and I understand why some players might dislike that. But I don't see that as a huge drawback myself. You might be able to move in a straight line on a square tile map, but the map is still an abstraction of the real world, just a different one.

I still think it largely comes down to what one is used to doing, i.e. habit and familiarity. I would argue that a person playing hex maps for a long time will find them just as intuitive and natural to use as a person who plays maps with squares for a long time will find maps with squares. Actually, I've seen wargamers complain about maps with squares as "awkward" just like you complain about hex maps.

In wargames, hex maps have become the standard because of their obvious superiority when it comes to distance modelling - the center of each hex is the same distance from the centers of all adjacent hexes. That, and you can form globes with hexes, which offers huge advantages in terms of realistic global maps, obviously. To me, these advantages just seem a lot more concrete and tangible than the "It feels more natural!" or "I don't like not having all cardinal directions!" you cite for a square map. Again, I don't mean to trivialize your criticism, I'm just trying to illustrate where I'm coming from.

Actually, globes with hexes on them are used in the field of science. I've seen climate models, weather models and the like and the like that use them.
 
I could not avoid this discussion after seeing Koshlings ideas and posts on maps. It appears that Laskaris has already beat me to some of the punch in proposing a spherical map. I will make it clear that like Laskaris, I am a map fetishist. I also am in the "Hex" camp with a slight twist.

Keep in mind that the GeoRealism project is actually a spinoff of an earlier project to create a world "evolution" simulator that I started several years ago and have temporarily abandoned. It is one of my life long goals. If we decide to go the hex tile route, I think my project has a LOT to offer in the way of a start on a usable system (though currently it has its challenges to be overcome). It can be used as a primary or an underlying grid. I can release the source code for that project if it is desired and I am going to spend the next couple posts presenting it.
 
I don't mean to hijack the thread with my globe fetishism, so I'm just going to post some additional pictures and info that might be interesting for people who want to think about the idea, and then I'll shut up about it.

Hexes can always form, scalably, into a globe shape without the need for any 'fill-in's provided that the math is completely accurate and you have the correct increment of hexes that will all piece together correctly.

I don't think that is correct. I believe that there are always 12 pentagons in a global hex grid. The interesting thing is that there are always 12 pentagons, even when you have hundreds of thousands or millions of hexes.

The underlying shape of such a global hex map is a 20-sided regular polygon, which is called an icosahedron. Role-playing geeks like me will recognise is as the good old d20:



Now, you can subdivide the 20 triangular sides of this icosahedron into as many hexes as you like. The 12 apexes, or points, of the icosahedron will always remain as pentagons. Here is an example of what it looks like:



Some different "hex resolutions" for Earth maps:



Some charts for such a hex map of an Earth-sized planet, depending on the number of tiles:



If you want to go into more depth, you can also watch this presentation.
 
While beginning my "GeoBuilder" project that I mentioned in the previous post I did some research on the best grid system to represent the earth's surface. It was during this research that I came across the "ISEA" grid system. While it has some quirks that will need to be dealt with, I have found it to be the best representation that can be used to subdivide a sphere into roughly equal sized smaller tiles. It also lends itself quite nicely to Koshling's ideas about layering.

ISEA stands for Icosahedron Equal Area with "grid system" following the acronym. It is the same system that soccer balls are based on (though manufacturers of soccer balls aren't concerned that the tiles aren't necessarily the same size).

This pdf file is the research paper that sold me on the idea. I have since had trouble locating it on the internet since it has been around for a while. Luckily I downloaded a copy for myself and have uploaded for those interested. As some of you have suggested, it is not a new idea. This is the grid system I used for my project.

NOTE: The pictures in this and my next few posts are screen captures of my "evolution" simulator during the "cooling" phase of very Early earth before the crust had formed. Brighter spots are spots that are naturally hotter than darker spots. Sorry for the lack of variation in color but the project has only progressed to the point where the plates actually start formation... before there is much color on the surface (since oceans don't yet exist).

The grid is based on the basic twenty sided icosahedron (think 20 sided die) which is made of 20 equally sized triangles forming pentagons as shown below.



When these pentagons are further divided, the rest of the divisions become hexagons. Only the 12 critical points on the icosahedron remain a different shape.

The project implements the ability to show the grid at different resolutions up to the maximum number as set by the "data resolution." The data resolution is the number of times the original edges of the 20 sides are divided in half (for data purposes)*. The render resolution is the number of divisions shown. Here is the same grid captured at the increasing resolutions of 2, 4, and 6. (Technically the picture above is a slightly different grid because I had to restart the program in order to get the angle I wanted).

Grid resolution of 2 divisions:


Grid resolution of 4 divisions


Grid resolution of 6 divisions (If anyone is curious... those larger light splotches are surfaced hot spots...)


*The way the edges are subdivided do not have to be done in any specific way. They could be divided into thirds, fifths, sevenths and so on (using prime numbers since non-prime numbers are combinations of prime divisions). I chose powers of two because they were much more simple to implement (though even this way was rather complex to figure out how to put this all together!).
 

Attachments

  • Icosah.pdf
    222.1 KB · Views: 184
  • ISEA0.PNG
    ISEA0.PNG
    82.2 KB · Views: 604
  • ISEA2.PNG
    ISEA2.PNG
    290.4 KB · Views: 528
  • ISEA4.PNG
    ISEA4.PNG
    404.1 KB · Views: 556
  • ISEA6.PNG
    ISEA6.PNG
    442.9 KB · Views: 552
Top Bottom