Xaitment has made a new version of its XaitControl available to the artificial intelligence middleware market.
The software’s 2.5 update carries a host of features aimed at making complex, state machine-based AI faster and easier to create, as well as more accessible to developers outside of the highly specialized AI coding discipline.
The XaitControl tool is purpose-built for designing and executing data driven, hierarchal, probabilistic Finite State Machines that can be used to control character movements and behaviors. Because the state machines are probabilistic, they allow game characters to respond in unique and unpredictable ways.
“You can also use it for graphic animation control, even music control. It’s so general, the state machine, that you can use it for anything,” Markus Schneider, xaitment’s executive vice president for America and Asia tells us.
A key aspect of xaitControl is its authoring environment that abstracts source code into an easily understood graphic interface that uses nodes to represent the state machine’s logic flow. “Programming can be done by any artist, any designer on the game,” Schneider said. “I have a really high opinion of AI programmers but there’s a reason why you have game designers and artists. They are the creative people who have a sense of what makes a game fun.”
“The interface is all vector-based graphics so you can zoom in, zoom out, and move it around. You can have a kind of infinite workspace. You can create state machines that are as complex as you could ever image,” Alexander Seifert, xaitment’s field application engineer told us. “But that’s not actually the focus of this tool. It’s not meant for creating the most complex state machines ever, but to make them simpler by abstracting them into hierarchies, one hierarchy into several layers. You can use sub-state machines inside a state machine.”
New feature in the 2.5 update include:
- New environment window/manager: This feature allows users to define and to administer events (messages from an application resulting in changed conditions in a Finite State Machine), variables and functions easier and faster.
- Functions as preconditions: In addition to Boolean operations, call-back functions can now be used as preconditions in a transition.
- Support for container data types: This allows the construction of vector-like container data types and the use of various methods, such as GetElement, SetElement etc., on the container’s elements.
- Supports function overloads: The same function can be used in Finite State Machines with a different number of parameters.
- Debugging: xaitControl offers improved support for debugging.
Used as a stand-alone product or as part of xaitment’s suite of pathfinding and rule-based AI tools, xaitControl has been designed for easy integration with game engines. “The hookup for the system is basically just a function call. We offer all our clients free of charge, on-site installation of the tools within 24 hours. That’s how easy it is to set it up in any environment. All you have to do is register the call-back functions and the variables,” Schneider said.
In addition to opening up AI design to non-programmers, the company believes xaitControl’s graphical authoring method can be advantageous from a project management perspective.
"Our main competition is really in-house," says Schneider. "You’ve got the AI programmers doing their 5,000 line state machine programming and the producer is like, ‘Oh, great! It’s finished. No problems.’ AI is so far afield within development that ‘no problem’ in terms of being bug free and the characters are running around somewhat realistically is considered to be good AI."
"As the head of a team you would know that the AI programmers were critical to the mission and that they were the only ones who know how these 5,000 lines are set up, but you wouldn’t really be able to control it," he adds. "You cannot be informed about every stage of the state machine and what’s going on in the AI and the pathfinding because you don’t see it."
So the tools were set up to support being able to see and take share of various stages in the state machine, each of which can be parsed out to other team members.
"The output files, the XML files are by state machine," Schneider explains. "When you set it up hierarchically, you can pick out an individual state machine and work on it, or copy it and use it somewhere else."
XaitControl is supported on PC, Xbox 360, PS3, and Wii. The company has also announced xaitControl’s integration with Emergent’s Gamebryo LightSpeed.