Many Changes

I have decided to change the direction of my world generation project slightly. I am quite happy with most of the results I have created so far. I would like to expand these to work mapped onto a sphere instead of a plane. There are a few reasons for doing this:
  • I prefer the use of hexagons to squares for any game I eventually build on top of it.
  • The hexagons are superior for simulation of many things like wind or tectonic plates.
  • Haven't seen many other projects doing it.
  • Seems like an interesting challenge.
The first step of this process is to create the base geometry for the world and its cells. I based my algorithms for this off of material collected from this link about Discrete Global Grids. To summarize I started with an Icosahedron and implemented 2 different methods to subdivide it. The next step is to subdivide into a Truncated Icosahedron. From there I can continue to subdivide using either method until I reach the desired resolution. Subdivision Samples:
The next step is to develop a decent camera control for navigating and zooming on the map. After this is complete I will begin to port my code that I have developed in Java to C++ and use the new world structure. For now I am just coloring faces to denote different information. Eventually I plan to make it more interesting visually but that is a long ways off. The other change I have made is switching languages from Java to C++. Currently I am using Boost and SFML with it. Some of my reasons for making this change are:
  • Make my program more accessible. Many of the results as seen with the Tiled maps are difficult to output to an easy to view format because of the scale of the data. This way I can just post executables and data files that are more suited to viewing my results.
  • People won't need to download a JRE.
  • Access to Boost library.
  • More flexibility when tweaking for performance.
  • I do plenty of Java development at work, this keeps things interesting and sharpens my skills.

3 Comments

  1. I was waiting for updates from you 🙂
    I had little time to play with my world generator but I would like to use Clojure for some small parts,
    let’s see how it works,
    Keep posting!

  2. J. Prevost says:

    I would be interested in the code you’re using to do the cell subdivision. I’ve been thinking about doing something similar after seeing your work, and it seems to me that the exact same subdivision can be accomplished by instead using a triangular mesh and then using the points as locations for your hexagonal (and very rare pentagonal) faces. This has the potential to dramatically simplify the process of computing cells at a given level.

    Or does this approach have some drawback I’m not thinking of yet?

  3. Sammual says:

    Happy to see the move to the Hex grid, not so much on the move to a Globe. Most game take place on a plain rather then a sphere because you have a much larger (useful) field of view on the plain.

Leave a Reply