V-MAGE-DEMO / run_game.py
Fengx1n's picture
Initial DEMO
e53fda1
import argparse
import pickle
import threading
import time
import os
import sys
from filelock import FileLock
from runner.playground_runner import PlaygroundPipelineRunner
argparser = argparse.ArgumentParser(description='Run the game')
argparser.add_argument('--game', type=str, default='RaceGame', help='Game to play')
argparser.add_argument('--level', type=int, default=1, help='Level to play')
argparser.add_argument('--action_file', type=str, default='', help='File to store actions')
argparser.add_argument('--game_id', type=str, default='', help='Game id')
argparser.add_argument('--params_file', type=str, default='', help='File to store parameters')
args = argparser.parse_args()
game = args.game
level = args.level
action_file = args.action_file
game_id = args.game_id
output_dir = os.path.join(".", "runs", game_id)
params_file = args.params_file
print(f"Starting game: {game} at level {level}")
print(f"Action file: {action_file}")
print(f"Game id: {game_id}")
params = None
if params_file != "":
try:
params = pickle.load(open(params_file, "rb"))
print(f"Loaded params from file: {params}")
except Exception as e:
print(f"Params : {e}")
stop_event = threading.Event()
stop_event.clear()
runner = PlaygroundPipelineRunner(
game=game,
level=level,
history_steps=3,
action_file=action_file,
game_id=game_id,
stop_event=stop_event,
params=params,
)
runner.run()
stop_event.set()
run_lock = FileLock(os.path.join(".", "runs", "run.lock"))
with run_lock:
os.system(f"rm -rf {output_dir}")