Skip to content

njmayes/LEntity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


LEntity

A sparse set implementation of an Entity Component System.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Acknowledgments

About The Project

LEntity is an implementation of an Entity Component System, which is a data-oriented game design pattern which allows for a flexible and fast way to create Entities when making a game, and attach Components to them. It was originally created as part of a small game engine I am developing called Labyrinth, however I decided to separate it for easier development and testing.

LEntity uses a sparse set implementation which allows for components to be stored contiguously in memory. Each component has its own manager which stores the components in chunks in order to allow for an uncapped number of entities with components stored dynamically and efficiently, rather than hogging up lots of memory in order to reserve space for all the possible components.

(back to top)

Getting Started

LEntity currently only supports premake, but it would probably not be too hard to add support for another build system. I intend to look into this in the future.

Prerequisites

LEntity requires:

  • C++17
  • A compiler that supports the __FUNCSIG__ or __PRETTY_FUNCTION__ preprocessor macros.

Installation

  1. Clone the repo
    git clone https://github.com/amayesingnathan/LEntity.git
  2. Run the setup script in the scripts folder. Currently only windows batch and linux bash scripts are provided.
    ./scripts/setup.sh
  3. Follow prompts to download premake on first installation. This will generate project files for windows or linux.

(back to top)

Usage

In development...

(back to top)

Roadmap

  • Groups
  • Improved testing and benchmarking
  • Expand registry API

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion or feedback that would make this better, please open an issue with the tag "enhancement". Feel free to fork the repo and make a pull request, however this is only a personal project so I may not respond quickly.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

About

An ECS implementation originally created as part of the Labyrinth engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages