Giter Site home page Giter Site logo

wjeansmith / terra-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from relfos/terra-engine

0.0 1.0 0.0 70.26 MB

Cross platform game engine written in Object Pascal.

Home Page: http://www.pascalgameengine.com

License: Apache License 2.0

C 0.55% Pascal 85.23% C++ 0.69% Java 3.87% Objective-C 7.33% PHP 0.83% Assembly 0.49% HTML 0.01% Batchfile 0.01% C# 0.99% Shell 0.01%

terra-engine's Introduction

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?

Compilers:

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

Platforms:

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

Renderers:

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

File formats

Images:

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

Fonts:

  • TTF
  • FNT (Angelcode)

Audio:

  • 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

terra-engine's People

Contributors

relfos avatar polywickstudio avatar auoks avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.