
Procedural world generation: C++11 library with highly customizable API - eiskalt
https://github.com/reinterpretcat/utymap
======
SwellJoe
I predict that with the success of Pokemon Go, there's going to be a gazillion
"real world" and augmented reality games and apps over the next couple of
years. Pokemon Go is the very low-hanging fruit; it's a map with artificial
points of interest laid on top, with a snapshot of the real thing. So, a
"welcome to Springfield" sign becomes a Pokestop, but the game doesn't really
know what is there, it just has a picture of it and knowledge that there's
some kind of landmark there. This is cool in and of itself, but if the game
actually had more awareness of the world, it'd be even cooler to have real
buildings and terrain represented in-game.

Pokemon Go is kinda the Pong (or maybe Donkey Kong) of augmented reality
gaming. It's so novel that people forgive that it's extremely limited (and
there's a regular non-augmented reality game underneath to keep it interesting
and make it more interesting...it's kinda like the old board games that
shipped with a VHS tape of scenes or whatever or the video games that came
with a bunch of cool ancillary materials like operations manuals and such).

In short: I think tools like this are mandatory for augmented reality to
become a really good medium for telling stories. It's extremely basic, still,
but given the improvements in public data sets (I remember reading that
there's POI data sets coming along now, including information about the size
and shapes of buildings and such, too) and frameworks for turning it into a
game world, I think it'll get better fast.

If someone wanted to be at the forefront of some area of the future of gaming,
I think this would be one of those areas. It's not getting as much attention
as VR, but I think it's got every bit as much potential to change the world
and to change gaming.

~~~
RyanZAG
I don't think this is true. There's nothing new or interesting about Pokemon
Go that we haven't had for years. The only new thing is the branding.

The lesson is more that to get mass appeal, it's the story that counts, not
the technology. Technology is just a method to connect the story to people.
Pokemon Go is popular because it is 'real world Pokemon' and lets you catch
'real world Pokemon'. Without that story, the game simply doesn't work. It's
the user filling in the lack of an actual game with their own imagination.

~~~
Volt
Which part are you disagreeing with? The fact that Pokémon Go is not that
interesting technically is exactly that person's point. And yes, I too suspect
that there will be hundreds of me-too AR games now that Pokémon is such a
phenomenon.

------
tmsbrg
Looks very useful. But it's not really procedural world generation, right? I'd
call this geographical data visualisation instead. Generation would be
creating new worlds with just a seed and an RNG. Was kind of hoping to see
that because that was actually an idea I had for my graduation project. I
eventually killed that idea because I just couldn't get a good design of how
such a library would work (that would be useful in real games). It's a funny
coincidence that I also wanted to make the library with a C++ core and a Unity
interface.

~~~
eiskalt
Yes, this library does not generate random shaped buildings or terrain
regions. Instead, it generates them from real geographical data and allows you
specify some noise parameters, e.g. :

canvas|z16 {

    
    
        grid-cell-size: 5%; /* affects triangulation*/
    
        max-area: 0.05%; /* affects triangulation refinement */
    
        color-noise-freq: 100000; /* color of each vertex will use this noise value */
    
        ele-noise-freq: 100000; /* height of each vertex will use this noise value*/
    
        color: gradient(#dcdcdc 0%, #c0c0c0 10%, #a9a9a9 50%, #808080); /* color gradient*/
    

}

Also, some objects can be randomly generated for specific place, e.g. trees in
forest. I found this idea where you have real geodata as input for
randomization more interesting than having yet another planet generator with
manual setting of various parameters.

------
AndrewKemendo
How is it generating the 3D Building objects (like the cathedral)? Does it
just pull from a object library tied to that geo like google maps?

~~~
eiskalt
No, all 3D buildings data is provided by OpenStreetMap. This wiki page
describes the model:

[http://wiki.openstreetmap.org/wiki/Simple_3D_buildings](http://wiki.openstreetmap.org/wiki/Simple_3D_buildings)

In short, all complex buildings are defined via multiple simple polygons with
height, height under ground, colors, etc.

For example, you can check how Saint Basils Cathedral is defined (take a look
at Members list):

[https://openstreetmap.org/relation/3224486](https://openstreetmap.org/relation/3224486)

------
sownkun
slick!

