Skip to content
Cross platform game engine written in Object Pascal.
Pascal Objective-C Java C# PHP C++ Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Build Renderables queue now use Radix Sort to speed up ordering Sep 22, 2015
Docs First UI refactor commit Jun 19, 2015
Engine License update Feb 12, 2019
Samples Removed old gui sample from master branch Jan 7, 2017
Tools License update Feb 12, 2019
.gitattributes Some Oxygene support added Aug 28, 2015
.travis.yml CI tests now only run on master branch Dec 19, 2015 Updated tests and samples to latest version Mar 24, 2015
LICENSE Initial commit Nov 29, 2014 Update Jan 19, 2016
clean_me.bat More fixes for Appveyor config Sep 21, 2015

TERRA Game Engine

TERRA is a cross platform game engine written in Object Pascal. While compatible with Lazarus and Delphi, it does not use visual components. The engine was developed with focus on performance and optimized to run on mobile devices. Does not require any external library or framework besides linking to OpenGL and system libraries.

Support via Paypal

Build Status

windows-fpc-x86 linux-fpc-x86_64
windows-fpc-x86 linux-fpc-x86_64

What is supported?


  • FPC 2.6.2 and up
  • Delphi 7, Delphi XE2, Delphi XE3, Delphi XE10.


  • Windows
  • Linux
  • OSX using FreePascal or Delphi
  • iOS using FreePascal or Delphi
  • Android using FreePascal or Delphi
  • OUYA


  • OpenGL (both shader-based and fixed pipeline)
  • OpenGL ES

File formats


  • PNG
  • JPG
  • BMP
  • TGA
  • DDS
  • PSD
  • GIF (including animation)
  • PVR (Android)


  • TTF
  • FNT (Angelcode)


  • WAV
  • OGG
  • MOD
  • MIDI
  • MP3 (Windows/Android/iOS only)

3D Models:

  • OBJ
  • MS3D (Milkshape)
  • SMD (Valve)
  • 3DS
  • Collada
  • GLS ([g]iles)
  • X (Microsoft DirectX)

Core Features

  • SIMD optimized math library (Vectors, Matrix, Colors, Rays, etc)
  • Full cross platform abstraction (write once, compile everywhere)
  • Automatic resource management with lazy loading/multithreading (Textures, Meshes, Sounds, Animations, etc)
  • Logging with advanced options (filtering, console output)
  • Custom memory manager
  • Input management (keyboard, mouse, touch, gamepad)
  • Thread management system (tasks, etc)
  • Image manipulation framework (resize, crop, etc)
  • 2D/3D sound system based on OpenAL
  • Can be used standalone or integrated into a Delphi/Lazarus form
  • Localization system (with UTF8 support)
  • In-app purchase integration (iOS and Android)
  • Steam integration

Renderer Features

  • Optimized sprite rendering with batching
  • Mesh skinning with skeletal animation (both on GPU and CPU)
  • Inverse kinematics animation
  • Mesh dynamic deformation system (water, explosions, cloth rendering, etc)
  • Uber shader system (forward and deferred rendering)
  • Shadows (stencil-based and shadowmaps)
  • Particle systems (sprites, lines and meshes)
  • Dynamic light system with culling (infinite number of lights per scene, supports point, directional and spot)
  • Infinite reflective surfaces (water, mirrors, etc)
  • Water shading with flow map support
  • Texture palettes/color grading (both meshes and sprites)
  • Animated textures (GIF or video based)
  • Screen based effects (color correction, outlines, refractions, SSAO, etc)
  • Font rendering (including density field fonts)
  • Billboards and decals
  • Fur rendering
  • Terrain rendering
  • Voxel/metaballs rendering
  • Software rasterization support
  • Lightmapping support (both rendering and generation)
  • Cartoon/celshading support
  • Skyboxes, skydomes and volumetric cloud rendering
  • Standard solids procedural meshes
  • Spline based mesh extrusions
  • Optimized 2D sprite rendering (including tilemaps from Tiled map editor)

GUI Features

  • Optimized batched rendering
  • Standard widgets (buttons, labels, images, comboboxes, etc)
  • Widget animation (colors, opacity, size, rotation, etc)
  • Custom virtual keyboard (supports Russian, Korean, Japanese and Chinese)
  • Transition effects (fade out, slides, etc)

Artificial Inteligence

  • Path finding
  • Boids
  • Navigation mesh

Networking features

  • Portable sockets API
  • Client and Server for multiplayer
  • Support for HTTP and FTP protocols
  • UPNP support for NAT punchthrough

Integrated Mobile SDKs

  • Flurry
  • iAd
  • Admob
  • Tapjoy
  • Fortumo
  • Chartboost
  • Adbuddiz
  • Vungle

Projects using TERRA

You can’t perform that action at this time.