AI:Development:Interface: Difference between revisions

From Spring
Jump to navigationJump to search
Hoijui (talk | contribs)
Flozi (talk | contribs)
AI -> AI Dev
 
(16 intermediate revisions by 6 users not shown)
Line 1: Line 1:
==AI Interfaces & Wrappers==
== AI interfaces and wrappers ==


Skirmish AIs are not loaded by the engine directly, but through an interface library.
==== Introduction ====
This allows integration of AIs written in other languages.
For an explanation of what AI interfaces and wrappers are,
An other idea made possible through this, is a library that can load AIs over the network,
have a look at the [[AI:Development:System|AI Interface system]] page.
and let them run on an AI server (NOTE: this is not planned, just a possibility).
<br><br>


[[Image:CAIInterfaceCodeStructureOld.png|thumb|center|722 px|Old Code Structure]]
==== In active development ====


[[Image:CAIInterfaceCodeStructure.png|thumb|center|722 px|New Code Structure]]
; '''[[AIInterface:C|C & C++ AI ''Interface'']]'''        : <font color="#AAAAAA">~stable</font>, basically just a stub plugin, forwarding the plain C AI Interface, do not use directly, but through a wrapper<br><br>
; '''[[AIWrapper:LegacyCpp|Legacy C++ AI Wrapper]]'''  : <font color="#EE0000">deprecated</font>, ensures AIs written for springs old C++ AI interface can still be used<br><br>
; '''[[AIWrapper:Cpp|New C++ AI Wrapper]]'''          : <font color="#00AAFF">alpha</font>, allows writing C++ AIs using the new OO structure and all possibilities of the C Interface<br><br>
; '''[[AIInterface:Java|Java AI ''Interface'']]'''        : <font color="#AAAAAA">~stable</font>, loads AIs written in any language supported by the JVM<br><br>
; '''[[AIWrapper:ModularAI|ModularAI ''Wrapper'']]'''        : <font color="orange">beta</font>, simplifies handling of Units and provides a lot of common functionality for Java AIs<br><br>
; '''[[AIInterface:Python|Spring PyAI Interface]]'''          : <font color="orange">beta</font>, Python AI Interface<br><br>


AI Interfaces are plugins for the spring engine, while Skirmish AIs are plugins for AI Interfaces.
==== In inactive development ====


Wrappers are comparable to AI Interfaces, but they rather lay between an AI Interface and an AI.
; '''[[AIInterface:Mono|Mono AI ''Interface'']]'''        : <font color="orange">beta</font>, will support loading AIs written in a '''[http://en.wikipedia.org/wiki/Common_Language_Infrastructure CLI]''' language<br><br>
They consist of code that adds enhances an interface in some way, and they are compiled directly into the AI library.
An example of one is the Legacy C++ Wrapper.
It makes the C/C++ AI Interface look like the old C++ AI interface of spring.
It is used by KAIK and AAI for example, and its code is compiled directly into these AI libraries.


===In Active Development===


; '''[[AIInterface:C|C & C++ AI Interface]]'''        : rc (please help testing!), by hoijui<br><br>
''' [[AIs|<- Back to AI page]]'''
; '''[[AIWrapper:LegacyCpp|Legacy C++ AI Wrapper]]'''  : deprecated, ensures AIs written for springs old C++ AI interface can still be used, by hoijui<br><br>
; '''[[AIWrapper:Cpp|New C++ AI Wrapper]]'''          : alpha, allows writing C++ AIs using the new OO structure and all possibilities of the C Interface, by hoijui<br><br>
; '''[[AIInterface:Java|Java AI Interface]]'''        : rc (please help testing!), supports loading AIs written in pure Java, by hoijui<br><br>
; '''[[AIInterface:Mono|Mono AI Interface]]'''         : beta, will support loading AIs written in a '''[http://en.wikipedia.org/wiki/Common_Language_Infrastructure CLI]''' language, by Agon<br><br>


 
[[Category: AI Dev]]
'''[[Main_Page|<- Back to Main page]]'''
 
[[Category: AI]]

Latest revision as of 17:42, 23 March 2013

AI interfaces and wrappers

Introduction

For an explanation of what AI interfaces and wrappers are, have a look at the AI Interface system page.

In active development

C & C++ AI Interface
~stable, basically just a stub plugin, forwarding the plain C AI Interface, do not use directly, but through a wrapper

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

New C++ AI Wrapper
alpha, allows writing C++ AIs using the new OO structure and all possibilities of the C Interface

Java AI Interface
~stable, loads AIs written in any language supported by the JVM

ModularAI Wrapper
beta, simplifies handling of Units and provides a lot of common functionality for Java AIs

Spring PyAI Interface
beta, Python AI Interface

In inactive development

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


<- Back to AI page