Worldbuilder Change Log

  1. Version 0.2.2, released 2015/10/05

    Application Changes

    • Added a system to persist configuration settings.
      • Existing options, such as logging and compiler settings, are now persisted.
      • Recently opened generators are remembered, and the most recent one can be optionally set to open on startup.
      • Window state is remembered and restored on startup.
      • Export settings are remembered.
    • Improved the export system.
      • The new Export menu categorized individual data elements that can be exported independently of other data.
      • Exportable elements include viewports, textures, cube maps, and triangle lists.
      • Viewport supersampling levels can be chosen.
      • Recently used viewport output sizes are remembered and easily selectable.
      • Texture and cube map data with floating point numeric elements can have their data ranges specified when mapping to the red, green, blue, and alpha channels of the output image.
      • Multiple image file formats are supported: BMP, PNG, JPEG, and TIFF.
      • PNG files can have their compression level chosen, and can optionally be saved as interlaced PNGs.
      • JPEG files can have their compression level chosen, and can optionally be saved as progress JPEGs. An additional step can also be taken to optimize the compression tables.
      • Multiple structured data file formats are supported: JSON, Lua, XML, YAML. This currently only applies to triangle lists.
    • When opening or saving files, the default directory will be based on the specific type of file being saved, and will not simply default to the last directory viewed from anywhere in the application.

    Generation Changes

    • Disruptions to the highly regular hexagonal grid are now supported.
    • The amount of disruption is configurable through the rate and iteration parameters.
    • The shape of the polygons can be weighted toward regular polygons at the expense of inequal area per polygon, toward equal area for all polygons at the expense of increased irregularity, or some balance between these two ends of the spectrum.
    • The minimum and maximum number of sides of polygons can be adjusted, down to 4 as the minimum, and up to 8 as the maximum.
    • Minor improvements to distance field generation.


    • Fixed duplicate polygon generation when one tectonic plate was completely surrounded by a single other tectonic plate, creating a hole in the second tectonic plate.
    • A certain class of memory leaks which persisted until opening a different world generator has been eliminated.
    • Fixed a memory leak when saving an image to a file.
    • The faceFaceIndices array accessible from script modules now correctly stores the indices of neighboring faces for each face in a mesh.
  2. Version 0.2.1, released 2015/08/12


    • Capped certain angle values to a reasonable maximum within the distance field generation algorithm, preventing ugly black streacks showing up in the tectonic plate visualzation layer.
  3. Version 0.2.0, released 2015/08/11

    General Changes

    • Switched to a per-pixel rendering style away from the previous triangle-dominated style.
    • Used Perlin noise to add turbulence and other highly scalable details.
    • Added an optional directional lighting model.
    • Generated distance fields for the tiles and the tectonic plates, and used those distance fields for higher quality rendering of the tile grid and the colored tectonic plates.
    • Removed the multiple viewport tabs in favor of render parameters available on the left side in the parameters panel.
    • All the various visualization layers (biomes, elevation, temperature...) can be freely used with any camera projection type, as well as other render settings such as lighting, grid, tiles, and turbulence.
    • Added an orthographic projection camera type for viewing a globe from an infinite distance using infinite zoom.
    • Switched from basic multisampling to a 16x supersampling method when exporting to an image.
    • Added a Randomize button to random engine seed parameters, to easily generate a new random seed in a single click.
    • General improvements to error detection, reporting, and recovery.
    • Dropped down to GLSL 1.50 shaders.
    • Added this readme file.


    • Fixed a crash when opening a world generator file after having exported an image to any folder other than the root application folder.
    • Fixed memory leaks associated with the handling of arrays of arrays in user scripts.
    • OpenGL errors of types other than just invalid enum are now properly caught and reported.
    • Viewport parameter type is now correctly selectable in the world generator configuration window.

    Script System Changes

    • User scripts can create and render to 2D textures and cube maps.
    • User scripts can create the vertex and fragment shaders used for rendering.
    • User scripts can create vertex buffers and index buffers of varying types.
    • Added Vector2[] and ColorRgba[] types.
    • Q3232.ArcTangent2() was broken but is now working.
    • Provided access to jit.v and jit.dump within user scripts for scripters who wish to investigate output from the LuaJIT compiler, mostly for performance optimization purposes.
  4. Version 0.1.2, released 2015/05/28

    • Improved OpenGL initialization to be more robust and flexible.
    • Enhanced OpenGL-related error detection and reporting.
    • Required OpenGL version reduced from 4.1 to 3.0, and is now explicitly checked instead of resulting in a crash.
    • Save to Image will now use multisampling if that option is available.
    • Lua module suites updated to no longer use UInt32 instances as loop counters, as that turned out to be useless and in rare cases unstable.
  5. Version 0.1.1, released 2015/04/15

    • Added mouse and keyboard controls for controlling the viewport camera.
    • Added ability to export a dump of all raw data to JSON.
    • Made significant improvements to error detection and messaging.
    • Added options for controlling log output to the Lua console.
    • Added options for disabling various Lua compiler settings, for diagnostic purposes.
    • Released memory resources whenever a new world generator is opened or created.
    • Fixed incorrect latitude calculations when projecting a planet onto a flat map.
    • Fixed the Braun stereographic map projection, which had previously included a scripting error and completely failed to work.
    • Miscellaneous minor user interface improvements.
  6. Version 0.1.0, released 2015/03/31

    • Initial release.