JEoGLSg Map Editor Functional Specifications

Introduction

JEoGLSg is a Joint Endeavor of GLScene gurus. This is an open source project. The purpose of this project is to deliver a map editor to the GLScene community.
Initial Developer: Johan Rabie

newIssues/Requirements List 2003-10-02

.lib File Format [pdf, 12Kb] - by Philipp Pammler

Terrain Demo2 (click to enlarge)

Early screenshot of terrain editor (click to enlarge)

Main Page goto top


Basic Functions

  1. Create new map
  2. Save created map
  3. Import map
  4. Export map
  5. Import of map elements
  6. Templates
  7. Copy And Past
  8. Scripts
  9. Plugins

Main Page goto top


Basic Components

  1. Main screen and menu. + movements panel (move, rotate, zoom, select) + terrainmod panel (select verticemodifier, moveupdown, rotate, properties (type the pos per hand))
  2. Terrain structure definition screen
  3. Terrain element definition screen.
  4. Arena structure definition screen
  5. Arena element definition screen
  6. Template edit screen.
  7. Texture package creation and manipulation screen.
  8. Preview (for that pastespecial thing) / PrePlay screen (Philipp)

Main Page goto top


Create New Map

Map Elements

  1. Terrain
  2. Terrain Elements
  3. Arena
  4. Arena Elements
  5. Environment

Terrain Map

This defines the physical structure of the terrain. Mountains, hill, valleys.

Initial structure to be created from a flat surface or loaded from external source such as bitmap or height data source. Height data is editable using GUI (Graphical User Interface).

Initial terrain creation can be formulated from:

  1. Perlinnoise
  2. Random
  3. Predefined functions

Further modifications can be formulated from:

  1. Perlinnoise erosion
  2. Predefined functions

Terrain Map Elements

Terrain elements are resources used to round found off the look and feel of the terrain.

Typical examples are:

  1. Textures
  2. Import and setting of plant life.
  3. Setting of environmental elements (Water, Sky)
  4. Road creation

Textures

Multi texturing techniques are:

  1. Shader(s) - bump/sphere/diffuse mapping
  2. Pjotr's Blend Terrain

Dynamic functions to allow for auto texturing according to height and angle of terrain.For this function, the user must be able to define a texture per height and terrain angle.

Plants

Plant life editor is required to setup templates and plant objects to be imported to terrain projects. Plants can be mesh or texture driven objects.

Water

Water and water effects are not only terrain elements, but also terrain modifiers. For the creation a river modification template must be used. This will modify the terrain as required and also set the water effect. Water can be multi textured and effect driven by scripts.

Typical water features are:

  1. Rivers
  2. Dams
  3. Waterfalls
  4. Ocean
  5. Fountains
  6. Springs.
  7. How water sources (water that emits steam)

Roads

Roads like water are both terrain elements and modifiers.Map editor must have a road construction kit.The roads construction kit will assist the user in creating roads, highways and bridges.Roads can be concrete and dirt roads.

On construction of roads, the surface of the terrain must be adjusted to ensure that roads are on a flat surface. In a case where the roads are to cross over valleys or rivers, bridges must be constructed.

Roads construction kit must also allow for the creation of highway based over passes and tunnels.

Terrain mesh functions

Terrain mesh modification functions must be in place to allow for functions such as smoothening terrain and eroding selected areas of terrain. This will allow for a more natural look of the terrain.

Arena

Arenas are open and closed structures found on maps. Open Arenas allow for movement from and to terrain. Closed structures do not allow such movement and thus is the map.

On placing arena object on a terrain, the terrain surface under the arena has to be modified to ensure flat alignment of the arena. This is especially prudent on terrain surfaces that have irregular angles (not flat).

Arenas can be imported GLS (GLScene) files. These file can either make up the whole arena or as arena elements.

Arenas will be made out of multiple parts. The different parts will be template based and allow for texturing and event hooking.

Arena Elements

Arena elements map out part of the arena. It could assist in the structure or beautification of the arena. Examples of typical Arena elements are:

  1. Ladders
  2. Lights
  3. Pipes
  4. Boxes
  5. Even vehicles

Environment

The environment in this sense has to do with atmosphere and environmental entities such as:

  1. Smoke
  2. Fire
  3. Water
  4. Fog
  5. Lighting
  6. Sky tomb
  7. Weather (daytiming, weather effects) (Philipp)
  8. background music/sound, ambience sounds (forest, snowy world, jungle, desert, dungeons, ...) (Philipp)

Main Page goto top


Save Map

Map and supporting map files to be saved as one file onto disk. This is to allow easy and painless distribution of maps. Map file structure to be used to save as, still to be decided on.

There will be one main fileformat, all information, arenas, mapelements, links, tags, comments, scripts, will be stored in that file. (when loading this file the editor can check for resources/links outside and load them) (Philipp)

Main Page goto top


Import Map

Allow for importing of existing external maps to be modified or converted.An example of such a map type are:

  1. map (only arenas/map elements can be imported by this format)
  2. surfergrid
  3. htf
  4. bmp
  5. raw

Main Page goto top


Export Map

Exporting the map created using this tool to a format that can be used in other applications. An example would be to export the map to .map file.

Terrains can be exported as .stl, .ply, .tin or .glsm (Philipp)

Main Page goto top


Import of Map Elements

On creating maps, some external sources might be required as map elements. This might be used for the terrain or arena. A list of supported formats must be formatted.

Main Page goto top


Templates

All creation tools in this application must be template based. This applies to terrain, arena and support files.

The aim is to provide the user with creation and modification tools to assist and quick and easy creation of the map and map objects.

User must be able to import templates from other people and export templates to be used by others. You must be able to create templates from scratch or change an existing template and save it as a new type of template.

Templates can be viewed in a preview window before importing (Philipp)

An example of this is:

For the creation of walls for an arena, there will be a wall template. A wall template will consist of six (6) sides. This will do in most cases, but not all. Should we require add a door to a wall, the wall template can be modified so that we can create a new wall object that has a door.

Main Page goto top


Copy And Paste

Allow for copy and past of objects. This applies to terrain and arena objects. Special past function to allow for pre-manipulation of object before placing. In a special past case, a preview screen is required to assist and preview modifications.

Main Page goto top


Scripts

Map editor to have a script editor. Scripts will be saved in map file. Typical script examples are:

  1. Environment event driven scripts.
  2. An example of this will be to do multi texture scripting for rivers and also to control waves on water movement.
  3. Opening doors.
  4. Breaking of class.

Script procedures can be called from the rendering application. In examples 2. and 3 the application will call these procedures on object collision. In this case the procedures will have parameters such as the object in question and the direction. The script will then execute the required action.

Scripts will run on a thread as not to disrupt the normal flow of events of the calling application.

Main Page goto top


Plugins

To allow for easy extension of functionality, the map editor will support plugins. Plugins must be defined for the relevant module of the map editor. Plugins can exist as a dll or as a script (Philipp)

Example

Should I write a plugin that will assist in the modification of terrain by eroding the surface, this plugin must be registered for the terrain modification module.

A lot of the functions mentioned above can be provided to the application by means of plugin support. By keeping specialized functionality plugin based, it keeps the main application simple. It also provides a simple mechanism for distributing bug fixes as one does not have to download the entire application, but only the relevant (fixed) plugin.

Main Page goto top