This is open source Grand Theft Auto 1 remake project.
Currently it is in very early stage, a progress so far: https://www.youtube.com/watch?v=RENqPCwTdhw
- C++11
- OpenGL 3.2
- Box2D
- cJSON
- Dear ImGui
- STBI
- GLM math library
- GLFW
- GLEW
At the moment, makefile configured so project will build with clang compiler.
Before build project make sure to install dependencies:
- apt install libglew-dev libglm-dev libgl1-mesa-dev xorg-dev clang
Run these commands in terminal:
- git clone --recurse-submodules https://github.com/codenamecpp/carnage3d
- cd carnage3d
- make
You will need Visual Studio 2015 Community Edition to build project. Before compile, add system environment variable SDKDIR with path where all the dependencies lives. These dependencies are:
- GLEW
- GLM
Game needs to be configured before launch, there is example config document in gamedata/config/sys_config.json.default - it must be copy-pasted to same directory but withoud ".default" suffix: gamedata/config/sys_config.json .
Most important param there is gta_gamedata_location - it is location of GTA1 gamedata resources.
Original GTA1 game resources required in order to play (Full or DEMO). Demo version still available for download https://www.rockstargames.com/gta/extras/demos.html .
It is possible to download and play demo version of the game easily just typing a few commands in console:
- make get_demoversion
- make run_demoversion
Note that game must be compiled and configured before this step as described above.
Tested on Ubuntu Linux and Windows 7 64bits.
To select specific level to play you can add command line argument -mapname, for example: -mapname SANB.CMP.
It is similar to original:
- Arrow keys to walk/drive in directions
- Space to slide on car
- Enter to enter or exit car
- Tab to enable or disable car emergency lights (if it present)
- Z, X to change current weapon and Ctrl to shoot
When in "Free Look" camera mode, moving with W, S, A, D keys.
In addition there is support of xbox-compatible gamepads. To enable it or change default key bindings create config file gamedata/config/inputs.json (copy-paste template inputs.json.default) and modify it as you wish.