DeepRTS ist ein leistungsstarkes Echtzeit-Strategiespiel für die Reinforcement-Learning-Forschung. Es ist aus Leistungsgründen in C++ geschrieben, bietet jedoch eine Python-Schnittstelle für eine bessere Verbindung mit Toolkits für maschinelles Lernen. Deep RTS kann das Spiel mit über 6.000.000 Schritten pro Sekunde und 2.000.000 Schritten beim Rendern von Grafiken verarbeiten. Im Vergleich zu anderen Lösungen wie StarCraft ist dies eine über 15.000 % schnellere Simulationszeit auf einem Intel i7-8700k mit Nvidia RTX 2080 TI.
Das Ziel von Deep RTS ist es, durch Reduzierung der Rechenzeit eine erschwinglichere und nachhaltigere Lösung für die RTS-KI-Forschung bereitzustellen.
Es wird empfohlen, den Master-Zweig für die neueste (und normalerweise beste) Version der Umgebung zu verwenden. Ich bin für jeden Beitrag zur Verbesserung der Umwelt dankbar.
Bitte verwenden Sie bei der Verwendung in Ihrer Arbeit das folgende Zitat!
@INPROCEEDINGS{8490409,
author={P. {Andersen} and M. {Goodwin} and O. {Granmo}},
booktitle={2018 IEEE Conference on Computational Intelligence and Games (CIG)},
title={Deep RTS: A Game Environment for Deep Reinforcement Learning in Real-Time Strategy Games},
year={2018},
volume={},
number={},
pages={1-8},
keywords={computer games;convolution;feedforward neural nets;learning (artificial intelligence);multi-agent systems;high-performance RTS game;artificial intelligence research;deep reinforcement learning;real-time strategy games;computer games;RTS AIs;Deep RTS game environment;StarCraft II;Deep Q-Network agent;cutting-edge artificial intelligence algorithms;Games;Learning (artificial intelligence);Machine learning;Planning;Ground penetrating radar;Geophysical measurement techniques;real-time strategy game;deep reinforcement learning;deep q-learning},
doi={10.1109/CIG.2018.8490409},
ISSN={2325-4270},
month={Aug},}
sudo pip3 install git+https://github.com/cair/DeepRTS.git
git clone https://github.com/cair/deep-rts.git
cd deep-rts
git submodule sync
git submodule update --init
sudo pip3 install .
10x10-2-FFA
15x15-2-FFA
21x21-2-FFA
31x31-2-FFA
31x31-4-FFA
31x31-6-FFA
Deep RTS bietet Szenarien, bei denen es sich um vorgefertigte Minispiele handelt. Diese Minispiele eignen sich gut, um Agenten für bestimmte Aufgaben zu schulen oder Algorithmen in verschiedenen Problemstellungen zu testen. Der Vorteil der Verwendung von Szenarien besteht darin, dass Sie Belohnungsfunktionen auf einfache Weise mithilfe von Kriterien entwerfen können, die je nach Abschluss der Aufgabe jeweils ein Belohnungs-/Strafsignal ausgeben. Beispiele für Aufgaben sind:
Deep RTS implementiert derzeit die folgenden Szenarien
GoldCollectFifteen
GeneralAIOneVersusOne
import random
from DeepRTS . python import Config
from DeepRTS . python import scenario
if __name__ == "__main__" :
random_play = True
episodes = 100
for i in range ( episodes ):
env = scenario . GeneralAI_1v1 ( Config . Map . THIRTYONE )
state = env . reset ()
done = False
while not done :
env . game . set_player ( env . game . players [ 0 ])
action = random . randrange ( 15 )
next_state , reward , done , _ = env . step ( action )
state = next_state
if ( done ):
break
env . game . set_player ( env . game . players [ 1 ])
action = random . randrange ( 15 )
next_state , reward , done , _ = env . step ( action )
state = next_state