tiny-ecs - ECS for Lua

  •        7

Tiny-ecs is an Entity Component System for Lua that's simple, flexible, and useful. Because of Lua's tabular nature, Entity Component Systems are a natural choice for simulating large and complex systems. For more explanation on Entity Component Systems, here is some basic info. Tiny-ecs also works well with objected oriented programming in Lua because Systems and Entities do not use metatables. This means you can subclass your Systems and Entities, and use existing Lua class frameworks with tiny-ecs, no problem. For an example on how to use tiny-ecs with object-oriented Lua, take a look at the demo branch, specifically the systems and entities sub-directories.

http://bakpakin.github.io/tiny-ecs/doc/
https://github.com/bakpakin/tiny-ecs

Tags
Implementation
License
Platform

   




Related Projects

Entitas-CSharp - Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity

  •    CSharp

Entitas is a super fast Entity Component System Framework (ECS) specifically made for C# and Unity. Internal caching and blazing fast component access makes it second to none. Several design decisions have been made to work optimal in a garbage collected environment and to go easy on the garbage collector. Entitas comes with an optional code generator which radically reduces the amount of code you have to write and makes your code read like well written prose. The optional code generator lets you write code that is super fast, safe and literally screams its intent.

entt - Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more

  •    C++

Consider it a work in progress. The whole API is also fully documented in-code for those who are brave enough to read it. Currently, EnTT is tested on Linux, Microsoft Windows and OS X. It has proven to work also on both Android and iOS. Most likely it will not be problematic on other systems as well, but has not been sufficiently tested so far.

entityx - EntityX - A fast, type-safe C++ Entity-Component system

  •    C++

NOTE: The current stable release 1.0.0 breaks backwards compataibility with < 1.0.0. See the change log for details.Entity Component Systems (ECS) are a form of decomposition that completely decouples entity logic and data from the entity "objects" themselves. The Evolve your Hierarchy article provides a solid overview of EC systems and why you should use them.

ecst - [WIP] Experimental C++14 multithreaded compile-time entity-component-system library.

  •    C++

Experimental & work-in-progress C++14 multithreaded compile-time Entity-Component-System header-only library. Successful development of complex real-time applications and games requires a flexible and efficient entity management system. As a project becomes more intricate, it’s critical to find an elegant way to compose objects in order to prevent code repetition, improve modularity and open up powerful optimization possibilities.


WickedEngine - C++ game engine focusing on modern rendering techniques.

  •    C++

Wicked Engine is an open-source game engine written in C++. The main focus is to be easy to set up and use, light weight, high performance, and graphically advanced. The full source code is provided with the MIT license, which means, anyone is free to use it for anything without additional considerations. The code shall not contain any parts with other licensing. The code is hosted on GitHub: https://github.com/turanszkij/WickedEngine For any questions, please open an issue there. From version 0.21.0 onwards, the engine was changed to use Entity-Component System and the old Object-Oriented system was dropped. It is not backwards-compatible, so assets/scripts made with the old system are unfortunately not usable. You can find a snapshot of the old Object-Oriented codebase (0.20.6) here, but it will not be updated anymore.

EntityComponentSystemSamples

  •    CSharp

Here you can find the resources required to start building with these new systems today. We have also provided a new forum where you can find more information and share your experiences with these new systems.

d-zone - An ambient life simulation driven by user activity within a Discord server

  •    Javascript

D-Zone is a graphical simulation meant to abstractly represent the activity in your Discord server. This is not meant for any actual monitoring or diagnostics, only an experiment in the abstraction of chatroom data represented via autonomous characters in a scene.

EntityJS - Entity-component javascript game engine

  •    Javascript

Entity-component javascript game engine

kivent - KivEnt is an entity-based game engine for Kivy

  •    Python

KivEnt is a framework for building performant, dynamic real-time scenes in Kivy for Python2 and Python3. At the moment it is 2d oriented. The only dependency for the kivent_core module is Kivy itself. Additional modules may have other requirements, such as kivent_cymunk module being based on Chipmunk2d and its cymunk wrapper. An entity-component architecture is used to control game object state and the logic of processing the game objects. This means that your game objects will be made up of collections of independent components that stricly hold data; each component corresponds to a GameSystem that will perform all data processing on the components, in the update loop each frame, and as a result of user interaction or other programmaticaly generated events. All memory for the built-in components is allocated statically: if you would like learn more about memory management, read here.

ashley - A Java entity system inspired by Ash & Artemis.

  •    Java

A tiny entity framework written in Java. It's inspired by frameworks like Ash (hence the name) and Artemis. Ashley tries to be a high-performance entity framework without the use of black-magic and thus making the API easy and transparent to use.Ashley lives under the Libgdx family but it does not force you to use that specific framework if you do not wish to do so.

Event-Driven Entity Tree for XNA

  •    

Ratatoskr is a component-based game entity framework which utilizes events to simplify the core object model. It is currently a work-in-progress (and a learning experience).

engo - Engo is an open-source 2D game engine written in Go.

  •    Go

A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is currently compilable for Mac OSX, Linux and Windows. With the release of Go 1.4, supporting Android and the inception of iOS compatibility, mobile has been be added as a release target. Web support (gopherjs) is also available.This table shows the current state of what's working and what's not. We are aiming to turn all No columns into Yes columns.

chocolatier - WIP ClojureScript game/engine using Pixi.js for rendering.

  •    Clojure

A work-in-progress web game engine for repl driven game development written in ClojureScript using Pixi.js as a rendering engine. Here's the working example game that includes tilesets, collision detection, animation, sprites, and user input.

EtherealEngine - C++ Game Engine and Editor

  •    C++

Get more details at codescene.io. It is written in a cross-platform manner using .

Glide - Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials

  •    Swift

glide is a SpriteKit and GameplayKit based engine for building 2d games easily, with a focus on side scrollers. glide is developed with Swift and works on iOS, macOS and tvOS. glide is developed with Entity-Component-System architecture. In short, this makes it easy to manage the code of your game, which might quickly get messy as you add more stuff. In addition to that, loads of building components common to 2d platformers that will get you quickly started is also included in the engine.

AFNER Named Entity Recognition system

  •    C++

AFNER is a C++ named entity recognition system that uses machine learning techniques. It is customisable to various domains. It also allows for multiple and overlapping named entity labels.

rifm - React Input Format & Mask, tiny (≈800b) component to transform any input component into formatted or masked input

  •    Javascript

Is a tiny (≈ 800b) component to transform any input component into formatted or masked input.

SSAS Entity Framework Provider community FAQ and online support documentation

  •    LINQ

This project is for SSAS Entity Framework Provider community FAQ and other community online support documentation (see Documentation tab > FAQ). SSAS Entity Framework Provider enables you to use LINQ and Microsoft ADO.NET Entity Framework to query SQL Server Analysis Servic...