Crayon is a small, portable and extensible game framework, which written with a minimalistic modular design philosophy. Its built from the ground up to focus on cache friendly data layouts in multicore environments with entity-component based architecture.
Some goals include:
- Extensible through external code modules;
- Run on macOS, Linux, Windows, iOS, Android from the same source;
- Stateless, layered, multithread render system with OpenGL(ES) 3.0 backends;
- Entity component system with a data-driven designs;
- Unified interface for handling input devices across platforms;
- Asynchronous data loading from various filesystem;
Please read the documents under modules for specific usages.
For the sake of brevity, you can also run a simple and quick example with commands:
git clone firstname.lastname@example.org:shawnscode/crayon.git && cd crayon/crayon-examples cargo run imgui
A unified application model across all target platforms.
The entity component system with a data-orinted designs.
A stateless, layered, multithread graphics system with OpenGL backends.
Provides unified access to input devices across platforms.
This module contains the math utils that mainly comes from
The standardized interface to load data asynchronously from the
Commonly used utilities like pools, variants and so on.