A simple Entity-Component-System (ECS) that is implemented using Memory Arenas
Go to file
2026-01-23 12:56:52 +08:00
examples/example1 Update example with some platform specific defines for ease of use 2026-01-23 12:56:52 +08:00
test Update: make some linux specific changes 2026-01-22 20:50:56 +08:00
.clangd Update: Implement becs3.h in C89 2026-01-21 17:15:51 +08:00
.editorconfig Update: Implement becs3.h in C89 2026-01-21 17:15:51 +08:00
.gitignore initial commit 2026-01-16 17:36:44 +08:00
.gitmodules Fix: becs.h had a few bugs that I didn't catch around deleting entities 2026-01-22 18:05:43 +08:00
becs.h Fix: Bug with spawning where it would get stuck after reaching max entities 2026-01-22 22:35:20 +08:00
build.bat Update: Change build script to have a run option 2026-01-22 10:49:56 +08:00
build.sh Update build.sh 2026-01-22 08:22:03 +08:00
README.md Add: Central README.md 2026-01-22 22:36:50 +08:00

Barcelli Entity-Component-System (BECS)

This is an header only library implementing a Entity-Component-System in C89 using memory arenas. You can look at tests/main.c for an example of an implementation. This is an educational library, done in my free time. If you are interested in improving the design of this ECS, feel free to submit a pull request.

Instructions on Usage

Include becs.h and in exactly one file define BECS_IMPLEMENTATION before the include.

To setup your Maximum Entity Count and Maximum component count, define BECS_MAX_ENTITIES and BECS_MAX_COMPONENTS before including becs.h

Example:

#define BECS_MAX_ENTITIES 100
#define BECS_MAX_COMPONENTS 10

#define BECS_IMPLEMENTATION
#include <becs.h>

int main(void)
{
    /* your program goes here */
}

Systems