All Projects → exezin → Exengine

exezin / Exengine

Licence: mit
A C99 3D game engine

Programming Languages

c
50402 projects - #5 most used programming language
c99
33 projects

Projects that are alternatives of or similar to Exengine

exengine
A C99 3D game engine
Stars: ✭ 487 (+24.55%)
Mutual labels:  fps, engine, collision, collision-detection, 3d-game-engine, 3d-engine
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+425.32%)
Mutual labels:  game, gamedev, engine, 3d, 3d-engine
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-46.8%)
Mutual labels:  game, engine, 3d-game-engine, opengl, 3d
Qfusion
Source code for cross-platform OpenGL gaming engine
Stars: ✭ 255 (-34.78%)
Mutual labels:  gamedev, opengl, 3d-engine, fps
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+853.45%)
Mutual labels:  game, gamedev, opengl, 3d
3D-Engine-OpenGL-4
3D Graphics Engine For Games | C++ OpenGL 4.1
Stars: ✭ 19 (-95.14%)
Mutual labels:  engine, 3d, 3d-game-engine, 3d-engine
Xray 16
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
Stars: ✭ 1,806 (+361.89%)
Mutual labels:  engine, 3d-game-engine, opengl, 3d-engine
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (+253.71%)
Mutual labels:  engine, opengl, 3d, fps
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-28.9%)
Mutual labels:  gamedev, 3d-game-engine, 3d, 3d-engine
Vulkan Renderer
A new 3D game engine using modern C++ and Vulkan API
Stars: ✭ 205 (-47.57%)
Mutual labels:  gamedev, engine, 3d-game-engine, 3d-engine
Fxgl
Stars: ✭ 2,378 (+508.18%)
Mutual labels:  game, gamedev, 3d-game-engine, 3d
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (-53.71%)
Mutual labels:  gamedev, engine, opengl, 3d
Vue Babylonjs
A ready-to-go 3d environment for Vue.js using Babylon.js
Stars: ✭ 356 (-8.95%)
Mutual labels:  game, gamedev, engine, 3d
Cute headers
Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
Stars: ✭ 3,274 (+737.34%)
Mutual labels:  game, collision-detection, collision, opengl
RendererEngine
2D - 3D Renderer Engine builds with OpenGL, SDL2, C++
Stars: ✭ 17 (-95.65%)
Mutual labels:  engine, 3d-game-engine, 3d-engine
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-15.35%)
Mutual labels:  opengl, 3d, 3d-engine
storm-engine
Game engine behind Sea Dogs, Pirates of the Caribbean and Age of Pirates games.
Stars: ✭ 636 (+62.66%)
Mutual labels:  engine, 3d-game-engine, 3d-engine
Overload
3D Game engine with editor
Stars: ✭ 335 (-14.32%)
Mutual labels:  gamedev, opengl, 3d-engine
Huejumper2k
2 Kilobyte 3D racing game in JavaScript
Stars: ✭ 236 (-39.64%)
Mutual labels:  game, 3d-game-engine, 3d
Tinyengine
Tiny OpenGL Wrapper / 3D Engine in C++
Stars: ✭ 251 (-35.81%)
Mutual labels:  engine, opengl, 3d-engine

exengine, a C 3D game engine.

Discuss | Website | TODO

What exactly is exengine?

exengine is a 3d engine that takes a slightly different approach than other libraries and engines do, in that it's a code-base you include directly into your own. Rather than using it as a static/shared library.

This approach allows easy and direct access to the engine back-end should you want to make modifications to suit your specific needs, so think of it as more of a template.

Assuming you don't want to set up your own build system (I can't blame you), you can clone the repo and use the existing build system and file structure as a starting template. It compiles on Linux, BSD, and Windows. It might compile and run on MacOS, but this isn't directly supported any more.

The contents of main.c/game.c are only supplied as examples to showcase how one might use the engine.

What are the features?

  • Simple and small
  • A straight-forward C99 codebase
  • A deferred* and forward renderer
  • Various light casters
  • Smooth shadow mapping
  • Normal & specular mapping
  • Half-kernel SSAO (deferred only)
  • IQM model loading
  • 3D model animation
  • Scene manager
  • Instancing
  • Polygon soup collision detection
  • Smooth collision response
  • Various cameras
  • More to come..

(External) Depends

  • A C99 compiler, preferably gcc. Clang and others should also work
  • OpenGL 3.3+
  • SDL2

Credits

Getting Started

Documentation

The current method of documentation is code comments, every engine header has extensive documentation as to its purpose and how one might use it. Better documentation will come in the near future.

Using & Compiling

Simply clone the repository and install the required libraries and compilers listed below for the OS you are using.

This only applies to those wanting to use the current build system and game code as a starting template, and not those wanting to include exengine into an existing project or build system.


Linux

sudo apt-get update
sudo apt-get install build-essential libsdl2-dev
cd src && make

The resulting binary will be in src/build/


Windows

Download and install Cygwin with the following packages. All required libraries for Windows are included in the codebase.

Alternatively switch to category view and set 'Devel' to install. This method takes up 1-2GB of space

mingw64-x86_64-gcc
make
zip

You can also install the Linux subsystem for Windows 10, after which you just need to run the following.

sudo apt update
sudo apt install mingw-w64 make zip
cd /mnt/c/Users/MyUsername/Desktop/exengine/src

After this compiling is the same as Linux, except for the addition of setting the OS variable.

cd C:\exengine\src (or wherever you've put this)
OS=Windows_NT make

the resulting .exe will be in src/build/


OpenBSD

Make sure you have the correct dependicies installed, the equivalent of linux using pkg_add. For OpenBSD specific you will need the 'gmake' and 'gcc' packages. The gcc package will install a more modern compiler as egcc in your path.

after this the compilation is almost the same as in linux, this time specificly using gmake (stands for GNU make).

cd src && gmake

Stand-alone (recommended)

Alternatively you can drop the exengine/ directory right into your own project and use it with your own build system. This method obviously takes more work and time.


Gallery

scrot scrot scrot scrot scrot scrot

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].