Skip to content

MeshGlide is an experimental 3D engine for a FPS, it's written in C++ and was previously a prototype for KillBox.

License

Notifications You must be signed in to change notification settings

AXDOOMER/MeshGlide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeshGlide

Top Language Code Size License Codacy Badge CircleCI

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.

Development

Installation

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

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.

Creating new levels

MeshGlide has a native format, but also supports the OBJ format (with slight modifications). Refer to this wiki page for more details.

Credits

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.

Screenshots

Version 0.47

screenshot_2018-09-02_22-38-51

Version 0.39

screenshot at 2018-05-10 21-06-32

From an older version

screenshot at 2017-12-18 19-50-42

About

MeshGlide is an experimental 3D engine for a FPS, it's written in C++ and was previously a prototype for KillBox.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages