// Use this for initialization void Start() { systems = new List <ISystemInterface>(); entities = new PlayerEntities(); enemyEntities = new EnemyEntities(); entities.Init(entityCount); enemyEntities.Init(enemyEntityCount); // System addition order matters, they will run in the same order systems.Add(new GravitySystem()); systems.Add(new ForceSystem()); systems.Add(new InputSystem()); systems.Add(new MoveSystem()); systems.Add(new CollisionSystem()); systems.Add(new WorldBoundsSystem()); systems.Add(new RenderingSystem()); foreach (var system in systems) { system.Start(this); } }