DeepRTS هي لعبة إستراتيجية عالية الأداء في الوقت الحقيقي لأبحاث التعلم المعزز. إنه مكتوب بلغة C++ للأداء، ولكنه يوفر واجهة بايثون لتحسين التفاعل مع مجموعات أدوات التعلم الآلي. يمكن لـ Deep RTS معالجة اللعبة بأكثر من 6000000 خطوة في الثانية و 2000000 خطوة عند عرض الرسومات. بالمقارنة مع الحلول الأخرى، مثل StarCraft، يعد هذا وقت محاكاة أسرع بنسبة تزيد عن 15000% على Intel i7-8700k مع Nvidia RTX 2080 TI.
الهدف من Deep RTS هو تقديم حل مستدام وبأسعار معقولة لأبحاث RTS AI من خلال تقليل وقت الحساب.
يوصى باستخدام الفرع الرئيسي للإصدار الأحدث (والأفضل عادةً) من البيئة. أنا ممتن لأي مساهمة فيما يتعلق بتحسين البيئة.
الرجاء استخدام الاقتباس التالي عند استخدام هذا في عملك!
@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 بسيناريوهات عبارة عن ألعاب مصغرة معدة مسبقًا. تعتبر هذه الألعاب المصغرة مناسبة تمامًا لتدريب الوكلاء على مهام محددة، أو لاختبار الخوارزميات في إعدادات المشكلات المختلفة. تتمثل فوائد استخدام السيناريوهات في أنه يمكنك تصميم وظائف المكافأة بشكل تافه باستخدام معايير يقوم كل منها بإخراج إشارة مكافأة/عقاب اعتمادًا على إكمال المهمة. ومن أمثلة المهام ما يلي:
يقوم Deep RTS حاليًا بتنفيذ السيناريوهات التالية
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