/Tomb-Raider-II-Multiplayer-Mod

Tomb Raider II Multiplayer Mod

Primary LanguageC++MIT LicenseMIT

Tomb Raider II Multiplayer Mod

This is a modification that implements multiplayer functionalities to the game Tomb Raider II using C++17.

This project has two dependencies, SlikeNet and MinHook. Compiled library binaries must be placed in the following directory: "SolutionDir\deps\libs" .

Must be compiled in 32 (x86) bits because the modifications are carried out using the client as a DLL.

Credits to SlikeNet, MinHook and Arsunt whose project helped me reversing some game structures and functions.

NOTE: This project is just an early testing version of the mod, there are a few bugs when synchronizing entities such as vehicles and doors. Besides those bugs, the mod can be completely used to play and complete the game with friends.

Some of the current features included:

  • Full synchronization of players except for "rifle" weapons animations (shotgun, m16, harpoon and grenader launcher).
  • Synchronization for PVP (Player vs Player).
  • Synchronization of flipped rooms to ensure proper player sync. · Synchronization of enemies and other entities like boats, skidoos, doors etc. · Full support for all levels. There is a bug in "Home sweet home" that displays the wrong waist of Lara, it will be fixed in future updates.
  • Complete chat to talk (type) with players and commands.
  • Many utility commands in game, the following ones are a few of them:
    • "boom": makes your lara explode.
    • "name <new_name>": change your name in the server.
    • "tp <player_name>": teleport to other player, you can also type the player's partial name and it will automatically find it.
    • "level <level_name>": teleport to the beginning of the specified level.
    • "ff ": toggle friendly fire, an example would be "ff true" to enable it or "ff 0" to disable it.
    • "give_item <item_name>": receive an item.
    • "kill": kill yourself with this command.

Binaries usage:

    1. Download the latest version of the mod and extract it anywhere.
    1. If you own a hosted virtual server/dedicated server you should place TRIIO_SV.exe and settings.ini together in your server. If you don't own any of this, you could use Hamachi to open your server to other people, as long as both files are together you can place them wherever you please. Remember to open the ports through the Windows Firewall. I own a few servers for my work and one of them is dedicated to test the mod which I may release to the public if there is enough interest for the mod with a specific death match gamemode. The IP of the server can be found in main.cpp under client folder, all connections will be ignored if you try to connect now.
    1. Open TRIIO_SV.exe to initialize the server, once it's initialized you can go ahead and open TRIIO.exe which is the client that will launch the game and connect to the server. You need to specify the location of the game when you first open the client.
    1. To connect to a server you have to use the command "connect" which can take none or one parameter, in the case you don't specify any parameter it will connect automatically to the last joined server, otherwise you have to specify the ip of the server, an example is "connect 127.0.0.1".
    1. The game will launch after executing that command and it will connect to the server and that's it.

Brief showcase of the mod: https://www.youtube.com/watch?v=Uq37HU1494s