A simple FPS engine that uses GLFW 3 for the graphics and input. It's distributed under the GPLv3.
The early version of the engine was used as a prototype to test the feasibility of a homemade OpenGL engine for KillBox.
It's now under development. The goal is to create a new engine that's better than the KillBox engine.
It's called the MeshGlide engine. It's due to the way it's optimized. The player "glides" from polygon to polygon. The data structures are simple and the game runs very fast due to the tiny amount of calculations that have to be made in order to keep track of the player.
Packages that need to be installed under Debian and Ubuntu are: libglfw3-dev libsdl2-image-dev libsdl2-dev libczmq-dev
.
Under Open Suse 15 Leap, these packages need to be installed: libglfw-devel freeglut-devel libSDL2_image-devel cppzmq-devel
.
Compile on Linux: g++ *.cpp -std=c++14 -lglfw -lGL -lGLU -lSDL2 -lSDL2_image -lzmq -o MeshGlide
It's preferable to compile and run the program using the run.sh
script because it's tested, but this should work too.
MeshGlide has a native format, but also supports the OBJ format (with slight modifications). Refer to this wiki page for more details.
The following files were taken from the Freedoom project. See their license.
- Player sprites: playa1.png, playa2.png, playa3.png, playa4.png, playa5.png, playa6.png, playa7.png, playa8.png
- Shotgun sprite: shota0.png
- Rocket launcher sprite: launa0.png
- Minigun sprite: mguna0.png
- Bullet puff: puffa0.png, puffb0.png, puffc0.png, puffd0.png
- Door texture: door9_1.png
- Blood sprites: bluda0.png, bludb0.png, bludc0.png
- Plasma sprite: aplsa0.png
MeshGlide uses code from CollisionDetection written by Jeff Thompson. The code is used in line.h
. Permission has been granted to use and redistribute it under the GNU GPLv3 which is the same license as MeshGlide. The original license for this code was CC BY-NC-SA 3.0.