• Stars
    star
    515
  • Rank 85,879 (Top 2 %)
  • Language
  • License
    MIT License
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ECS for Unity with full game state automatic rollbacks

ME.BECS now is available https://github.com/chromealex/ME.BECS

ME.ECS

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 rudp/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

Warning This repository not always contains actual submodule, so you should check the latest changes in submodule

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. Add packages (see Package Dependencies section).
  4. Be sure your submodule folder has a name Assets/ecs-submodule or Assets/ECS-submodule.
  5. 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.

Package Dependencies

    "com.unity.collections": "1.2.3",
    "com.unity.ui": "1.0.0-preview.18",
    "com.unity.addressables": "1.19.9",
    "com.unity.burst": "1.6.5",
    "com.unity.mathematics": "1.2.6",
    "com.unity.localization": "1.0.5",
    "com.unity.profiling.core": "1.0.0"

Example Repository

Pong Out - a classic pong game with fully functioning multiplayer made with ME.ECS

Submodule Repository

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

FAQ

FAQ

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
Memory Allocator How to use memory allocator
Deterministic Operations Deterministic Operations like Random and GetHashCode in collections
Burst How to use burst
World Operations How to operate the world
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
Create Timers How to create timers
Create Views How to register prefab in ME.ECS
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

ME.ECS Add-ons

Note To install modules you can use ME.ECS/Add-ons menu (all packages listed here: https://github.com/chromealex/ecs-submodule/blob/master/Addons.md).

Pathfinding

License: MIT
Pathfinding implementation: AStar, FlowField, NavMesh
https://github.com/chromealex/me.ecs-pathfinding
                                                                                                               

Physics

License: Unity
Unity Physics port (DOTS) with fixed-point math
https://github.com/chromealex/me.ecs-physics
                                                                                                               

Input

License: MIT
Input implementation for mouse/touch
https://github.com/chromealex/me.ecs-input
                                                                                                               

Destroy

License: MIT
Additional API to destroy entities by the time
https://github.com/chromealex/me.ecs-destroy
                                                                                                               

Goal-Oriented Action Planning (GOAP)

License: MIT
Goal-Oriented Action Planning (GOAP) implementation
https://github.com/chromealex/me.ecs-goap
                                                                                                               

Data Config Generator

License: MIT
Data Config Generator for Google Spreadsheets
https://github.com/chromealex/me.ecs-dataconfiggenerator
                                                                                                               

Addressable Views

License: MIT
Additional API to be able load addressables
https://github.com/chromealex/me.ecs-viewaddressables
                                                                                                               

Collections: DataObject

License: MIT
DataObject collections
https://github.com/chromealex/me.ecs-collections-dataobject
                                                                                                               

Collections: Intrusive

License: MIT
Intrusive collections
https://github.com/chromealex/me.ecs-collections-intrusive
                                                                                                               

Discord

https://discord.gg/SxJJPPNsSf

Contact Me




Inspired by


Mushroom Wars 2
Steam, iOS, Android, Switch, XBOXOne, PS4

Projects


Wild Wars
Mobile (iOS/Android)


Qubix Infinity
WebGL


Unreleased Project #1
Mobile (iOS/Android)

More Repositories

1

Unity3d.UI.Windows

Unity 3D UI (uGUI) Windows Extensions
C#
505
star
2

ME.BECS

Bursted Entity Component System
C#
138
star
3

UI.Windows-submodule

C#
42
star
4

ecs-submodule

C#
36
star
5

csharp-memory-allocator

Custom Memory Allocator for Unity with CopyFrom method
C#
28
star
6

Unity3D.UI.Windows.Core

Unity3D UGUI Windows Core
C#
22
star
7

Unity.iOS.OnDemand

Useful to reduce iOS app size to ~70mb and compress your assets data using 7z.
C
20
star
8

ME.ResourceCollector

C#
19
star
9

Morpeh

Fast and Simple ECS Framework for Unity3d
C#
17
star
10

TapticEngine

Taptic Engine with full source code for iOS and Android
C#
9
star
11

ME.Macros

Unity 3D Macros System
C#
9
star
12

Unity.MainThreadJob

Use this job type to schedule main-thread depends on your other jobs and which do NOT Complete.
C#
8
star
13

ME.ECSBurst

ME.ECS with burst systems
C#
8
star
14

ecs.example

ME.ECS Game Example
C#
7
star
15

me.ecs-goap

ME.ECS Essentials Package
C#
7
star
16

me.ecs-physics

ME.ECS Essentials Package
C#
5
star
17

Unity3D.UI.Windows.Addons.Console

C#
4
star
18

me.ecs-pathfinding

ME.ECS Essentials Package
C#
4
star
19

me.ecs-dataconfiggenerator

ME ECS Add-on Data Config Generator Package
C#
3
star
20

UI.Windows.V2

C#
3
star
21

me.ecs-fpmath

ME.ECS: Fixed-Point Math Package
C#
3
star
22

me.ecs-markers

ME.ECS: Markers
C#
3
star
23

Unity3D.UI.Windows.Addons.Linker

C#
2
star
24

Unity3D.UI.Windows.Addons.Ads

C#
2
star
25

Unity3D.UI.Windows.Addons.Functions

C#
2
star
26

Unity3D.UI.Windows.Addons.DevicePreview

C#
2
star
27

Unity3D.UI.Windows.Addons.Social

C#
2
star
28

Unity3D.UI.Windows.Addons.GameData

C#
2
star
29

Unity3D.UI.Windows.Addons.Analytics

C#
2
star
30

ecs-docs

JavaScript
1
star
31

me.ecs-entitytimers

ME.ECS: Entity Timers API
C#
1
star
32

me.ecs-dataconfigs

ME.ECS Add-on DataConfig Package
C#
1
star
33

me.ecs-sceneviewinitializer

ME.ECS: Scene View Initializers Package
C#
1
star
34

me.ecs-filterbag

ME.ECS FilterBag Package
C#
1
star
35

me.ecs-transform

ME.ECS Transform Hierarchy Package
C#
1
star
36

me.ecs-input

ME.ECS Essentials Package
C#
1
star
37

me.ecs-viewaddressables

ME ECS Add-on View Addressables Package
C#
1
star
38

me.ecs-components-camera

ME.ECS Components Camera
C#
1
star
39

Unity3D.UI.Windows.Addons.Audio

C#
1
star
40

me.ecs-destroy

ME.ECS Essentials Package
C#
1
star
41

me.ecs-collections-intrusive

ME.ECS Collections: Intrusive
C#
1
star
42

me.ecs-globalevents

ME.ECS: Global Events Essentials Package
C#
1
star