This is a 3D vehicle game prototype inspired by the gameplay and feel of the dune buggies in [[https://en.wikipedia.org/wiki/Jak_3][Jak 3]].
** Videos
* Videos
Progress videos, newest to oldest:
- [[https://github.com/makuto/spargus-vehicle-prototype][Split-screen and better "AI"]] (the top screen is the AI follower)
- [[https://www.youtube.com/watch?v=c43dq7xYvuA][Split-screen and better "AI"]] (the top screen is the AI follower)
- [[https://www.youtube.com/watch?v=LXAsL04EPDY][First "AI" driver]]. WIP Procedural terrain can be seen in the far background
- [[https://www.youtube.com/watch?v=JNJRJw6R5xY][Drivetrain and engine audio]]
- [[https://www.youtube.com/watch?v=bCw-OMBP5XU][Objective system and audio]], plus improved camera and skybox
@ -12,42 +13,94 @@ Progress videos, newest to oldest:
I created a [[https://www.youtube.com/watch?v=sUenByjCijM][reference video]] so I could emulate the Jak 3 behavior. It gives you an idea what the inspiration and goal behavior is
~spargus_vehicle_prototype~ should be run in the root directory of the repository.
* Asset pipeline
** Create the asset in your desired modeling program
** Add the asset to the Jamfile
** Add textures to Jamfile
** Run ~jam~
This will build the assets only if necessary.
** By hand: Export Collada and Wavefront Obj
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.
* Supporting programs
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.
*** SFML Setup
SFML is used for graphics, window, and input. I used my old [[https://github.com/makuto/base2.0][base2.0]] library to wrap SFML if I ever want to switch to SDL (I should dump base2.0 eventually...)
** Asset creation
In order to create models, textures, and audio effectively, you need the following programs:
Running ~BuildDependencies.sh~ will build base2.0. You will need to have installed SFML 2 already. (*TODO:* Add instructions on how to do this)
- [[https://www.gimp.org/][GIMP]] /(2.8.22)/: Textures are created in GIMP and stored in GIMP's ~.xcf~ format
- [[https://www.blender.org/][Blender]] /2.82/: Models and animations are created and stored in ~.blend~. Make sure Collada ~.dae~ and Wavefront ~.obj~ exporting are enabled
Some of these are included in the ~Dependencies~ directory.
* Dependency notes
** SFML Setup
SFML is used for graphics, window, and input. I used my old [[https://github.com/makuto/base2.0][base2.0]] library to wrap SFML if I ever want to switch to SDL.
Running ~BuildDependencies.sh~ will build base2.0. You will need to have [[https://www.sfml-dev.org/tutorials/2.5/start-linux.php][installed SFML 2]] already:
#+BEGIN_SRC sh
sudo apt-get install libsfml-dev
#+END_SRC
** Bullet3 Setup
Spargus Vehicle Prototype uses [[https://github.com/bulletphysics/bullet3][Bullet3]] for physics.
*** Create the asset in your desired modeling program
*** Run ~BuildAssets.sh~
This prepares assets for Horde3D.
*** By hand: Export Collada and Wavefront Obj
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.