public GameService(Action <string> logAction) { m_log = logAction; m_worldEventsLog = new GameEventsLog(); Logger.LogItemReceived += logItem => LogMessage(logItem.ToString()); m_playerToPlaneMapping = new Dictionary <Guid, Plane>(); World = new GameWorld(new Size(800, 800)); World.AddGravityBoundsWithPlanets(50, 13); //World.AliensAppearingStrategy = new BasicAliensAppearingStrategy(World, TimeSpan.FromSeconds(60)); World.AliensAppearingStrategy = new SingleAliensAppearingStrategy(World); World.GameObjectStatusChanged += GameObjectStatusChangedHandler; World.BonusApplied += BonusAppliedHandler; World.Explosion += ExplosionHandler; Task.Factory.StartNew(GameWorldUpdate); }