For the next part in Gamasutra’s ‘Tooling Around’ feature, which profiles and interviews middleware and tools developers about their products, today’s interview is with Jerome Hoibian, CTO of French-based company Spirops
, developer of SpirOps AI.
The product is a graphical Artificial Intelligence editor, designed to allow user’s not specifically trained in AI programming add “behaviors for virtual creatures, cameras, dynamical music or physical character animations” with relative simplicity. The SDK also allows NPCs to “follow and associate multiple objectives and behaviours” due to its use of what the company refer to as “Drive Oriented” technology, which lets users “conceive ‘Brains’ running on a huge number of drives at the same time, without generating the conception and tuning complexity of usual AI models”.
“If we make a parallel to the programming standards, it’s as if we proposed to an assembly programmer a new language like C++ and its IDE, for example, Visual Studio,” comments Hoibian. “It was, for us, indistinguishable [to that], because the Drive Oriented paradigm has the characteristic to require a graphical editor.”
We talked with Hoibian recently about the company, the AI SDK, and its use in current and upcoming projects.
When and why was Spirops formed?
Spirops was created in January 2004 by Axel Buendia, doctor in AI, and Jerome Hoibian, computer engineer. It was created with the goal to develop and commercialize the SpirOps AI Tool, imagined by Dr Buendia during his research thesis.
What were the aims and goals of the company at this time?
Spirops objective is to decuple the game developers means in the AI field. For us, the world is still in the year zero of Artificial Intelligence; compared to 3D or physics.
How did you realize the need for a product like SpirOps AI?
In the first time we only realized the stillness of AI - the NPC quality has almost not evolved in the last 15 years - then we searched for the causes. The conclusion was clear: the technologies used in most games are obsolete. It is most of the time finite state machines and decision trees, and it hinders the AI development.
Indeed, they have the perverse effect to be extremely easy to use when the AI is simplistic but become very rapidly a hell of complexity when the AI is becoming richer. We thus sought a new technology not having these defects, a technology with a ‘linear complexity’ opposed to an ‘exponential complexity’. The result of our research gave the Drive Oriented technology.
Why did you feel it was important that the product should use a visual editor?
For several reasons: first of all, because the Drive Oriented paradigm generates and adapt code. Depending on the ‘Brain’ evolution it is thus impossible to code directly with the hand. And also because it creates a kind of ‘Grammar’ framing the conception. This allows having an integrated debugger - the debugger ‘understands’ the design and so knows what information it needs to show and how. It also knows what information to watch.
Finally, the visual editor eases the conception. Spirops’ idea is to allow any engineer to develop AI - it not necessary anymore to have ‘experts’ in the field. It also lets game designers participate in the design, hence largely simplifying the communication between programmers and designers.
What was the development time on the product, and what challenges did you run into in preparing the product for industry use?
At first, seven years of research. Then three years of development to achieve version 2 - the first version was without editor. The product was imagined as a middleware so we didn’t have to adjust to the industry’s needs.
How has the product developed over the time you've been producing it?
We first took part in several game developments to observe the needs and habits. We then imagined the kernel then developed the editor, the code generator and the debugger.
How have you acted on feedback to improve SpirOps AI?
SpirOps is actually still a ‘luxury’ product with a restricted number of confidential clients. We thus only signed partnership-like contracts where feedback response is at its most and where the improvements wished are immediately developed. We hope to ensure the same quality of support with a more important client base.
How does the product work on technical level?
Our tool is an Artificial Intelligence editor. Any AI can be developed using SpirOps; the freedom of imagination from the designer is total. In this way, it is not a library of predefined ready-to-use behaviors – we could compare what is SpirOps for AI to what Photoshop is to drawing.
Technically, we design one or several brains with the editor which represent the NPCs reflexion then you have to code what we call the ‘sensors’ - that is to say, callbacks - which allow the brain to observe its environment. Then we assign this brain to an NPC and voilà! At each think cycle, the NPC will choose between all of its possible actions which one or ones it wishes to do and how: parameters.
The list of possible actions is defined by the designer of the brain. For performance reasons, once the design is done, the editor converts whole the brain to C++ code that only needs to be integrated in the project. The brain design itself is divided into drives but it would be too hard to explain right now.
What kinds of behaviors are included in the library?
None. There are of course some examples and tutorials but no behaviour library per se. Spirops AI is accompanied by a topographic ground analyser and also by a primitive passer-by brain - to be customized - to ease developments related to crowd simulation and NPCs movement: pathfind, etc.
Do you feel your product works best when combined with other middleware?
Artificial Intelligence is an autonomous branch in development - except some kinds of perceptions related to the graphical engine. There are thus no middleware which could make SpirOps work better that we know of. However it integrates easily in any game engine that allows C++ addition. This excludes Java engines.
What are some of the more notable examples of the product's use?
SpirOps is a relatively young product and most of our clients are still confidential - mainly industrial and military. All we can say is that SpirOps has been used to simulate human player’s behaviors in Splinter Cell: Double Agent
, to simulate formations and Sport team’s strategies in SpeedBall 2
, to simulate large scale crowd behaviors and to be embedded in autonomous robots.
Who is currently using SpirOps AI?
Except for Ubisoft and Kylotonn, the other clients are still confidentials.
What do you see as the next evolution of the product?
Beside the preparation of Spirops AI v3, we have at the moment three branches of development: one is focused on NPC to NPC and NPC to human language with everything it includes: lie, rumors, intimidations, inquiry, and so on. One is focused on automatic movement generation, with applications either in robotics or in games, allowing NPCs to have an infinite palette of animations and to be able to adapt to its surrounding or to its physical state. And a last one focused on ground analysis and other types of perceptions concerning dynamic environments.
But all of this is still mostly at the R&D state and the first applications will be for Q2 2008.