Crayon is an experimental purpose game engine, 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.
- Extensible through external code modules;
- Run on [x]macOS, [x]Windows, iOS, Android, WebAssembly from the same source;
- Stateless, layered, multithread render system with OpenGL(ES) 2.0+ backends;
- Entity component system with a data-driven designs;
- Unified access to 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.
The standardized interface to load data asynchronously from the
Commonly used utilities like pools, variants and so on.
Declare a struct as component, and specify the storage strategy. Internally, this
macro will impl a internal trait