Skip to content

ABC-Engine/ABC-ECS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!