Mercator

Introduction

Mercator is primarily aimed at terrain for multiplayer online games and forms one of the WorldForge core libraries. It is intended to be used as a terrain library on the client, while a subset of features are useful on the server.

Mercator is designed in such a way that individual tiles can be generated on-the-fly from a very small source data set. Each tile uses a fast deterministic random number generation to ensure that identical results are produced "anytime, anywhere". This enables transmission of terrain across low bandwidth links as part of the standard data stream, or server side collision detection with the same terrain that the player sees.

The use of tiles means that there is inherently a large degree of gross control of the shape of the terrain. Finer control is implemented by allowing geometric modifications - for example, a polygonal area might be flattened, or a crater could be applied.

Download

The latest development version of Mercator is 0.2.6. The API in the 0.2 series is not stable.
Source Code tar.gz
Source Code tar.bz2
Source RPM
Fedora Core 9 RPM
Fedora Core 9 devel RPM

Dependencies

Mercator depends on WFMath.

Height generation

Height Modifications

Shading

Atlas Integration

The aim is to pass all data between server and client using atlas. Cyphesis and Stage provide a parameter to the world entity that defines the global terrain (this is a bit of a hack). Shading and Modifiers are only implemented on the client right now.

TODO:
properly define atlas messages between client and server for

Collision

basic intersection/collision functions are implemented for

Current Limitations

Implementations

As of September 2003, Mercator is used in:

Equatorallows editing of base points
Apogeeimplements shaders
Stage
Cyphesis

Screenshots

(bear in mind that some of these shots may have terrain with somewhat unrealistic parameters for more interesting demos)

Equator showing part of a terrain
snapshot8
Apogee showing shaders in action
apogee_terrain_shaders
Equator showing some modifiers applied
mercatorMesa