private IHumanPlayer startupGameEnvironment(NewGame newGameDTO) {
date.setStartYear(newGameDTO.getStartYear());
GameFactory gameFactory = serverContext.getBean(GameFactory.class);
CityFactory cityFactory = serverContext.getBean(CityFactory.class);
ShipFactory shipFactory = serverContext.getBean(ShipFactory.class);
gameFactory.createMap(newGameDTO.getMapName());
LocationTracker locationTracker = serverContext.getBean(LocationTracker.class);
serverContext.getBean(StartNewGameBean.class);
IGame game = gameFactory.createGame(newGameDTO.getObjective(), newGameDTO.getDifficulty(), newGameDTO.getSpeed(), newGameDTO.isSingleplayer());
ICity homeCity = cityFactory.createCityByName(newGameDTO.getHometown());
IHumanPlayer player = gameFactory.createPlayer(newGameDTO.getFirstName(), newGameDTO.getLastName(), homeCity, newGameDTO.isMale(), newGameDTO.getDifficulty().getStartingCapital(), EPlayerColor.BLUE);
IShip ship = shipFactory.createCrayer(shipNameLoader.getRandomName(), EShipUpgrade.LEVEL1, 350);
ship.setOwner(player);
player.addShip(ship);
player.addSelectableVessel(ship);
ship.setLocation(homeCity.getCoordinates());
locationTracker.add(ship);
server.startGame(game, 1);
server.startStandaloneGame(player);
serverContext.getBean("startNewGameHandler");
return player;
}