|
1 day ago | |
---|---|---|
Content | 1 day ago | |
Dependencies | 5 months ago | |
Profiling | 10 months ago | |
assets | 5 months ago | |
audio | 11 months ago | |
audioAssets | 1 year ago | |
data/fonts | 1 year ago | |
docs | 6 months ago | |
references | 5 months ago | |
src | 5 months ago | |
.clang-format | 1 year ago | |
.dir-locals.el | 1 year ago | |
.gitignore | 1 day ago | |
.gitmodules | 6 months ago | |
BuildAssets.sh | 11 months ago | |
BuildBullet.sh | 1 year ago | |
BuildBullet_Debug.sh | 6 months ago | |
BuildDependencies_Debug.sh | 6 months ago | |
BuildDependencies_Release.sh | 10 months ago | |
BuildTools.sh | 11 months ago | |
Build_Debug.sh | 1 year ago | |
Build_Release.sh | 10 months ago | |
CleanAll.sh | 1 year ago | |
ExportBlenderAssets.py | 11 months ago | |
Jamfile | 10 months ago | |
Jamrules | 1 day ago | |
LICENSE | 1 year ago | |
ReadMe.org | 10 months ago | |
RunProfiler.sh | 11 months ago |
Spargus Vehicle Prototype
This is a 3D vehicle game prototype inspired by the gameplay and feel of the dune buggies in Jak 3.
Progress videos, newest to oldest:
Development tools, featuring dear ImGui integration
Split-screen and better "AI" (the top screen is the AI follower)
First "AI" driver. WIP Procedural terrain can be seen in the far background
Objective system and audio, plus improved camera and skybox
First video of air control (applying arbitrary torque to the car in-air)
First public video, featuring free cam and time step scaling
I created a reference video so I could emulate the Jak 3 behavior. It gives you an idea what the inspiration and goal behavior is
Clone and init submodules for dependencies:
git clone --recurse-submodules https://github.com/makuto/spargus-vehicle-prototype
Jam is used to build the project. Install Jam:
sudo apt install jam
You will also need Blender 2.8 to build the 3D assets. For Ubuntu, 2.8 is not yet in the repository, so you should download it directly.
If you have a system install of Blender which is <2.8
, you need to add sBLENDER=/path/to/blender2.8
to Build.sh
and Build_Debug.sh
jam
invocations.
Spargus uses several libraries:
Bullet 3: Physics, raycast vehicle
SFML: 2D graphics, debug 3D graphics, audio, input, window
Horde3D: 3D graphics
dear ImGui: Debug GUI/editors
glm: Math
tinyobjloader: .obj loading, for collision meshes
tracy: Profiling
Currently, SFML relies on system installs for its dependencies:
sudo apt install libopenal-dev libvorbis-dev libflac-dev libglew
Build the rest of the dependencies from source:
cd spargus-vehicle-prototype ./BuildDependencies.sh
./BuildDependencies_Debug.sh
Finally, build Spargus. This builds both code and data assets.
./Build.sh
./Build_Debug.sh
spargus_vehicle_prototype
should be run in the root directory of the repository.
SFML is used for graphics, window, and input. I used my old base2.0 library to wrap SFML if I ever want to switch to SDL.
Running BuildDependencies.sh
will build base2.0, which builds SFML from source. Currently, SFML relies on system installs for its dependencies:
sudo apt install libopenal-dev libvorbis-dev libflac-dev libglew
Spargus Vehicle Prototype uses Bullet3 for physics.
Build bullet3:
cd spargus-vehicle-prototype ./BuildDependencies.sh
Optional: Test the examples:
./Dependencies/bullet3/build_cmake/examples/ExampleBrowser/App_ExampleBrowser
jam
This will build the assets only if necessary.
Collada is used by Horde3D to display the mesh, while the Obj is used to create the collision mesh. The meshes can differ if desired (e.g. for a low-poly collision mesh). On export, ensure Triangulate Mesh and Apply Modifiers are checked.
It takes many programs to make a game. This list serves as a working set of everything needed to create Spargus (with the exception of low-level operating system etc.).
Versions are in Italics. They indicate the last working version I used. It is not necessarily required to have the exact same version.
In order to create models, textures, and audio effectively, you need the following programs:
Source to executable toolchain (Linux x86_64):
ClangFormat 6.0.0-1: Code format
Jam 2.6: Build system. Builds both code and assets
clang++ 6.0.0-1: C++ compiler/linker
GNU ar 2.30: Library archive creation (e.g. .a
)
CMake 3.10.2: Dependency project generation (Spargus itself does not use CMake)