Update README
Update license year
Add unit testing for `EntityIndex`
An absurd Entity Component System for LÖVE.
camus
is a Lua module for the LÖVE game framework, and it
lets you write simple, performant, and manageable game logic through the
Entity Component System (ECS) paradigm. To be precise, camus
is
targeted at LÖVE and its version of LuaJIT. camus
is capable of
working outside of this environment with modifications--though it is not
tested outside of this environment.
To use camus
in your project, drop the camus/
folder into your location
of choice and require it like so:
local camus = require "path.to.camus"
local Context = camus.Context
local System = camus.System
Additionally, camus
unashamedly borrows from other ECSs within the LÖVE
ecosystem and provides convenient namespace functions:
local camus = require "path.to.camus"
camus.globalize()
-- camus' modules, Context, System, ComponentArray, and so on, are now
-- accessible in the global namespace!
local context = Context()
This project was born from wanting to learn how to make an ECS and
having some gripes with others already in the LÖVE ecosystem. These
gripes are lazy, petty, and not actually worth rolling your own.
While camus
is performant and pleasing to use, the following modules are
(1) mature and (2) may better fit your particular use-case.
The following are resources I consulted or encountered in the course of making this module. These are the time-tested pages who have an excessive count of backlinks throughout the Web and novel pages who provide unique insights.
README.md
of his project page. It is
concise, and it provides everything you need to know if you are quick to
get your hands dirty.