A new and modern engine for custom Tomb Raider levels, incorporating classic features and new enhancements.
Find a file
Lwmte cb23823e64
Video playback (#1625)
* Work

* Work

* Update Video.cpp

* Update Video.cpp

* Update Video.cpp

* Update Video.cpp

* Update Video.cpp

* Working playback

* Update Video.cpp

* Cleanups

* Additions

* Update Video.cpp

* Formatting

* Correct pausing/resuming

* Remove .mov extension, as it's not supported

* Use vector instead of array

* Implement SetIntroVideoPath

* Swap intro image and intro video to better reflect original legal sequence

* Update Gameflow.lua

* Simplify synchronization with VLC thread

* Use Vector2i for sizes, only fetch video dimensions once

* Rename callbacks, move logging callback to a class

* Update Video.cpp

* Update CHANGELOG.md

* Removed empty OnDisplayFrame event

* Rename

* Stop video player if user pressed Alt+F4

* Allow background video playback

* Update Video.cpp

* Update Video.cpp

* Fixed init errors

* Restore .mov default extension for video playback

* Update RendererDraw2D.cpp

* Add video streaming for rectangular faces of room geometry

* Remove magic and use normalized UVs instead

* Use VIDEO_SPRITE_ID instead of NO_VALUE

* Added more scripting API functions for video playback

* Correct variable names

* Shorten notification

* Add GetVideoDominantColor

* Do proper cleanup when alt+F4ing during video playback

* Change game loop deinit to avoid several issues with cleaning up

* Organise `VideoHandler` class

* Randomize glow angle

* Update comment

* Update Video.cpp

* Update Video.cpp

* Fix issues with frame drops in exclusive mode

* Optimize CPU usage in exclusive mode

---------

Co-authored-by: Sezz <sezzary@outlook.com>
2025-04-20 22:06:07 +03:00
.github/ISSUE_TEMPLATE Update bug_report.yaml 2025-03-16 10:52:59 +00:00
Documentation Video playback (#1625) 2025-04-20 22:06:07 +03:00
Libs Video playback (#1625) 2025-04-20 22:06:07 +03:00
Scripts Video playback (#1625) 2025-04-20 22:06:07 +03:00
TombEngine Video playback (#1625) 2025-04-20 22:06:07 +03:00
Tools/Enum generation Cleanup generateobjects.lua and move it back into Enum generation 2022-09-13 21:22:21 +01:00
.gitignore Implemented fog bulb (#1110) 2023-05-31 09:12:20 +01:00
AUTHORS.md Fix merge conflicts, additional legal cleanup 2025-04-18 12:20:25 +02:00
CHANGELOG.md Video playback (#1625) 2025-04-20 22:06:07 +03:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2024-05-15 23:43:08 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2024-11-20 21:51:22 +11:00
IMPORTANT_LINKS.md Update IMPORTANT_LINKS.md 2024-05-19 22:24:46 +01:00
LICENSE Update license 2025-04-18 12:16:46 +02:00
pull_request_template.md Update pull_request_template.md 2024-10-30 16:14:47 +02:00
README.md Update license 2025-04-18 12:16:46 +02:00
TEN logo.png Rebranding 2024-11-03 13:21:26 +01:00
Title Image.psd Rebranding 2024-11-03 13:21:26 +01:00
TombEngine.sln x64 version (#1113) 2023-05-21 16:01:27 +01:00

Tomb Engine

Logo

Tomb Engine (TEN) is an open-source custom level engine which aims to abolish limits and fix bugs of the classic Tomb Raider games. It aims to introduce new features, refine old ones, and provide a user-friendly level creation process. Current support includes:

  • Lua as the native scripting language.
  • Many objects from the original series (1-5).
  • Support for high framerate, antialiasing, mipmapping, and SSAO.
  • Full diagonal geometry support.
  • Uncapped map size.
  • A streamlined player control scheme.

Tomb Engine is used in conjunction with Tomb Editor. The repository can be found here.

Compiling Tomb Engine

To compile TEN, ensure you have installed:

  • Microsoft Visual Studio
  • Tomb Editor (for level creation and testing)

Steps:

  1. Clone the repository to your GitHub Desktop.
  2. Open TombEngine.sln.
  3. Compile the solution.
  4. Once compiled, create a separate folder to serve as your main TEN directory (or create a test TEN project using TombIDE)
  5. Copy everything inside the Build folder to the main TEN directory.
  6. Ensure you have the necessary level data and texture files.
  7. In case Windows warns about missing DLLs (bass.dll, etc.), copy the missing DLL files found inside the Libs folder to your main TEN directory.

Visual Studio may warn about NuGet packages. To fix:

  1. Delete the Packages folder.
  2. Go back to Microsoft Visual Studio.
  3. Right-click on the TEN solution in the Solution Explorer tab and select "Restore NuGet Packages".
  4. If it doesn't help, manually install directxtk_desktop_2019 and Microsoft.XAudio2.Redist packages via NuGet Package Manager.

Once done, you should be able to build a level with Tomb Editor and run it in TEN.

Contributions

Contributions are welcome. If you would like to participate in development to any degree, whether that be through suggestions, bug reports, or code, join our Discord server.

Disclaimer

Tomb Engine uses modified MIT license for non-commercial use only. For more information, see license. Tomb Engine is unaffiliated with Core Design, Eidos Interactive, or Embracer Group AB. Tomb Raider is a registered trademark of Embracer Group AB. Tomb Engine source code is open to encourage contributions and for study purposes. Tomb Engine team is not responsible for illegal use of this source code alone or in combination with third-party assets or components. This source code is released as-is and continues to be maintained by non-paid contributors in their free time.