Skip to content
/ ecs Public
forked from chromealex/ecs

ECS for Unity with full game state automatic rollbacks

License

Notifications You must be signed in to change notification settings

DangoRyn/ecs

 
 

Repository files navigation

ME.ECS - it's ECS implementation for Unity Engine with full state automatic rollbacks. In general ME.ECS could be used for multiplayer real-time strategy games (or any tcp-based) because of Network support out of the box with automatic rollbacks. You can set up tick time for your game and ME.ECS will store your state and automatically sync game instances using minimum traffic (just user RPC calls, no full game sync required).


License: MIT

Installation

Using submodule

  1. Download or add as a submodule this repository https://github.com/chromealex/ecs-submodule.
  2. Create an empty file called csc.gen.rsp inside Assets folder. Your file should have the path Assets/csc.gen.rsp.
  3. In Package Manager install Burst (tested with version 1.3.9).
  4. In Package Manager install Unity Collections (tested with version 0.9.0-preview.6). Note: to find unity collections you need to choose "Add package from git URL" and fill it with "com.unity.collections".
  5. In Package Manager install Unity Mathematics (tested with version 1.2.1).
  6. Be sure your submodule folder has a name Assets/ecs-submodule or Assets/ECS-submodule.
  7. You are ready to Initialize Project.

Using Unity Package Manager

  1. Create an empty file called csc.gen.rsp inside Assets folder. Your file should have the path Assets/csc.gen.rsp.
  2. Open Packages/manifest.json file.
  3. Add ME.ECS to your dependencies section:
{
  "dependencies": {
    [HERE ARE OTHER PACKAGES]
    "com.me.ecs": "https://github.com/chromealex/ecs-submodule.git"
  }
}
  1. You are ready to Initialize Project.

Example Repository

https://github.com/chromealex/ecs.example

Submodule Repository

https://github.com/chromealex/ecs-submodule

Glossary

Link Description
Video Tutorials Here are some links to youtube channel which shows how to use some features
Classes All classes and structures used in ME.ECS
Deterministic Operations Deterministic Operations like Random and GetHashCode in collections
Default Modules Describe default modules included in ME.ECS by default
Create World Describe how to create new world and set up your empty project
Create Feature How to create new feature
Create System How to create new system
Create Module How to create new module
Create Entity How to create new entity
Create Component How to create new component
Create Filter How to create new filter
Create Marker How to create new marker
Register Prefabs How to register prefab in ME.ECS
Instantiate View How to instantiate view from previously registered prefab
Update Views How to update views with entity data
Send User Input How to send user inputs to systems
Send UI Events How to send events from UI to systems
Receive User Input How to receive markers in systems
Send and Receive RPC Calls How to register object in NetworkModule, send and receive RPC packages
Defines Define usage
Data Configs How to create and use data configs
Global Events How to create and use global events
Code Generators Code Generators usage
Pathfinding Package Here is Pathfinding Package readme
Serializer Package Here is Serializer Package readme
Data Config Generator Data Config Generator with Google Spreadsheets

Contact Me

Telegram: https://t.me/chromealex
E-Mail: chrome.alex@gmail.com
Facebook: https://www.facebook.com/chrome.alex

How It Works

Update

About

ECS for Unity with full game state automatic rollbacks

Resources

License

Stars

Watchers

Forks

Packages

No packages published