kAI - a component based AI tool |
The way it works is coders produces code behaviours which designers can then import in to the tool. kAI behaviours are then a collection of these code behaviours and other kAI behaviours arranged into a network.
The tool is similar to Kismet/Blueprint - the visual programming tool found in Unreal. The key difference is that is specialised towards AI. As a result, you can't use programming primitives like for loops (hence no programming style bugs and hangs). Instead, all behaviours can be either active or inactive and are updated accordingly.
The update system (detailed in 3.2.2.1 in the report) means that what frame any behaviours become active is deterministic, despite the non-determinism of the order in which the nodes are updated.
kAI also supports real time debugging using the editor. In this, you can see what the behaviours are doing in real time. The editor will show what nodes are active and what current values data ports have
An example behaviour from the editor |
The report is a lengthy document (~90 pages) that explains a lot about the project. Chapter 4 is a user guide and is probably the most useful part of the document. It contains detailed walk thoroughs of most of the features of kAI. The report is called ProjectReport.pdf and is at the root of the repository.
My final report |
In-spite of the limited development time (which can be seen in the "functional" interface that the editor has), the tool proved surprisingly useful when creating AIs and the debugger is very powerful for this kind of thing. I believe kAI to be flexible enough that you could make just about any AI in it and still get some benefit (even if you just used kAI as a general purpose visual debugging tool).