Popularity
4.5
Growing
Activity
3.3
-
142
11
10

Description

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.

Monthly Downloads: 79
Programming language: Rust
License: Apache License 2.0
Tags: GUI     Graphics     Game development     Ecs     Entity-component     Game-dev     Multithread    
Latest version: v0.7.1

Crayon alternatives and similar packages

Based on the "Game development" category

Do you think we are missing an alternative of Crayon or a related project?

Add another 'Game development' Package

README

What is This?

Build status Codecov Documentation Crate License

Crayon is a small, portable and extensible game framework, which loosely inspired by some amazing blogs on bitsquid, molecular and floooh.

Some goals include:

  • Intuitive lifetime free interfaces and extensible through external code modules;
  • Run on PCs, Mobiles and Web browsers from the same source;
  • Stateless, layered, multithread render system with OpenGL(ES) 3.0 or WebGL 2.0 backend;
  • Simplified assets workflow and asynchronous data loading from various filesystem;
  • Unified interfaces for handling input devices across platforms;
  • Built from the ground up to focus on multi-thread friendly with a work-stealing job scheduler;
  • etc.

This project adheres to Semantic Versioning, all notable changes will be documented in this [file](./CHANGELOG.md).

Quick Example

For the sake of brevity, you can als run a simple and quick example with commands:

git clone git@github.com:shawnscode/crayon.git && cd crayon/examples
cargo run --bin render_texture

You can also check out [examples](./examples) folder for screenshots.

Assets Workflow

The asset workflow comes with the version 0.5.0. During the development, the assets could be stored in formats which could producing and editing by authoring tools directly, and it will be compiled into some kind of effecient format for runtime (which is dependent on platform and hardware devices usually).

The assets manipulation codes are placed under crayon-tools, checks out the repository for further details.

Platform-Specific

The WebAssembly supports is based on wasm-bindgen and web-sys, you could find detailed build instruction in the documents. And there is a simple wasm template under [tools](./tools/wasm-template) folder might helps.

Screenshots

[ModelViewer](./examples/screenshots/model_viewer.png)


*Note that all licence references and agreements mentioned in the Crayon README section above are relevant to that project's source code only.