All Projects → EcsRx → Ecsrx.unity

EcsRx / Ecsrx.unity

Licence: mit
A simple framework for unity using the ECS paradigm but with unirx for fully reactive systems.

Projects that are alternatives of or similar to Ecsrx.unity

Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (-45.11%)
Mutual labels:  ecs, unity3d, game-development
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-62.46%)
Mutual labels:  ecs, unity3d, game-development
Ecsrx
A reactive take on the ECS pattern for .net game developers
Stars: ✭ 288 (-9.15%)
Mutual labels:  ecs, unity3d, game-development
Ecs
LeoECS is a fast Entity Component System (ECS) Framework powered by C# with optional integration to Unity
Stars: ✭ 578 (+82.33%)
Mutual labels:  ecs, unity3d, game-development
Unity resources
A list of resources and tutorials for those doing programming in Unity.
Stars: ✭ 170 (-46.37%)
Mutual labels:  ecs, game-development
Ecs
ECS for Unity with full game state automatic rollbacks
Stars: ✭ 151 (-52.37%)
Mutual labels:  ecs, unity3d
Godex
Godex is a Godot Engine ECS library.
Stars: ✭ 307 (-3.15%)
Mutual labels:  ecs, game-development
Libplanet
Blockchain core in C#/.NET for persistent peer-to-peer online games
Stars: ✭ 293 (-7.57%)
Mutual labels:  unity3d, game-development
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (-43.53%)
Mutual labels:  ecs, unity3d
Spheredissolve
Customizable procedural spherical dissolve shader for Unity3D, for all your customizable procedural spherical dissolve needs!
Stars: ✭ 311 (-1.89%)
Mutual labels:  unity3d, game-development
Shipyard
Entity Component System focused on usability and speed.
Stars: ✭ 247 (-22.08%)
Mutual labels:  ecs, game-development
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (-6.62%)
Mutual labels:  ecs, game-development
Ape Ecs
Entity-Component-System library for JavaScript.
Stars: ✭ 137 (-56.78%)
Mutual labels:  ecs, game-development
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (-22.4%)
Mutual labels:  ecs, game-development
Noahgameframe
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
Stars: ✭ 3,258 (+927.76%)
Mutual labels:  unity3d, game-development
Flecs
A fast entity component system (ECS) for C & C++
Stars: ✭ 2,201 (+594.32%)
Mutual labels:  ecs, game-development
Egocs
EgoCS: An Entity (GameObject) Component System framework for Unity3D
Stars: ✭ 211 (-33.44%)
Mutual labels:  ecs, unity3d
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-69.09%)
Mutual labels:  ecs, game-development
Edyn
Edyn is a real-time physics engine organized as an ECS.
Stars: ✭ 113 (-64.35%)
Mutual labels:  ecs, game-development
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (-27.76%)
Mutual labels:  ecs, game-development

EcsRx.Unity

EcsRx is a reactive take on the common ECS pattern with a well separated design, this library builds off that basis and adds unity specific helpers and functionality.

Discord

If you do not need support for Unity and just want to use EcsRx in .net projects then head on over to the EcsRx repo https://github.com/EcsRx/ecsrx.

Features

Architecture

  • Simple ECS interfaces to follow
  • Fully reactive architecture
  • Favours composition over inheritance
  • Adheres to inversion of control
  • Lightweight codebase
  • Built in support for events (raise your own and react to them)
  • Built in support for pooling (easy to add your own implementation or wrap 3rd party pooling tools)
  • Built in support for plugins (wrap up your own components and systems and share them with others)
  • Fully testable and easy to mock

Unity specific

  • Simple unity conventions to follow (if you dont like it, easy enough to roll your own)
  • Built in support for editor viewing and editing of components
  • Built in support for dependency injection via Zenject (or other DI frameworks)
  • Lots of extension and architectural helpers to help MonoBehaviours interact with the core framework
  • Plays nicely with scene first style setups

Examples

There are a lot of example projects within the repository which you can clone and look at if you wish, or if you want more complex examples look at:

There is also a supplementary data-binding framework grofit/bindingsrx which can speed up development of UI related interactions by adding one/two way data binding on UI and other unity objects.

Requirements

HELP I DONT WANT UNITY 2018 .NET 4.5

The 1.0.0 release and above will target .net 4.5 and unity 2018, if you need to support earlier versions of unity then use the previous 0.* release stream.

Installation

You can take the unitypackage installation file from the relevent release.

  • EcsRx.Unity.unitypackage

The package contains a wrapper around the Core framework and some unity helpers. The core is provided as dlls which are built for release, if you want/need to access the debug versions pull down the EcsRx/EcsRx master version and build for debug and use those dlls.

Quick Start

  • Install EcsRx.Unity package
  • Install Zenject
  • Install UniRx

You will ultimately need to create a SceneContext from Zenject then create an your own implementation of EcsRxApplicationBehaviour where you can setup your systems and entities.

Much like any other ECS implementation you have the notion of entities (IEntity), components (IComponent) and systems (ISystem), although there are a few types of systems which you can implement based upon your needs, check out the docs folder for more information on these subjects as its more than just a 1 liner.

Docs

If you have any problems, or feel that you are still unsure of something head on over to our Discord Channel.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].