Skip to content

Oleg-Grim/ecs

 
 

Repository files navigation

Make Games Not War

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. 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
Deterministic Operations Deterministic Operations like Random and GetHashCode in collections
Burst How to use burst
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
Essentials Here are essential packages for ME.ECS
Addons Here are addon packages for ME.ECS
Pathfinding Package Here is Pathfinding Package readme
Serializer Package Here is Serializer Package readme
Data Config Generator Data Config Generator with Google Spreadsheets
World Operations How to operate the world

Discord

https://discord.gg/SxJJPPNsSf

Contact Me

Telegram: https://t.me/chromealex
E-Mail: [email protected]
Facebook: https://www.facebook.com/chrome.alex

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)

About

ECS for Unity with full game state automatic rollbacks

Resources

License

Stars

Watchers

Forks

Packages

No packages published