念一叨

Globe Miniature

This is the final project of the course GSND 6460: Generative Game Design taught by Professor Chris Martens.

I & my 2 teammates (who later became my roommates in the following semester) all like those culture/battle simulation games. You know, Civilization kind of stuffs. The game sets up a grid-based map for you, and you play the board game digitally (lol) to simulate the development and expansion of your culture. But we are not quite satisfied with the fact that all these games are based on planar maps, which is OFF compared to the earth, which we actually live on. So for this project, we wanted to make an authentic culture similator that runs on a spherical planet. Everything is generated procedurally—the planet, the grid, the terrains, the cultures, their development—to fit into the topic of this class.

... that was the initial plan, and the project name was "Culture Miniature". After finishing the planet generation, we found out that we didn't have more time to do the culture part, so we changed the project name to "Globe Miniature" and called it a day. :))

Dev progress

I first came up with a process of generating an isotropic ico-sphere (in contrast to a UV sphere, which is anisotropic) of arbitrary level starting from an icosahedron by repeating subdiving it and taking its dualization for the final step.

A hand-written bump mapping shader with a debug heightmap were applied to create the bumpy effect.

Why hand-written? Because I found that it would be easier to write the coloring shaders required in the later steps with raw HLSL instead of those tedious shader graphs provided in the SRPs. This would require us to use the legacy render pipeline (otherwise it would be super complex to write HLSL shaders), which does not provide supports for bump mapping.

It was then combined with an orbital camera that behaves like what you have on the interactive screen on a plane:

Layered/fractal surface Laplacians were calculated on-the-fly to emphasize the surface bumps (a.k.a. "smooth shading"): As can be seen from the video, high-frequency Laplacians really help in showing the subtle bumps.

Finally, atitude- and latitude- related coloring was applied. You could see that we tried to make the color unified within individual hexagonal cells to prepare for the later cultural stage, but as that part was cancelled, so was this feature.