C2 is a small 3D engine prototype based on the Lightweight Java Game Library (LWJGL).

Java provides a comfortable environment to experiment with OpenGL and real-time computer graphics.

Features

  • Quake 3 Binary Space Partitioning (BSP) map loader
  • MD3 (Quake 3 animated mesh) model loader
  • MD2 (Quake 2 vertex-animated mesh) model support
  • Entity management and scene graph
  • Collision detection with bounding spheres, OBB (Oriented Bounding Box) and AABB (Axis-Aligned Bounding Box)
  • Free-flight and 3rd person camera
  • Curved surfaces
  • Image format support: PNG, JPG, TGA, DDS (DirectDraw Surface – GPU-compressed textures)
  • Interactive scripting console

Timeline

  • Jan 2005: Added scripting support, interactive console
  • Dec 2004: Added Quake 3 map loader, MD3 model loader

Console

Press ^ on the keyboard to open the console.

Command Description
source scriptname Execute Java file in shell
level filename Load Quake 3 map file
create torus/btorus/skybox Create new instance of type
model lara/ammo/gun/railgun/armor Load predefined model
model *.md2 / *.md3 / *.dd Load 3D model by filename for different formats
clone %1 Clone object from graveyard, e.g. clone gun
bounding 0/1 Toggle bounding sphere display
boundingbox 0/1 Toggle oriented bounding box (OBB) display
boundingaabb 0/1 Toggle axis-aligned bounding box (AABB) display
debug 0/1 Toggle debug output
sync 0/1 Toggle vsync
fullscreen Switch to fullscreen mode
windowmode Switch to window mode
node-list List all objects in scene tree
node-show %1 Print information of named node
texture-list List texture info
material-list List material info
remove %1 Remove named object from scene
freeflightcam Switch to free-flight camera mode
cameracontrol Change camera control
change_texturefilter [anis/mipmap/normal] Change texture filtering
exit Exit to desktop
help Show help

Demo

Java Web Start (JNLP – a now-deprecated technology that allowed launching Java applications directly from the browser): C2 Engine Demo