DeepRTS est un jeu de stratégie en temps réel haute performance destiné à la recherche sur l'apprentissage par renforcement. Il est écrit en C++ pour plus de performances, mais fournit une interface Python pour une meilleure interface avec les boîtes à outils d'apprentissage automatique. Deep RTS peut traiter le jeu à plus de 6 000 000 pas par seconde et 2 000 000 pas lors du rendu graphique. Par rapport à d'autres solutions, telles que StarCraft, le temps de simulation est plus de 15 000 % plus rapide sur Intel i7-8700k avec Nvidia RTX 2080 TI.
L’objectif de Deep RTS est d’apporter une solution plus abordable et durable à la recherche sur l’IA RTS en réduisant le temps de calcul.
Il est recommandé d'utiliser la branche principale pour la version la plus récente (et généralement la meilleure) de l'environnement. Je suis reconnaissant pour toute contribution concernant l’amélioration de l’environnement.
Veuillez utiliser la citation suivante lorsque vous l'utilisez dans votre travail !
@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 propose des scénarios qui sont des mini-jeux prédéfinis. Ces mini-jeux sont bien adaptés pour former des agents sur des tâches spécifiques ou pour tester des algorithmes dans différentes configurations de problèmes. L'avantage de l'utilisation de scénarios est que vous pouvez concevoir de manière triviale des fonctions de récompense en utilisant des critères dont chacun génère un signal de récompense/punition en fonction de l'achèvement de la tâche. Des exemples de tâches sont les suivants :
Deep RTS implémente actuellement les scénarios suivants
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