A machine learning game framework based on Pygame
Project description
MLGame
這是一個遊戲AI競賽的框架,依照此框架所開發的遊戲,可以透過AI來玩遊戲,並進行AI競賽。
Table of Contents
! 重要 !
- 此次更新為大幅度更新專案架構,原有的指令方式、遊戲皆無法執行,因此請注意遊戲與MLGame的搭配。
使用方式
終端機範例
-
列出 help 文件
python -m mlgame -h
-
命令列格式
python -m mlgame [options] <game_folder> [game_params]
- 執行打磚塊遊戲
python -m mlgame \ -f 120 -i ./path/to/ai/ai_client_file_name.py \ ./path/to/game/arkanoid \ --difficulty NORMAL --level 3
- AI和遊戲的資料夾路徑可以使用
相對路徑
或是絕對路徑
- 遊戲參數
game_params
須參考各個遊戲
- AI和遊戲的資料夾路徑可以使用
- 執行打磚塊遊戲
位置引數(Positional Argument)
game_folder
required
- 遊戲資料夾所在的路徑,此路徑下需有
config.py
功能性引數(Functional Argument)
options
--version
顯示MLGame版本號-h
,--help
- 提供參數的說明
-f
FPS
,--fps
FPS
- 設定遊戲的遊戲更新率(frame per second),遊戲預設為每秒更新30次。
default
:30
-1
,--one-shot
- 表示遊戲只執行一次,沒有加上這個參數,遊戲皆會不斷重新執行。
default
:False
--nd
,--no-display
- 加上此參數就不會顯示螢幕畫面。
default
:False
--ws_url
WS_URL
- 加上此參數,會建立一個websocket connection,並將遊戲過程中的資料傳到指定的路徑,若路徑失效,則遊戲無法啟動。
-i
AI_Client
,--input-ai
AI_Client
- 指定要玩遊戲的AI,AI的檔案中,需要包含
MLPlay
這個class。 - 若有多個玩家,可直接參考下方案例,路徑可以使用絕對路徑與相對路徑。
-i ./path/to/ai/ai_01.py -i ./path/to/ai/ai_02.py
- AI數量需符合遊戲需求,每個遊戲都會有最小值與最大值,不足的會以最後一個AI自動補足,多的會自動刪去。
- 遊戲若需要2個AI,給到1個AI則會同時扮演1P 2P
- 遊戲若需要2個AI,給到3個AI則會自動排除最後一個
- 指定要玩遊戲的AI,AI的檔案中,需要包含
-o
output_folder
,--output-folder
output_folder
- 將遊戲過程儲存到特定資料夾中,會自動建立一個時間戳記資料夾來儲存每一幀的圖片。
- 此資料夾需要可讀寫,並且為有效路徑。
- 若是沒有加上
-1
,會不斷的紀錄遊戲結果。 - 此選項會影響到執行效能,開啟後覺得卡頓屬於正常現象。
-r
progress-folder
,--progress-folder
progress-folder
- 將遊戲每個 frame 儲存到特定資料夾中,會自動建立一個時間戳記資料夾來儲存各 frame 的內容,以檔案分開。
- 可透過
-p
,--progress-frame-frequency
指定一個檔案內的 frame 數量。 - 檔案內容為 json,檔案名稱代表此檔案由哪個 frame 開始紀錄。
- 此資料夾需要可讀寫,並且為有效路徑。
-p
progress-frame-frequency
,--progress-frame-frequency
progress-frame-frequency
- 與
-r
,--progress-folder
搭配。 - 可指定一個檔案內的 frame 數量。
- 與
--ns
,--no-sound
- 預設會開啟音效設定,加上此參數會關閉音效。
--debug
- 顯示debug 資訊,並紀錄
debug.log
檔案
- 顯示debug 資訊,並紀錄
game_params
optional
- 執行遊戲的參數依照每個遊戲有所不同,格式為
--name_of_params
value_of_params
- type
- int :
0
1
-1
1.5
- str :
"0"
"hello"
"NORMAL"
- list:
0,1
-1,1000,111
abc,cde,12
- path:
./relative_path_to_file/file.txt
,/absoulute_path_to_file/file.dat
- int :
畫面控制
- 遊戲執行可以使用
I
J
K
L
進行平移 - 使用
U
O
放大縮小 - 使用
H
開啟或關閉部分資訊 - 使用
P
暫停遊戲畫面,暫停期間,遊戲邏輯不會運作,但仍可以調整畫面。
相關專案
- PAIA-Desktop
- 範例遊戲 easy_game
- 打磚塊 arkanoid
- 乒乓球 pingpong
- 賽車 Racing Car
- 迷宮自走車 Maze Car
Future Work
- Non-python Client Support
- test case
- 遊戲開發文件
Change Log
View CHANGELOG.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mlgame-10.5.2.tar.gz
(116.8 kB
view details)
Built Distribution
mlgame-10.5.2-py3-none-any.whl
(49.1 kB
view details)
File details
Details for the file mlgame-10.5.2.tar.gz
.
File metadata
- Download URL: mlgame-10.5.2.tar.gz
- Upload date:
- Size: 116.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8cbf0f262dc3ce16ec28bcb15dca81aa026c20eb4ea32e6c966101a08eb306f |
|
MD5 | 7b06c5b903af51c1bbbd38395614de90 |
|
BLAKE2b-256 | 5cf3579852793373d462ab0e97b1265dae7cf545585bd86d6aa005027f44ceb8 |
File details
Details for the file mlgame-10.5.2-py3-none-any.whl
.
File metadata
- Download URL: mlgame-10.5.2-py3-none-any.whl
- Upload date:
- Size: 49.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98646d899b2630bc3d76f5b38bd326bfad61659047cafdf09282be745a2572b9 |
|
MD5 | 52298fb7bd6e07008179de5288e0fd1b |
|
BLAKE2b-256 | 9f8a97890cb67653f0a54500ca8103216dd183348e72913b51e6810015af0703 |