Technical Information

Charbitat uses a full modification of Unreal Tournament 2004 for the rendering and main gameplay. It changed the Unreal system to provide the aforementioned elemental characteristics, to modify NPC AI, generate the space, and trace player behavior. A Java program makes up the backend, handling the logic regarding the content in the tiles. The Unreal front-end sends a message when the player approaches a tile border, enters into a new tile, or accomplishes some significant goal. When these messages are received, the Java application will respond accordingly, either by sending new information to Unreal, or updating its knowledge of the player state.

To provide a scalable and continuous game world, the environment is split into individual tiles, each of which is about 500 virtual meters across. Instead of one central seed value, Charbitat applies countless individual ones that form smaller locations, which add up to one seamless 3D world. Based on these values, the Java backend generates individual heightmaps for each section. This terrain is determined using noise functions and filters. The local terrain may then be mixed with other filters determined by global landscape features, such as rivers, lakes, cliffs, and coastlines. These features are selected based on what is logically permissible for that tile. For example, if there is coastline on the bordering edge of a previous tile, then the coastline must continue onto the current tile as well. Each feature is combined into groups in order to make sense in a game space. They consist of objects like RiverEntrance(Direction), RiverExit(Direction), or Coast(Corner). Each one has a corresponding set of constraints determining under what circumstances the feature may be placed. Configurations will contain a number of these, to form configurations such as RiverCurve(Direction entrance, Direction exit). In that way, we form the space through continuous and highly legible structural features. Charbitat is implemented as an Unreal Tournament 2004 total conversion. The world is dynamically generated as a height map while the player explores using a java backend. All terrain is procedurally generated and filled with pre-constructed 3d objects modelled in Maya.

Find more information in the publication section.

team intern to swiki