3 releases

0.1.2 Mar 30, 2021
0.1.1 Jun 16, 2020
0.1.0 May 18, 2020

#1487 in Game dev


Used in covalent_gl

Apache-2.0

57KB
983 lines

Crate name available

This crate name is available to whoever wants it. Please email thirdsgames2018 at gmail.com.


lib.rs:

The covalent crate is a fast, safe, data-driven, modular game engine.

Goals

Covalent aims to accomplish the following goals, in this order (top is most important)

  • Modularity. It should be relatively straightforward to rip out a part of covalent's architecture and replace it with your own code if you need it. You should be able to choose between many different options for your specific use case. For example, covalent uses an entity-component system (ECS).
  • Safety. In applications as complex as a game, obscure bugs can surface often. Covalent aims to make sure that your code is as safe as possible, leveraging Rust's type system and borrow checker to avoid race conditions and other similar problems.
  • Speed. Covalent uses the rayon crate along with a thread-safe entity-component system to automatically spread your work across all available CPU cores.

Non-Goals

Covalent also specifically aims to not achieve certain outcomes.

  • Integrated game development platform. Due to covalent's modularity, it would be impossible to create a Unity/Unreal/Godot-style development app suited to every game. Instead, it would be a better idea to write tools that allow you to make your game inside the game itself.

Dependencies

~2.5MB
~46K SLoC