AI:Links: Difference between revisions

From Spring
Jump to navigationJump to search
mNo edit summary
 
(74 intermediate revisions by 17 users not shown)
Line 1: Line 1:
'''AI''', or '''Artificial Intelligence''', is what the Computer Opponents in games are called. Developing a good AI is a major undertaking, and requires quite a bit of know how. As the SY's have more important things to do than develop an AI, they have left this job up to the community. The community has risen to the challenge remarkably well, releasing quite a few AI's, most of which are in working condition.
=AI Links=


There are currently a few AI's in development. The more notable of these include JCAI, which is shipped with Spring, and NTAI, which is not stable enough for release yet.
;'''[[AI_Research | Another "AI Research" wiki page]]''': Another page of similar content (likely lack of syncronization between people editing).


== Current AI's ==
;'''[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-370-the-battlecode-programming-competition-january-iap-2013/lecture-videos/ MIT lectures on developing RTS AIs]''': Videos of MIT lectures for the class Battlecode (developing AIs for an in-house RTS).<br>
=== [[AI:AAI|AAI]] ===
[[AI:AAI|AAI]] is an AI currently being developed by [[User:Submarine|Submarine]]. AAI 0.55 is stable and works with most popular mods but it doesn't support naval units yet.


=== [[AI:JCAI|JCAI]] ===
;'''[http://www.darkstars.co.uk Darkstars]''': AF's main site, has a lot of theory on it, including details of his NTai project<br>
[[AI:JCAI|JCAI]] is an AI that was being developed by [[User:Zaphod|Zaphod]]. As Zaphod has now taken over the job as head programmer, development on JCAI has come to a halt. Despite this, it is still good, and is currently being shipped with Spring, and is a good starting point for new players to train against. It is very stable.


=== [[AI:KAI|KAI]] ===
;'''[http://taspring.clan-sy.com/phpbb/viewtopic.php?t=539 5 Matrix AI 1,2,3]''': A thread discussing Triaxx' theory and plans for his AI 5 matrix AI/Wormhole AI<br>
[[AI:KAI|KAI]]is an AI currently being developed by [[User:krogothe|krogothe]]. A very early version of the yet incomplete AI has been released, but is not yet up to a playable standard. It has several limitations such as only being able to play as XTA core and using only vehicles but still manages to produce a decent challenge in groups of 3 or more due to its relentless attacking and decent economy. For best results play in a flat, small map made of metal or with many mex spots.


=== [[AI:NTAI|NTAI]] ===
;'''[http://taspring.clan-sy.com/phpbb/viewtopic.php?t=2752&highlight= "Research about Pathfinding, AI and Voronoi diagrams"]''': A forum post by Gabba.<br>
[[AI:NTAI|NTAI]] is an AI currently being developed by [http://taspring.clan-sy.com/phpbb/profile.php?mode=viewprofile&u=73 Alantai Firestar]. It performs better than [[User:Zaphod|Zaphod's]] [[AI:JCAI|JCAI]], but is not quite as stable. Also being shipped with current Spring releases, it is a good alternative for people to practice against. However it is very cpu-power consuming.


=== OTAI ===
;'''[http://taspring.clan-sy.com/phpbb/viewtopic.php?t=4326 Academic research papers on AI in RTS games]''': A forum post by NeuronExMachina.<br>
OTAI is an AI being developed by [[User:Veylon|Veylon]]. It builds randomly using OTA-style profiles. It is relativly stable and works with some of the more important mods.


=== ZcAIn ===
;'''[[AIResearch | AI research Material]]''': Research links to articles and documents about AI<br>
[[AI:ZcAIn|ZcAIn]] is an AI currently being developed by [[User:Cain|Cain]]. It is probably the least developed of the lot, but is coming along nicley. It is a new addition to the AI scene.


=== [[Random enemies]] ===
;'''[http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=greedyAlg Greedy is good]''': Greedy is good tutorial at topcoder.com<br>
There is a also the [[Random enemies]] script, which can be used for some basic testing. It is not an AI as such, but a spawn script that can be either used to test an AI, or to train against.


=== Group AIs ===
;'''[http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=graphsDataStrucs1 Graph and data structures]''': Graph and data structures tutorial at topcoder.com. This includes path-finding using bfs<br>


These AIs are designed for use by a human player, to be assigned to a group of units and give that group orders to reduce micromanaging.
;'''[[AI:HughsUnitGroupingHeuristic|Unit grouping heuristic]]''': Unit grouping and reorg heuristic by Hugh Perkins<br>


==== Metal Maker AI ====
;'''[http://christophermpark.blogspot.co.uk/2009/06/optimizing-30000-ships-in-realtime-in-c.html Optimizing 30,000+ Ships In Realtime In C#]''': Lead developer of game AI Wars discusses performance considerations for his RTS handling 30K+ units. Mostly good ideas on how to build a performance RTS engine but also some ideas applicable on how to make a performant AI agent, like working with fixed-ints rather than floats (especially for sync issues between different computers) or imperfect range checks.<br>


The [[Metal Maker AI]] turns member metal makers off when energy reserves get low and turns them back on again when energy reserves are nearly full.
;'''[http://christophermpark.blogspot.co.uk/2009/07/range-checks-approximation-vs-accurate.html Range Checks - Approximation vs Accurate]''': Lead developer of game AI Wars discusses how to improve performance of range checks at the cost of accuracy, which also raises the question of whether we really need 100% accurate range checks always/most times/ever in an AI agent. He states (other post) that range checks was the largest consumer of CPU in the alpha version of the game. He describes how he used an alternative that doesn't use the expensive SquareRoot math calculation.<br>


==== Simple Formation AI ====
;'''[http://christophermpark.blogspot.co.uk/2009/06/designing-emergent-ai-part-1.html Designing Emergent AI, Part 1: An Introduction]''': Lead developer of game AI Wars explains how the game's AI works - essentially an overview of how to conceptually construct an AI agent for RTSs. A good resource on how to start going at building an AI agent for an RTS.<br>


[[Simple Formation]].
''' [[Main_Page|<- Back to Main page page]]'''


==== Central Build AI ====
[[Category: AI Dev]]
 
The [[Central Build AI]] organizes the build tasks given to construction units so that units build whatever tasks are nearest to them, or guards other construction units to help them if there aren't any tasks it can build on its own.
 
==== greenai ====
 
The [[greenai]] is currently for Nanoblobs.  It produces units exponentially using the groupAI interface.
 
== Documentation ==
 
=== Global AI Interface ===
Jouninkomiko has a topic on the [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=923 Global AI Interface] running here.
 
=== Metal Handler Class ===
Cain has developed and released a Metal Handler Class that succesfully finds metal spots on maps, which can be a major stumbling block for many AI developers. Information about it can be found in [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=2408 this thread]
 
=== Theory ===
Useful existing documentation on the Spring unit AI can be found in
[http://taspring.clan-sy.com/SAI/ K-man's Spring AI documentation], however this is not related to the Global AI.
 
Alantai Firestar has a lot of theory on the topic on [http://www.darkstars.co.uk his site], including details on his NTAI project.
 
Triaxx had a topic about the '[http://taspring.clan-sy.com/phpbb/viewtopic.php?t=539 5 Matrix AI 1,2,3]', and also some information at Alantai Firestar's site.
 
==== Relevant research ====
 
* [http://www.cse.lehigh.edu/~munoz/CSE497/ Seminar course on "Topics on AI and Computer Game Programming"]: The lecture slides give a great overview of advances in game AI, with plenty on RTS games
 
* [http://www.qrg.northwestern.edu/papers/Files/How_QSR_can_improve_strategy_game_AIs_A3ISS_2001.PDF Forbus et al 2001], "How qualitative spatial reasoning can improve strategy game AIs"
 
*[http://scholar.google.com/url?sa=U&q=http://www.cs.iastate.edu/~dfetter/report.pdf D. Fetter (project report)], "Real-Time Strategy Game Decision Making with Support Vector Machines": A project which tried using SVMs to learn unit production decisions in Warcraft III, based on replays of top players.
 
*[http://www.daimi.au.dk/~djn/thesis.pdf R. Laursen & D. Nielsen 2005], "Investigating small scale combat situations in real time strategy computer games": 164-page Master's thesis on using game trees to determine near-optimal unit behaviors in combat scenarios (unit placement and target selection), which was implemented in the [http://stratagus.sourceforge.net/ Stratagus] warcraft clone. This also gives an overview of the AI techniques used by many popular games.
 
*[http://www.csse.monash.edu.au/hons/projects/2004/Nicolas.Imrei/ N. Imrei], "Reinforcement Learning in Real-Time Strategy Games" (<a href=http://www.csse.monash.edu.au/hons/projects/2004/Nicolas.Imrei/Downloads/FinalPresentation.ppt>final presentation link</a>, thesis available by email): Honours project used reinforcement learning to develop both overall strategies and agent behaviors in RTS games
 
*[http://www.cs.unimaas.nl/steven.dejong/publications/DeJong2005Reqrmgai.pdf S. de Jong, P. Spronck & N. Roos 2005], "Requirements for resource management game AI": This is about how to do resource management in games like Sim City, but it should also be applicable to TA-style games. There's also a [http://www.cs.unimaas.nl/steven.dejong/publications/DeJong2004HybridAIForRMGs.pdf 77-page Master's thesis]
 
* [http://www.cs.ualberta.ca/~mburo/ Michael Buro's lab]: Much of his lab's research is focused on "real-time planning and learning AI with applications to RTS games." They've actually created an open-source RTS called ORTS, in order to experiment with various AI techniques. With any luck, they might even be persuaded to switch their focus to TA Spring, or perhaps try implementing some of their algorithms. Also, it might be worthwhile to use elements of ORTS in TA Spring.
 
**[http://www.cs.ualberta.ca/~mburo/ps/mcplan.pdf M. Chung, M. Buro, and J. Schaeffer 2005], "Monte Carlo Planning in RTS Games"
**[http://www.cs.ualberta.ca/~mburo/ps/RTS-AAAI04.pdf M. Buro 2004], "Call for AI Research in RTS Games": Gives a nice overview of the current state of AIs in RTS games
**[http://www.cs.ualberta.ca/~mburo/ps/BRIMS-04.pdf M. Buro and T. Furtak], "RTS Games and Real-Time AI Research"
 
* [http://www.cs.ualberta.ca/~bulitko/F04/projects/LM/LM-final.pdf L. MacDonald 2005], a final-project report on Moving Target Search (MTS). Basically, MTS seems to be an extension of something called Learning Real-Time A* (LRTA*).
 
* [http://www.cs.berkeley.edu/~russell/classes/cs294/f05/papers/mehta+al-2005.pdf N. Mehta et al 2005], "Transfer in Variable-Reward Hierarchical Reinforcement Learning": Develops reinforcement-learning techniques and tests them in a simple RTS
 
* Forum posts
** Post by Gabba describing [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=2752&highlight= "Research about Pathfinding, AI and Voronoi diagrams"]
** Post by NeuronExMachina on [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=4326 Academic research papers on AI in RTS games]
 
== See also ==
* [[Wikipedia:Artificial intelligence]]
 
[[Category:Development]]
[[Category:AI]]

Latest revision as of 23:37, 22 October 2014

AI Links

Another "AI Research" wiki page
Another page of similar content (likely lack of syncronization between people editing).
MIT lectures on developing RTS AIs
Videos of MIT lectures for the class Battlecode (developing AIs for an in-house RTS).
Darkstars
AF's main site, has a lot of theory on it, including details of his NTai project
5 Matrix AI 1,2,3
A thread discussing Triaxx' theory and plans for his AI 5 matrix AI/Wormhole AI
"Research about Pathfinding, AI and Voronoi diagrams"
A forum post by Gabba.
Academic research papers on AI in RTS games
A forum post by NeuronExMachina.
AI research Material
Research links to articles and documents about AI
Greedy is good
Greedy is good tutorial at topcoder.com
Graph and data structures
Graph and data structures tutorial at topcoder.com. This includes path-finding using bfs
Unit grouping heuristic
Unit grouping and reorg heuristic by Hugh Perkins
Optimizing 30,000+ Ships In Realtime In C#
Lead developer of game AI Wars discusses performance considerations for his RTS handling 30K+ units. Mostly good ideas on how to build a performance RTS engine but also some ideas applicable on how to make a performant AI agent, like working with fixed-ints rather than floats (especially for sync issues between different computers) or imperfect range checks.
Range Checks - Approximation vs Accurate
Lead developer of game AI Wars discusses how to improve performance of range checks at the cost of accuracy, which also raises the question of whether we really need 100% accurate range checks always/most times/ever in an AI agent. He states (other post) that range checks was the largest consumer of CPU in the alpha version of the game. He describes how he used an alternative that doesn't use the expensive SquareRoot math calculation.
Designing Emergent AI, Part 1: An Introduction
Lead developer of game AI Wars explains how the game's AI works - essentially an overview of how to conceptually construct an AI agent for RTSs. A good resource on how to start going at building an AI agent for an RTS.

<- Back to Main page page