AI:Links

From Spring
Revision as of 20:22, 2 June 2009 by Abma (talk | contribs)
Jump to navigationJump to search

AI Development

Skirmish AIs (old term: Global AIs), are what the Computer Opponents in games are called. Developing a good Skirmish AI is a major undertaking, and requires quite a bit of know how. As the SY's have more important things to do than developing an AI, they have left this job up to the community.

The community has risen to the challenge remarkably well, releasing quite a few AIs.

Interfaces in Active Development

You can use following Interfaces to write your AI:

C & C++ AI Interface - rc (please help testing!), developed by hoijui

Java AI Interface - rc (please help testing!), will support loading AIs written in pure Java

Mono AI Interface - beta, will support loading AIs written in a CLI language

Legacy C++ AI Wrapper - deprecated, ensures AIs written for springs old C++ interface can still be used


Code

Note that the full source code for many AIs is available within the Spring source repository, see Obtaining the Source.

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 this thread.

Krogothes Metal Class V3 - A useful mex spot finding algorithm, essential for any AI that uses metal extractors

Global AI Interface Jouninkomiko has a topic on the Global AI Interface running here.

Hugh's global AI tutorial Hugh's tutorial on writing an AI in C#.

Global AI .Net Interface Write Global AIs in .Net, using Hugh Perkins's interface

Global AI Java Interface Write Global AIs in Java, using JAI DEPRECATED

Unit grouping heuristic Unit grouping and reorg heuristic by Hugh Perkins

Research

K-man's Spring AI documentation Useful existing documentation on the Spring unit AI, however this is not related to the Global AI.

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

Wikipedia AI - AI documentation on wikipedia

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


AI Interfaces & Wrappers

Skirmish AIs are not loaded by the engine directly, but through an interface library. This allows integration of AIs written in other languages (if an AI interface library is available for the desired language). Other possibilities include a library that can load AIs over the network, and let them run on an AI server (NOTE: this is not planned, just a possibility).

simply said: AI Interfaces are plugins for the spring engine, while Skirmish AIs are plugins for AI Interfaces.

Wrappers are comparable to AI Interfaces, but they rather lay between an AI Interface and an AI. They consist of code that adds enhances an interface in some way, and they are compiled directly into the AI library. An example of such a wrapper is the Legacy C++ interface. it lies between the C/C++ AI Interface and Legacy C++ AIs, eg KAIK and AAI, and its code is compiled directly into these AI libraries.

For further info, see AI Interface Development.

<- Back to Main page page