Follow work in progress: trello
A lightweight code base with powerful features that can be used for games and real-time graphics applications. This project focuses on data-oriented and multithreaded code with minimalistic procedural api's, sticking to orthodox c++ principles.
Features
- Cross Platform: Windows, MacOS, Linux, iOS, Android (wip).
- Supported Compilers: vs2017, Clang 6, Apple LLVM 9, Gcc 7.
- Rendering Backends: Direct3D11, OpenGL3.1+, OpenGLES3+, Metal (wip).
- Lightweight: Simple apis, shallow call stacks, minimal dependencies.
- Data-Oriented: Instruction and data cache friendly code for optimal performance.
- Fast: Handle large sceens with thousands or hundreds of thousands entities at fast framerates.
- Multithreaded: Async render, physics, audio and entity component system.
- Ecs: Entity component system and root motion animation system.
- Pmfx: High level data driven renderer, shader and post-processing system using json.
- Flexible: pmtech does not force you into any fixed way of working, you can configure it to run however you want and bring along any rendering strategy you like (forward, deferred, fwd+ etc).
- Low-level abstractions: Input, gamepad, timers, threads, window, os, file system, etc.
- Hot loading: Reload configs, shaders, models and textures in real time for rapid development.
- Tools: Graphical editor, volume texture / signed distance field generator.
- Examples: Show how to use the apis from basic usage to rendering techniques (forward, deferred, subsurface scattering, signed distance fields, volume textures), audio, physics and more.
- Build Pipeline: IDE project generation, Binary model and skeleton format, texture compression, platform agnostic shader compilation.
- Visit the wiki for more information.
Usage
Take a look at the getting started instructions.
Media




