This is a project I worked on during my second year at NHTV. I led the team of 8 people who worked on it (all programmers). It is supposed to be a multiplayer FPS engine, but unfortunately it turned out more to be a rendering demo than anything else. All rendering work on this engine was done by me, except for the shadow rendering (which was done by another programmer).
In order to compile, there are some dependencies that you need to download.
- Go to http://dependencies.rikoophorst.com/tremble/ and download the tremble-engine.rar file.
- It contains two folders: bin & dependencies. Both of these folders are important.
- Unpack the tremble-engine.rar to the root folder of the project.
- The "bin" and "dependencies" folder should be in the same folder as the .sln for the project.
- Open the .sln (in Visual Studio 2015, preferably!) after you have downloaded & unpacked the dependencies rar file.
- Hit CTRL+SHIFT+B to compile the project.
- Hit F5 to run the project.
Sidenote: the "bin" folder that you download already contains a Debug and Release executable of the engine. You should be able to run either of them.
Running the engine in multiplayer mode is a two step process. You need to launch one app as the host, and another as a client.
- Start an instance of the game. It is located at
[project_root]/bin/x64/[Release|Debug]/game.exe. - You will be prompted with a settings window before the game actually launches.
- Set
ScenetoMultiplayer_Test\MultiplayerTestEnvironment.tmap. - Set
Load Sceneto true/enabled. - Set
God Modeto false/disabled. - Set
Frustum cullingto true/enabled. - Set
Depth Pre-Passto true/enabled. - Set
Physics base planeto false/disabled. - Set
D3D12 debug layerto false/disabled. - Set
Light demoto false/disabled. - Set
Spawn clientsto false/disabled. - Set
Hostto true/enabled. - All other options that weren't mentioned either don't do anything (and thus can be ignored) or the functionality of them is implied.
- Hit
OKafter configuring the settings, then move on to the second part of launching the game (right under this!).
- Start an instance of the game. It is located at
[project_root]/bin/x64/[Release|Debug]/game.exe. - You will be prompted with a settings window before the game actually launches.
- Set
ScenetoMultiplayer_Test\MultiplayerTestEnvironment.tmap. - Set
Load Sceneto true/enabled. - Set
God Modeto false/disabled. - Set
Frustum cullingto true/enabled. - Set
Depth Pre-Passto true/enabled. - Set
Physics base planeto false/disabled. - Set
D3D12 debug layerto false/disabled. - Set
Light demoto false/disabled. - Set
Spawn clientsto false/disabled. - Set
Hostto false/disabled. - Set
Host IP addressto127.0.0.1or whatever the EXTERNAL IP address of the host is. - All other options that weren't mentioned either don't do anything (and thus can be ignored) or the functionality of them is implied.
- Hit
OKafter configuring the settings, then move on to the third part of launching the game (right under this!).
- So now you should have two instances of the game running: one as host, and one as client.
- The client upon launch should immediately connect to the host. You can know that connection was succesful if a map was loaded in the client instance (i.e. no empty blue backbuffer).
- If the connection was unsuccessful, RIP. Good luck troubleshooting, my friend.
- If the connection was successful, continue on.
- Identify which of the two game instances is the host. You can know that because in the host instance, there is a text on screen that literally says "HOST".
- In this host instance, hit the ENTER key.
- Congratulations, you can now start playing the game.
Movement is bound to the WASD keys. You have 4 weapons: a pistol, an assault rifle, a raygun and a shotgun. You can switch weapons by scrolling the mouse, or pressing the number keys (1, 2, 3, 4). You can throw grenades by pressing F. Warning: lots of grenades will crash the game. On the map, there are reddish colored planes. If you right click on them, you throw out a grapple hook and get slung towards there.
Gameplay is extremely buggy, so you might have to restart the application a few times before you can get a stable play session.