DeepRTS es un juego de estrategia en tiempo real de alto rendimiento para la investigación del aprendizaje por refuerzo. Está escrito en C++ para mejorar el rendimiento, pero proporciona una interfaz Python para interactuar mejor con los kits de herramientas de aprendizaje automático. Deep RTS puede procesar el juego con más de 6.000.000 de pasos por segundo y 2.000.000 de pasos al renderizar gráficos. En comparación con otras soluciones, como StarCraft, este tiempo de simulación es más de un 15 000 % más rápido ejecutándose en Intel i7-8700k con Nvidia RTX 2080 TI.
El objetivo de Deep RTS es brindar una solución más asequible y sostenible a la investigación de RTS AI reduciendo el tiempo de cálculo.
Se recomienda utilizar la rama maestra para la versión más nueva (y normalmente la mejor) del entorno. Agradezco cualquier aportación con respecto a la mejora del medio ambiente.
¡Utilice la siguiente cita cuando utilice esto en su trabajo!
@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 presenta escenarios que son minijuegos prediseñados. Estos minijuegos son ideales para capacitar a agentes en tareas específicas o para probar algoritmos en diferentes configuraciones de problemas. Los beneficios de usar escenarios es que puede diseñar trivialmente funciones de recompensa utilizando criterios en los que cada uno genera una señal de recompensa/castigo dependiendo de la finalización de la tarea. Ejemplos de tareas son:
Deep RTS actualmente implementa los siguientes escenarios
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