{"id":13441213,"url":"https://github.com/opentomb/OpenTomb","last_synced_at":"2025-03-20T11:37:44.809Z","repository":{"id":30073084,"uuid":"33622587","full_name":"opentomb/OpenTomb","owner":"opentomb","description":"An open-source Tomb Raider 1-5 engine remake","archived":false,"fork":false,"pushed_at":"2024-08-07T17:25:13.000Z","size":37151,"stargazers_count":1383,"open_issues_count":123,"forks_count":145,"subscribers_count":86,"default_branch":"master","last_synced_at":"2024-10-15T10:21:56.214Z","etag":null,"topics":["clone","engine","game","open","raider","remake","source","tomb"],"latest_commit_sha":null,"homepage":"http://opentomb.github.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opentomb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-08T17:49:22.000Z","updated_at":"2024-10-07T10:02:37.000Z","dependencies_parsed_at":"2023-01-14T16:15:14.035Z","dependency_job_id":null,"html_url":"https://github.com/opentomb/OpenTomb","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentomb%2FOpenTomb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentomb%2FOpenTomb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentomb%2FOpenTomb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentomb%2FOpenTomb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opentomb","download_url":"https://codeload.github.com/opentomb/OpenTomb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221759943,"owners_count":16876322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clone","engine","game","open","raider","remake","source","tomb"],"created_at":"2024-07-31T03:01:31.200Z","updated_at":"2025-03-20T11:37:44.797Z","avatar_url":"https://github.com/opentomb.png","language":"C++","funding_links":[],"categories":["C++","Legend","Action","Game/App Engines","Native"],"sub_categories":["Tomb Raider 1 / 2 / 3 / 4 / 5","Action"],"readme":"[![Build Status](https://travis-ci.org/opentomb/OpenTomb.svg?branch=master)](https://travis-ci.org/opentomb/OpenTomb)\n\n## Disclaimer\n\nThis project is **inactive** and is no longer maintained.  \n\nFor an actively developed and community-driven classic engine for creating maps, we recommend checking out **TombEngine** at [tombengine.com](https://tombengine.com).  \n\nTombEngine is built with modern techniques while preserving the legacy of classic level creation.\n\nOpenTomb — an open-source Tomb Raider 1-5 engine remake\n-------------------------------------------------------\n\n### Table of contents ###\n\n- [What is this?](#what-is-this)\n- [Why create a new engine?](#why-create-a-new-engine)\n- [Features](#features)\n- [Supported platforms](#supported-platforms)\n- [Setup](#setup)\n- [Compiling](#compiling)\n- [Running and Configuration](#running-and-configuration)\n- [Licensing](#licensing)\n- [Credits](#credits)\n\n\n### What is this? ###\nOpenTomb is an open-source re-implementation of the classic Tomb Raider engine,\nintended to play levels from all classic-era Tomb Raider games (1—5), as well as\ncustom TRLE levels. The project does not use any of the original Tomb Raider\ncode, as all attempts to retrieve source files from Eidos/Core were in vain.\n\nInstead, everything is being re-developed completely from scratch. It should be\nnoted, however, that OpenTomb uses certain legacy routines from unfinished\nopen-source projects, such as [OpenRaider](http://openraider.sourceforge.net/)\nand VT project (found at [icculus.org](https://icculus.org/)), plus some code\nfrom Quake Tenebrae.\n\nOpenTomb tries to recreate the original Tomb Raider series experience, although\nwith contemporary updates, features and additions, being able to fully benefit\nfrom running on modern PCs with powerful CPUs and graphic cards.\n\nLinks to forums and info:\n* TR forum link: http://www.tombraiderforums.com/showthread.php?t=197508\n* Discord channel: https://discord.gg/d8mQgdc\n\n### Why create a new engine? ###\nIt's true that we have fully working Windows builds of TR2-5, and TR1 works\nperfectly through [DosBox](https://www.dosbox.com/). However, as time \nprogresses the situation will only worsen, with newer Operating Systems \nbecoming increasingly unlikely to support the games. OpenTomb will always\nbe able to be ported to any platform you wish.\n\nIt is also true that there are patchers for the original engine, aiming to\nimprove and update it: TREP, TRNG, etc. The advantage with OpenTomb is that we\nare not limited by the original Binary, a huge limitation when it comes to new\nfeatures, graphical enhancements, code modification and more. An open-source\nengine removes these limitations.\n\n### Features ###\n* OpenTomb has a completely different collision approach to the original engine,\ncircumventing many of the limitations present. We use a terrain generator to\nmake an optimized collision mesh for each room from so-called \"floordata\".\n* OpenTomb is capable of a variable frame rate, not limited to 30fps like the\noriginal engine.\n* OpenTomb uses common and flexible libraries, such as OpenGL, OpenAL, SDL and\nBullet Physics.\n* OpenTomb implements a Lua scripting engine to define all entity functionality.\n This means that, again, unlike the original, much less is hardcoded into the\n engine itself, so functionality can be extended or modified without having to\n modify and recompile the engine itself.\n* Many abandoned and unused features from the original engine have been enabled\nin OpenTomb. New animation, unused items, hidden PSX-specific structures inside\nlevel files, and so on!\n\n### Supported platforms ###\nOpenTomb is a cross-platform engine: currently it can be ran on Windows, Mac or\nLinux. No mobile implementations are in development yet, but they are indeed\npossible.\n\n### Setup ###\nTo run any of the levels from the original games, you will need the assets from\nthat respective game. These resources often tend to be in cryptic formats, with\nvariations across games. Because of this, you'll need to convert some game\nresources to usable formats yourself, or get them from somewhere on the Net.\n\nHere is the list of all needed assets and where to get them:\n\n * Data folders from each game. Get them from your retail game CDs or Steam/GOG\n bundles. Just take data folder from each game's folder, and put it into\n corresponding `/data/tr*/` folder. For instance, for TR3, the path would be\n `OpenTomb/data/tr3/data/`. Tomb Raider \"Gold\" versions go to `data/tr*_gold/`\n directories.\n\n * CD audio tracks. OpenTomb only supports OGG audiotracks for a moment, so you\n should convert original soundtracks by yourself, or just download whole TR1-5\n music package here: https://opentomb.earvillage.net\n PLEASE NOTE: Files may need to be renamed for this to work, please see\n  https://github.com/opentomb/OpenTomb/issues/447\n\n * Loading screens for TR1-3 and TR5. For TR3, get them from pix directory of\n your installed official game. Just put this pix directory into `/data/tr3/`\n folder. As for other games, it's a bit tricky to get loading screens, as there\n were no loading screens for PC versions TR1-2, TR4 used level screenshots as\n loading screens, and TR5 used an encrypted format to store all loading\n graphics. So, to ease your life, you can simply download loading screen package\n  here: http://trep.trlevel.de/temp/loading_screens.zip\n Just put it right into OpenTomb directory, and that should do the trick. Note:\n the engine supports png and pcx format of screen images.\n\n### Compiling ###\nThere is a CMakeLists.txt file provided with source code, so you can compile\nOpenTomb using CMake. On Windows, you can also compile it from Code::Blocks or Netbeans IDE.\nAlternatively, you can manually compile it in Code::Blocks or Netbeans by recursively\nadding all source files from /src directory, and adding these libraries in Linker Settings\nunder Project Build options:\n\n* libmingw32.a\n* libSDL2main.a\n* libSDL2.dll.a\n* libpng.a\n* libz.a\n* libpthread.a\n\nOn Linux, just download the source code and run in terminal:\n\n    cmake . \u0026\u0026 make\n\nThe required dependencies are the development headers for SDL2, png, ZLIB.\nYou can install them in an Ubuntu-based distro with this command:\n\n    sudo apt-get install libopenal-dev libsdl2-dev libpng12-dev libglu1-mesa-dev zlib1g-dev\n\nOn Mac, use XCode project, which is also available in source code.\n\nNB: Please note that OpenTomb requires C++11 (`-std=c++11`) flag to compile\nproperly! You may use CPU-specific optimization flags (`-march=prescott`,\n`-march=i486`, `-march=core2`), as well as general optimization flags (`-O1`, `-O2` and `-O3`),\n but `-O3` flag on old GCC versions may prevent to engine crash as Bullet tends to crash with this optimization level\n (GCC 5.1+ may compile it without errors).\n\n### Running and Configuration ###\nTo run OpenTomb, simply run the executable generated by the build. By default,\nno command line options are needed. Access the console by pressing \\`. This\nallows you to enter commands to select levels, change settings, and more. Enter\n'help' to get a list of commands. Enter 'exit' to quit the engine.\n\nCurrently, all settings in OpenTomb are managed through config.lua and\nautoexec.lua. Config.lua contains persistent engine and game settings, while\nautoexec.lua contains any commands which should be executed on engine start-up.\n\nConfig.lua is divided into different sections: screen, audio, render, controls,\nconsole and system. In each of these sections, you can change numerous\nparameters, the names of which are usually fairly intuitive.\n\nAutoexec.lua is a simple list of commands which are ran at startup. Modifying\nexisting commands may cause the engine to function incorrectly.\n\nTo select a level, enter 'setgamef(game, level) into either autoexec.lua or in\nthe console, where game is 1-5. Mansion levels are generally 0, and games which\ndo not have a mansion begin from level 1. For example, to load level 2 of TR3,\nyou would enter `setgamef(3, 2)`.\n\n### Licensing ###\nOpenTomb is an open-source engine distributed under LGPLv3 license, which means\nthat ANY part of the source code must be open-source as well. Hence, all used\nlibraries and bundled resources must be open-source with GPL-compatible\nlicenses. Here is the list of used libraries and resources and their licenses:\n\n* OpenGL — does not need licensing (https://www.opengl.org/about/#11)\n* OpenAL Soft — LGPL\n* SDL / SDL Image — zlib\n* Bullet — zlib\n* Freetype2 — GPL\n* Lua — MIT\n* ffmpeg rpl format and codecs (http://git.videolan.org/)\n\n* Droid Sans Mono, Roboto Condensed Regular and Roboto Regular fonts — Apache\n\n### Credits ###\nNB: Please note that authors and contributors list is constantly extending, as\nthere is more and more people involved in project development, so someone may be\n missing from this list!\n\n* [TeslaRus](https://github.com/TeslaRus): main developer.\n* [Cochrane](https://github.com/Cochrane): renderer rewrites and optimizing, Mac OS X support.\n* [Gh0stBlade](https://github.com/Gh0stBlade): renderer add-ons, shader port, gameflow implementation, state\ncontrol fix-ups, camera and AI programming.\n* [Lwmte](https://github.com/Lwmte): state and scripting fix-ups, controls, GUI and audio modules, trigger\nand entity system rewrites.\n* Nickotte: interface programming, ring inventory implementation,\ncamera fix-ups.\n* [pmatulka](https://github.com/pmatulka): Linux port and testing.\n* [richardba](https://github.com/richardba): Github migration, Github repo maintenance, website design.\n* [Saracen](https://github.com/Saracen): room and static mesh lighting.\n* [Stohrendorf](https://github.com/stohrendorf): code review, original game logic information, auto build system.\n* [T4Larson](https://github.com/T4Larson): general stability patches and bugfixing.\n* [vobject](https://github.com/vobject): nightly builds, maintaining general compiler compatibility.\n* [vvs-](https://github.com/vvs-): testing, feedback, bug report.\n* [xproger](https://github.com/xproger): documentation updates.\n* [Banderi](https://github.com/Banderi): documentation, bugfixing.\n* [gabrielmtzcarrillo](https://github.com/gabrielmtzcarrillo): entity shader work.\n* [filfreire](https://github.com/filfreire): documentation.\n* [TokyoSU](https://github.com/TokyoSU): misc fixes, weapon inventory.\n\n\nAdditional contributions from: Ado Croft (extensive testing),\nE. Popov (TRN caustics shader port), [godmodder](https://github.com/godmodder) (general help),\n[jack9267](https://github.com/jack9267) (vt loader optimization), meta2tr (testing and bugtracking),\nshabtronic (renderer fix-ups), [Tonttu](https://github.com/Tonttu) (console patch) and\n[xythobuz](https://github.com/xythobuz) (additional Mac compatibility patches).\n\nTranslations by: [Joey79100](https://github.com/Joey79100) (French), Nickotte (Italian), [Lwmte](https://github.com/Lwmte) (Russian),\n[SuiKaze Raider](https://twitter.com/suikazeraider) (Spanish), [filfreire](https://github.com/filfreire) (Portuguese - Portugal).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentomb%2FOpenTomb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopentomb%2FOpenTomb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentomb%2FOpenTomb/lists"}