Storytelling And Content Generation

Worldbuilding is a fundamental aspect of storytelling. It’s also huge in scope as it includes a large amount of different subjects all of which are related to a greater or lesser degree. If you also incorporate 3D modeling and animation into your worldbuilding efforts, the amount of time required will grow exponentially.

Isometric Living Room
Isometric Living Room – 3D Modeling As Part of Worldbuilding

This is a well-know problem in the gaming industry and several techniques are used to solve it. Probably, the most well known way to be able to create and manage large story and game worlds is procedural content generation, a method of creating content-related data using algorithms. Currently, one of the most striking examples of a game that is extensively using procedural content generation is No Man’s Sky which is, in its own words, a science-fiction game set in an infinite procedurally generated galaxay.

Although, I am not yet using procedural content generation techniques per se, I am using something that comes close enough. That is, I am using real-world data from OpenStreetMap to help generate some of the initial 3D environments that make up the different story worlds. The procedure to accomplish this is straightforward and described below. It’s important to note that the Java SDK, Blender application, and Blend4Web SDK or Blender add-on need to be installed and appropriately configured before proceeding:

  1. Acquire the data.
    1. Go to the OpenStreetMap website and navigate to your area of choice.
    2. Click on the Export button to download the OpenStreetMap data (confined to the bounding box) in OSM format.
  2. Convert the OpenStreetMap data into OBJ format for subsequent importing into Blender.
    1. Download the OSM2World conversion utility from the OSM2World website.
    2. Run the conversion script from the command line with the required parameters to generate the .obj file; for example: “./osm2world.sh -i map.osm -o map.obj” (without the quotes).
  3. Import the .obj file (generated from the previous step) into Blender by selecting the File > Import > Wavefront (.obj) menu item.
  4. Optional: Export the scene to HTML for subsequent viewing in the browser by selecting the File > Export > Blend4Web (.html) menu item. To export the Blender scene to HTML format you need to have previously installed and enabled the Blend4Web add-on.

An example (with the tip of Manhattan) is provided below. The map data weighs in at approximately 16 MB so, depending on your internet connection, could take a moment or two to load.


Interactive 3D Scene With OpenStreetMap Data – The Tip Of Manhattan

Using procedural content generation or other techniques based on readily available (public) data can save you time when building your own game or story worlds. What’s more, content generation techniques can also provide you with the means to add additional breadth or depth, or both to your story world. Finally, the amount of data, tools, and APIs applicable within the context of storytelling is growing tremendously.

If you have any questions or feedback with regards to the above process, just get in touch with me.