ABC-ECS

Crates.ioABC-ECS
lib.rsABC-ECS
version0.2.0
sourcesrc
created_at2023-12-07 18:25:12.913306
updated_at2024-04-16 18:29:44.568937
descriptionA simple, fast, and flexible Entity-Component-System library for Rust.
homepage
repositoryhttps://github.com/ABC-Engine/ABC-ECS
max_upload_size
id1061255
size78,473
Ethan Almloff (NoodlesOfWrath)

documentation

README

Performance

This ECS was built with usability in mind. That being said it is only a pseudo-ECS. As needed you can use either the run or single_entity_step and pre-step to utilize the multithreading we offer. As needed you can switch between these two methods. This ECS can be really performant if you need it to be.

ABC Game Engine - Simple ECS Framework

This Rust project provides a basic framework for managing game entities, components, and systems in the ABC Game Engine using an Entity Component System (ECS) approach.

Quick Example

Create a World:

use ABC_ECS::World;

struct Position {
    x: f32,
    y: f32,
}

struct Velocity {
    x: f32,
    y: f32,
}

fn main(){
    let mut world = World::new();

    let entities_and_components = &mut world.entities_and_components;
    // Add an Entity and Components:
    let entity = entities_and_components.add_entity();

    // Add components like Position and Velocity
    entities_and_components.add_component_to(entity, Position { x: 0.0, y: 0.0 });
    entities_and_components.add_component_to(entity, Velocity { x: 1.0, y: 1.0 });

    // or you can do it in one step:
    let entity = entities_and_components
        .add_entity_with((Position { x: 0.0, y: 0.0 }, Velocity { x: 1.0, y: 1.0 }));
}

Documentation

Visit the docs here.

Contributing

Contributions are welcome! Start by filing an issue and we can work forward from there! If you're not sure what to work on but you want to help Join the discord and ping me, I'm happy to help!

Commit count: 47

cargo fmt