OpenTomb

OpenTomb (also formerly known as Tomb Raider 1-5 port project and, lately, TRE) is an open-source engine replacement project for classic Tomb Raider games (from TR1 to TRC). It is characterized by extensive Lua scripting usage, as well as advanced physics and audio engine.

Engine is being developed completely from scratch, without any use of original source code, because all attempts to retrieve sources from Eidos and Core were in vain, despite many petitions and requests by the community.

Lead programmer of OpenTomb is Konstantin Chistyakov (also known as TeslaRus) from Russian Federation. Lead programmer of Edison branch (see below) is Steffen Ohrendorf (also known as stohrendorf) from Germany.

Development history
Development of OpenTomb began around 2012, but it was not widely known by Tomb Raider community, until it was found in 2013 on SourceForge by Anatoly Grishin (known as Lwmte, also Russian origin, who previously reverse-engineered original engines and contributed in development of TREP and FLEP patchers). He brought attention to it through Tomb Raider Forums software development category, which is now one of the most discussed topics in this section.

Eventually, by the 2014, a team of programmers formed around OpenTomb project, with involvement of Torsten Kammer (aka Cochrane), who did a major rewrite of rendering section, Volker Schneider (aka vobject), who provided Linux port and cross-platform compilation script, Gh0stBlade (known for homebrew version of Tomb Raider Gold and Tomb Raider II Gold for PlayStation), Saracen (programmed support for proper in-game lighting) and many others.

2015 saw rapid development of many engine aspects — there are now functional scripts for classic TR traps and entities, also by that time huge code refactoring was started by Steffen Ohrendorf, who converted major code parts from plain C to C++. At the same time, platform-specific loader was implemented, which allowed loading Dreamcast level files (and potentially PlayStation levels as well). As of summer 2015, there were at least eight programmers simultaneously working on OpenTomb.

In 2016, organized development process stalled because of conflict of interest between two main developers (see below).

Current status
Engine is still in pre-alpha stage, as many game aspects aren't developed yet. There is no menu, enemies have no AI, traps are partly inactive. Save and load game functionality is broken. Lara's physics and states are programmed up to Tomb Raider Chronicles, but still buggy and unoptimized. Renderer is very basic, as it doesn't support shadows, dynamic lighting and so on. On the other hand, audio engine, controls and on-screen meters functionality is fully developed, and game already features basic inventory.

TeslaRus vs. Edison Engine
In late 2015, due to conflict of interest between two lead developers (Konstantin Chistyakov and Steffen Ohrendorf), master version was abandoned by them, and two branches were derived from it, each of them being developed by corresponding programmer. One by Steffen Ohrendorf is being heavily rewritten, namely graphics part – with dynamic shadows and water fog support, etc. This branch was renamed to Edison Engine, referencing famous rivalry between Nicola Tesla and Thomas Edison. On contrary, TeslaRus version, still lacking advanced graphics features, supported static and fly-by cameras, look mode and two-hand targeting.

In June 2016, after collective decision, TeslaRus branch became new master branch, which spurred new portion of interest in engine. AI system and pathfinding is already in development by Gh0stBlade — some enemy NPCs can now move and chase Lara.

Key features

 * Bullet physics engine, which offers complex collision calculation, ragdolls and dynamics.
 * Lua-driven scripting and entity control.
 * Shader-based OpenGL 2.0+ graphics pipeline with per-pixel lighting.
 * OpenAL audio, with environmental FX and automated soundtrack player.
 * SDL-based user input, with support of game contollers and force feedback.
 * Framerate is not locked to 30 FPS, hence everything is animated much more smoothly than in originals.
 * Loads any retail TR levels, from Tomb Raider 1 to Tomb Raider chronicles, as well as custom levels created in classic Tomb Raider Level Editor.
 * Loads Dreamcast level files, and there is a potential to load any platform-specific levels.

Supported platforms
Initially, OpenTomb was Windows-only engine, but its open nature allowed to create ports for Linux and Mac. Linux version is currently maintained by vobject and pmatulka, while Mac version is maintained by Cochrane.

Relation to similar projects
OpenTomb is not the first attempt to recreate original Tomb Raider game engine. Probably, the most known one is OpenRaider, which was discontinued back in 2003. Another attempt was VT engine by Icculus.org project, but only level loader was completed. Source code from both of these is used in OpenTomb to some extent.

Similar projects are IrisEngine and FexEngine (both use their own file format, although with resources derived from original games), RetroFit, TrPlayer, Tomb Raider Java and Tomb Raider Nostalgie (these four were intended to play original level files). All these projects are currently halted or status is unknown, although godmodder, author of IrisEngine, expressed interest in adapting IrisEngine editor to OpenTomb file format.

However, OpenTomb, being the most active Tomb Raider open-source project, is not the only one in development — there is recent OpenRaider fork by Thomas Buck (as stated above, original branch isn't active since 2003). Also, there is an Unity-based TR2 level viewer written by Suruz. Latest contribution to both projects was made in 2015.

Also, new open-source project called OpenLara is now in rapid development, and inspired by OpenTomb. However, currently it only supports TR1 levels.

Links

 * Official GitHub page (source code)
 * Official SourceForge project page (binary releases only)
 * ModDB page
 * Twitter account
 * Official YouTube channel with latest development videos
 * Forum thread at Tomb Raider Forums