Hello! For almost two years I'm working on new game engine written fully in C (C99 to be precise). My goal was to write an engine with as much less dependecies as I could so it can be easily built and ready to use. Also it does not require you to build it separately - just add two files to your project. Now I think its the time to show it to everyone - it has no fancy name - it called just Dmitry's Engine - https://github.com/mrDIMAS/DmitrysEngine
It has following features (shameless copy-paste from github page)
- Single compilation unit - no need to build as separate library: just add de_main.h and de_main.c to your project.
- C99 with full compatibility with C++.
- FBX support - both ASCII and binary
-
Scene graph with these nodes:
- Base (pivot)
- Mesh
- Light
- Camera
- Particle system
-
Automatic assets (resources) management
- Textures
- Models
- Sound buffers
-
Modern rendering techniques, renderer based on OpenGL 3.3 Core.
- Deferred shading
- Normal mapping
- Skeletal animation
- Instancing
- Particle systems (very simple for now)
-
Sound
- 2D + 3D
- WAV format support
- Streaming for large sounds
- TTF fonts support (compound characters support is not implemented yet)
-
Advanced GUI (inspired by WPF) with declarative UI creation using designated initializers with these widgets:
- Window
- Text box
- Text block
- Border
- Button
- Scroll bar
- Scroll viewer
- Scroll content presenter
- Canvas
- Grid
- Slide selector
- Image
- Check box
- Path finding (classic A* algorithm)
- TGA image loading
- Ray casting
- Position-based physics
- Built-in save/load functionality via object visitor - state of engine can be saved/loaded just in a single call.
- Documentation - almost every function of the engine has description in Doxygen format.
- Extremely fast compilation, thus very low iteration times - feature can be tested very fast.
- Easy to hack and modify
Currently the engine lacking tutorials and standalone examples, but there is a relatively big example - the game (https://github.com/mrDIMAS/Shooter) I'm writing using the engine - it can be used as good source of code examples.