V-MAGE-EVAL-DEMO / run_game.py
Fengx1n's picture
first commit
504b2e4
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('--sample_rate', type=int, default=3, help='Sample rate for actions')
argparser.add_argument('--history_steps', type=int, default=3, help='Number of history steps to keep')
argparser.add_argument('--model_name', type=str, default='', help='Name of the model to use')
argparser.add_argument('--base_url', type=str, default='', help='Base URL for the game server')
argparser.add_argument('--api_key', type=str, default='', help='API key for authentication')
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)
sample_rate = args.sample_rate
history_steps = args.history_steps
base_url = args.base_url
api_key = args.api_key
print(f"Starting game: {game} at level {level}")
print(f"Action file: {action_file}")
print(f"Game id: {game_id}")
params = {
"model_path": args.model_name,
"base_url": base_url,
"api_key": api_key
}
stop_event = threading.Event()
stop_event.clear()
runner = PlaygroundPipelineRunner(
game=game,
level=level,
history_steps=history_steps,
action_file=action_file,
game_id=game_id,
stop_event=stop_event,
params=params,
sample_rate=sample_rate
)
runner.run()
stop_event.set()
run_lock = FileLock(os.path.join(".", "runs", "run.lock"))
with run_lock:
os.system(f"rm -rf {output_dir}")