Skip to content

3dgoose/WIPE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIPE

WIPE is a 3D graphics engine written purely C99 with little dependencies.

It aims to be fast and portable : it should work fine on any machine having OpenGL 2.0 and SDL2.

OpenGL

greenCube

Features

  • Written in C99
  • Works on any machine with OpenGL 2.1 or higher
  • Nuklear UI
  • Linux, BSD, MacOS and Windows !

Design

I decided to use leagecy OpenGL (fixed pipeline) for most of this project because it's much simpler then writing shaders. There will be some, for post-processing and the sake of usability in modern games.

This engine isn't meant to be used in the conception of the next DOOM, with bleeding edge technology, RTX and PBR. But if you want to make a Quake-3 like graphics, go for it !

External dependencies

To compile, you must have :

Libraries used

Thanks to the developers of SDL2 and Nuklear ! Every lib is the copyright of its respective... copyright holder?

Getting the engine

Compiling

You can compile using CMake, and if on Windows, MinGW makefiles :

UNIX:

cmake -B build
cmake --build build --config Release

Windows :

cmake -B build -G "MinGW Makefiles"
cmake --build build --config Release

Technical info

Maps and models

WIPE got its own geometry format : Wipe Models, tailored for this engine. It's a binary file containing vertex data (color & position) and textures.

Maps are also custom : another binary format

Examples

Please see demo.c for a live example !

!> [!NOTE]

You need to define some variables in the main loop, otherwise they will be filled with garbage.

Progress so far

  • Camera
  • Movement
  • Coordinates display
  • VBO drawing
  • Transform function
  • Models
  • Maps
  • Light
  • Post-process
  • Optimize engine

License and contribution

This project is published under the Zlib license. Feel free to contribute by forking or patchsets. Credits and mention is not mandatory, though greatly appreciated.

Releases

No releases published

Contributors