Quick Start
Launch a game environment
After installation, you can launch your game environment easily according the following code:
import random
from gobigger.server import Server
from gobigger.render import EnvRender
server = Server()
render = EnvRender(server.map_width, server.map_height)
server.set_render(render)
server.reset()
player_names = server.get_player_names_with_team()
# get [[team1_player1, team1_player2], [team2_player1, team2_player2], ...]
for i in range(10000):
actions = {player_name: [random.uniform(-1, 1), random.uniform(-1, 1), -1] \
for team in player_names for player_name in team}
if not server.step(actions):
global_state, screen_data_players = server.obs()
print('[{}] leaderboard={}'.format(i, global_state['leaderboard']))
else:
print('finish game!')
break
server.close()
You will see output as following. It shows the frame number and the leaderboard per frame.
[0] leaderboard={'0': 27, '1': 27, '2': 27, '3': 27}
[1] leaderboard={'0': 27, '1': 27, '2': 27, '3': 27}
[2] leaderboard={'0': 27, '1': 30.99935, '2': 30.99935, '3': 30.998700032499997}
[3] leaderboard={'0': 27, '1': 34.99610032498374, '2': 34.99675032498374, '3': 30.9961004874675}
[4] leaderboard={'0': 27, '1': 38.99025149484726, '2': 34.99155136485701, '3': 38.992201494805016}
[5] leaderboard={'0': 30.998700032499997, '1': 42.982054039382575, '2': 34.98635344444432, '3': 38.98620350437408}
[6] leaderboard={'0': 34.9961004874675, '1': 42.973458273284024, '2': 34.98115656353774, '3': 38.98020671345127}
[7] leaderboard={'0': 34.99270152230301, '1': 46.964264256209255, '2': 38.974660754429394, '3': 38.974211121796685}
[8] leaderboard={'0': 34.98930323688059, '1': 46.954872107798515, '2': 38.96686640687893, '3': 38.96821672917049}
[9] leaderboard={'0': 38.98525563106426, '1': 46.94548183767656, '2': 38.95907361808107, '3': 38.96222353533294}
...
We also build a simple env following gym.Env
. For more details, you can refer to gobigger/envs/gobigger_env.py
.
Customize your config
Class Server
use default config to generate a game environment. To customize your environment, you can change the parameters and parse them to Server
.
Add more players in a game
For example, you may want to allow 6 teams and 2 players per team in your game, and then please add team_num
and player_num_per_team
in config and parse it to Server
.
from gobigger.server import Server
server = Server(dict(
team_num=6,
player_num_per_team=2
))
Extend the game time
If you want to extend the game time to 20 minutes (1200 seconds), you can use the following codes.
from gobigger.server import Server
server = Server(dict(
match_time=1200
))
Change the size of the map
If you want to have a larger map, you can change map_width
and map_height
in config.
from gobigger.server import Server
server = Server(dict(
map_width=1000,
map_height=1000,
))