OpenLara: a C engine that plays the classic Tomb Raider levels you already own
Classic Tomb Raider open-source engine
At a glance
- What is it?
- OpenLara is an open-source reimplementation of the classic Tomb Raider engine, written in C and licensed BSD-2-Clause. It runs the original level data on platforms the original games never shipped on, and the repository is still being pushed to, though the last tagged release is from 2019.
- Who is it for?
- OpenLara is for people who already own classic Tomb Raider discs or level files and want to run them on hardware the original releases never targeted: the repository has ports for handhelds, consoles and the browser, and the README links a WebGL demo level you can open without building anything.
- Can I use it commercially?
- Yes. BSD-2-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 67 days ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What OpenLara replaces, and what it deliberately does not
OpenLara is a reimplementation of the engine that ran the classic Tomb Raider games, written in C and released under BSD-2-Clause. The README describes it as a "Classic Tomb Raider open-source engine" and nothing more ambitious than that. It is not a remaster, not a level editor and not a distribution of the games. The repository is the engine: LICENSE, README.md, bin/ and src/ at the top level. The screenshots in the README show waterfall, caustics, cutscene and double-aim scenes drawn by this engine, including shots labelled tr2_opera and tr3_temple, so the renderer is not limited to the first game's art.
The audience is narrow and specific. You are the right reader if you own classic Tomb Raider level data and want it running on a machine the original releases never supported. The related searches around OpenLara are almost all platform names: gba, 3ds, psp, dreamcast, 32x, android. That is the shape of the project. It is a portability effort first, and a preservation effort second. Anyone looking for a modern, curated re-release with updated controls and art should look elsewhere, because OpenLara's whole point is to run the original data rather than replace it.
How the C engine is laid out and why the ports are the real feature
The repository gives you bin/ and src/ and little else in the way of architecture documentation. From that layout, the working assumption is a portable core in src/ plus per-platform build output or glue under bin/. The README does not publish a module map, a rendering pipeline diagram or a list of supported backends, so anything more specific than that would be invention.
What the README does establish is breadth of targets. It links a WebGL build, a standalone release, and a roadmap issue, and the related searches name Game Boy Advance, 3DS, PSP, Dreamcast, 32X and Android. Getting one C codebase onto that spread of hardware is the hard part of this project, and it explains why the engine is written in C rather than anything with a heavier runtime. A renderer that has to satisfy a 32X and a desktop GPU at once cannot assume much about the graphics API underneath it.
The trade-off is visible in the release history. The latest tag is dated 2019-01-11, with 20190109 for the Nintendo Switch and 20181026 for the beta before it. The last push to the repository was 2026-07-26, so work has continued long after the last tagged release. If you build from master you are on unreleased code; if you take a release you are on something from 2019. Neither is wrong, but they are different bets.
Installing OpenLara and getting a first level on screen
The README does not give build instructions, a dependency list or a cmake invocation, so there is no honest way to walk through compiling from source here. What it does give is two entry points: a WebGL build with a demo level, and a standalone version linked from the latest release tag. The fastest first use is the browser build, because it needs no toolchain at all.
Open the WebGL build in a browser and the demo level loads. That is the whole procedure:
# README: WebGL build with demo level
http://xproger.info/projects/OpenLara/The standalone route starts from the release page rather than from a package manager:
# README: Standalone version
https://github.com/XProger/OpenLara/releases/tag/latestIf you intend to build the C sources yourself, the repository layout is your only guide: the sources are in src/ and the README does not name a build system. Check the roadmap issue before assuming a given platform is finished, because the README points there for status rather than listing supported targets itself.
The game data problem the README never addresses
The largest gap in the documentation is where the levels come from. OpenLara is an engine; the README shows screenshots of Tomb Raider 2 and Tomb Raider 3 scenes but never says how a user supplies that content, whether it is read from original discs, from files the user already has, or from something else. Every related search that pairs OpenLara with a specific game (tomb raider 2, tomb raider 3) is really asking the same question, and the README does not answer it.
This is not a documentation nitpick, it is the adoption blocker. A new user can get the demo level running in a browser in under a minute and then hit a wall, because the next step, playing a full game, depends on data the project does not ship and does not describe. If you cannot already identify your own level files, this is the wrong project for you until you can.
The second failure mode is platform drift. The related searches include openlara gba rom, which suggests people arrive expecting a ROM download. OpenLara is not that; it is an engine, and the README offers no ROM. Anyone who wants a ready-to-run file for a handheld should treat that expectation as unmet.
OpenLara against OpenTomb and against the remastered releases
Two comparisons come up repeatedly in search: openlara vs opentomb, and openlara vs remastered. They are different arguments.
OpenTomb is the other long-running open-source Tomb Raider engine effort, and the difference is one of emphasis rather than of goal. Both reimplement the classic engine. OpenLara's distinguishing trait, judging by the README and by the platform names people search for, is reach: a C core pushed onto handhelds, consoles and the browser, with a WebGL build you can open today. If your reason for being here is running classic levels on unusual hardware, that is the axis that matters, and it is the one OpenLara's documentation speaks to most clearly.
The remastered releases are a different category entirely. They are commercial products with redrawn art and revised presentation. OpenLara does not compete with them on visuals and does not try to: the README's screenshots show the original geometry with effects like caustics and waterfall rendering applied. If you want the modern presentation, buy the remaster. If you want the original data on your own terms, and on hardware the remaster will never support, that is where OpenLara sits.
Maintenance, releases and what BSD-2-Clause means here
The maintenance picture is split, and it is worth being precise about it. The repository is not archived. The last push was 2026-07-26, so the codebase is being touched. The last tagged release, however, is 2019-01-11, with 20190109 for the Nintendo Switch build and 20181026 for the beta before that. There is a seven-year gap between the newest tag and the newest commit. Anyone who equates "recent commits" with "recent stable binaries" will be disappointed, and the standalone download the README points at resolves to that older tag.
Upgrade cost follows from the same split. Building from master means tracking unreleased changes with no changelog in the repository; taking the release means you are on 2019 code with no upgrade path described. The README does not document rollback, a versioning policy or a migration process, so treat any move between the two as a fresh setup rather than an upgrade.
On licensing, the README carries a BSD-2-Clause badge and the repository has a LICENSE file at the top level. That is a permissive licence, which generally means you can reuse and redistribute the engine code with the licence text preserved. It says nothing about the game data you load into it, which is a separate question the repository does not address. This is not legal advice; if you plan to redistribute anything, read the LICENSE file and think about where your level data came from.
Editorial conclusion
OpenLara is for people who already own classic Tomb Raider discs or level files and want to run them on hardware the original releases never targeted: the repository has ports for handhelds, consoles and the browser, and the README links a WebGL demo level you can open without building anything. It is not for anyone expecting a packaged game: the README does not explain where game data comes from, the latest tagged release is 2019-01-11, and the last push was 2026-07-26, so if you want a stable binary, start with the latest release tag and only then look at the master branch. Verify two things before you commit: that the level files you own match what the port you picked expects, and whether the platform you want is actually in the src/ tree or merely requested on the roadmap issue.
Frequently asked questions
How do I use OpenLara?
The README points to a WebGL build with a demo level that runs in a browser, and to a standalone version on the latest release tag. Building the C sources yourself is possible from src/, but the README does not give build steps.
What is OpenLara?
It is an open-source engine for the classic Tomb Raider games, written in C and licensed BSD-2-Clause, described in the README as a "Classic Tomb Raider open-source engine".
How does OpenLara compare with OpenTomb?
Both are open-source reimplementations of the classic Tomb Raider engine. OpenLara's README emphasises platform reach, with a WebGL build and standalone releases, and the platforms people search for include GBA, 3DS, PSP, Dreamcast and 32X.
How does OpenLara compare with the remastered Tomb Raider releases?
The remastered releases are commercial products with redrawn art. OpenLara runs the original level data through its own engine, and the README's screenshots show original geometry with effects such as caustics and waterfall rendering rather than new art.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/xproger-openlara)