nengine
Cross-Platform Game Engine
A complete game engine built from scratch over 20+ years of solo development. Multi-platform, multi-backend, with custom scripting language, physics integration, and a full asset pipeline. The kind of thing you build when you refuse to compromise.
* Lines of code comparisons are approximate. nengine includes extensive multi-backend support.
Engine Modules
Modular architecture, 2GB+ of source code
Renderer
876 MBMulti-backend, deferred+forward, PBR, shadows, post-fx
Video
304 MBCapture, frame servers, codec integration
GUI
202 MBWidget system, layouts, themes, FBO rendering
Sound
199 MBFMOD, FFmpeg, streaming, codecs
Network
182 MBTCP/UDP, HTTP server, protocol stack
Graphics
93 MBImage processing, filters, procedural textures
Compression
76 MBLZ4, LZMA, Zstd, BZip2, UCL, LZO
Physics
56 MBMulti-backend, rigid/soft bodies, joints
Core
53 MBThreading, VFS, plugins, memory, logging
Scripts
32 MBCustom VM, C-like language, vec3/mat4 native
Rendering Pipeline
9 graphics backends, deferred + forward
- Deferred rendering with GBuffer + MRT
- Forward+ rendering path
- PBR materials with IBL
- Shadow mapping (PCF, VSM)
- SSAO, Bloom, DOF, Motion Blur
- 14 tone-mapping operators
- FXAA, SAA anti-aliasing
- Skeletal animation + skinning
- Terrain rendering with LOD
- Particle systems
Physics Integration
6 physics engines, unified API
Simulation
- Rigid bodies
- Soft bodies
- Joints & constraints
- Vehicle controller
Collision
- Mesh colliders
- Raycasting
- Trigger volumes
- Character controller
Scripting Engine
Custom C-like language with VM
// Custom scripting language with native 3D types
int render() {
vec3 v0, v1, v2;
v0 = vec3(1.0, 2.0, 3.0);
v1 = v0 * 2.0; // Vector operations
v2 = normalize(v0); // Built-in math
mat4 proj = perspective(45.0, 1.77, 0.1, 1000.0);
mat4 view = lookAt(v0, v1, vec3(0, 1, 0));
printf("v2: %f %f %f\n", v2.x, v2.y, v2.z); // Swizzling
return 1;
}
int main() {
printf("Script started\n");
return render();
} Platform Support
From consoles to web
Development Tools
Complete toolchain
Shader Editor
Visual node-based shader graph editor
Mesh Viewer
Interactive 3D mesh inspection
Terrain Editor
Heightmap editing and generation
Package Manager
.npk archive creation (npm-like)
PRT Compiler
Precomputed Radiance Transfer
Script Engine
Scripting runtime and debugger
Development Timeline
Two decades of evolution
Project Start
First lines of code. OpenGL 1.x, basic rendering.
Console Ports
PlayStation 3 (GCM/PSGL) and Wii (GX) backends.
Physics Integration
Multi-backend physics: Bullet, Havok, PhysX, ODE.
Mobile Support
Android NDK, OpenGL ES 2/3, touch input.
Modern Rendering
OpenGL 4.6, deferred rendering, PBR pipeline.
Vulkan Backend
Active development. Swapchain, framebuffers, MRT.