def test_game_server_with_config(self):
        from pathlib import Path

        root_path = Path(__file__).parent.parent.parent.parent
        file_path = (root_path / "game_presets/0-basic_4p_21x21.txt").resolve()

        gc = GameConfig.from_file(file_path)
        server = SocketGameServer(max_nb_ticks=10,
                                  max_nb_players=100,
                                  game_config=gc,
                                  path=path,
                                  port=port)
        self.assertEqual(21, server.game_map.size)
        self.assertEqual(4, server.max_nb_players)
Beispiel #2
0
async def start() -> None:
    # Start the game
    if args.game_config is not None:
        root_path = Path(__file__).parent.parent.parent
        file_path = (root_path /
                     f"server/game_presets/{args.game_config}").resolve()
        game_config = GameConfig.from_file(file_path)

        game = SocketGameServer(
            max_nb_ticks=args.max_nb_ticks,
            min_nb_players=args.min_nb_players,
            max_nb_players=args.max_nb_players,
            start_delay_timeout=args.start_delay_timeout,
            team_names_by_token=json.loads(args.team_names_by_token)
            if args.team_names_by_token is not None else None,
            game_config=game_config,
            record_path=args.record_path,
            s3_bucket=args.s3_bucket,
            s3_path=args.s3_path,
            path=args.server_address,
            game_delay=args.game_delay,
            log_file=args.log_file,
            move_timeout=args.move_timeout,
        )
    else:
        game = SocketGameServer(
            max_nb_ticks=args.max_nb_ticks,
            min_nb_players=args.min_nb_players,
            max_nb_players=args.max_nb_players,
            start_delay_timeout=args.start_delay_timeout,
            team_names_by_token=json.loads(args.team_names_by_token)
            if args.team_names_by_token is not None else None,
            record_path=args.record_path,
            s3_bucket=args.s3_bucket,
            s3_path=args.s3_path,
            path=args.server_address,
            game_delay=args.game_delay,
            log_file=args.log_file,
            move_timeout=args.move_timeout,
        )

    await game.start()
    winner = await game.wait_for_game_to_finish()
    print(winner)
    print(
        "\nSleeping a bit, to give a chance to the participant to upload their stuff.\n"
    )
    time.sleep(2)
 def test_from_file(self):
     file_path = (root_path / "game_presets/0-basic_4p_21x21.txt").resolve()
     gc = GameConfig.from_file(file_path)
     self.assertEqual(21, gc.game_map.size)
     self.assertEqual(4, len(gc.spawn_positions))