Red Eclipse

Red Eclipse is a multi-platform, free, and open source first-person arena shooter that runs on a somewhat modified Cube Engine 2. The game is centered on multiplayer based action, but can also be played offline against bots. The game code is under the permissive Free zlib License, and the game data assets are mainly under the Copyleft License CC-BY-SA-3.0.<ref name=redeclipse_license/>
Technical details
Red Eclipse utilizes the Cube 2 engine, which uses a 6-directional heightfield (or octree) world model. An octree in Red Eclipse is a cube that can be split into eight smaller cubes that can then be done the same to. This allows for complex level geometry and easier editing which can be accomplished through the game's built in editor.
Rendering engine
The original Cube engine's rendering engine assumed that overdraw (where polygons that do not appear in the final scene are occluded via the z-buffer) was more processor-intensive than sending new streams of triangles to the graphics processing every frame, which limited its performance on more modern hardware where memory bandwidth is a greater limiting factor. Instead, Red Eclipse uses the rendering engine in Cube 2, which is designed around modern graphics processing units, which perform best with huge batches of geometry already stored in video memory. Lighting is precomputed into lightmaps—image files that correspond to geometry as textures—for efficient batching, with an additional stored directional component, that allows for efficient shader-based lighting effects.
Map editor
Red Eclipse retains the Cube 2 engine's built-in map editor,<ref name=geeky/> in which the player can to fly around the game world manipulating and deforming volumes referred to as cubes. This, as well as weapon and other entity placement is achieved in real-time, and can be done cooperatively online with other players as well. AI "waypoints" can also be generated dynamically as the map is played. Lighting is accomplished through precomputed lightmaps. Each cube-shaped node in the octree represents a renderable volume, simply referred to as a cube. Each edge of this cube can be lengthened or shortened to deform the cube into a variety of other shapes. Corners of cubes can also be "pushed" or "pulled" to create crude curves.
The what you see is what you get realtime editing ability enables level designers to add a plethora of detail to maps, while reducing the time spent on actual creation. This is in contrast to the traditional modern polygon soup 3D engines which take a model generated as an essentially random batch of triangles from an external modelling program, and attempt to spatially subdivide the model's triangles after the fact by splitting them to fit into tree structures, such as a BSP tree or even an octree, that require costly pre-processing to render.
 
< Prev   Next >