In just over a week Matthew will be giving a talk with Mika Vehkala at the GDC AI Summit. Titled “Spaces in the Sandbox: Tactical Awareness in Open World Games” this one-hour talk will discuss analysis and selection of tactical positions, featuring Mika’s work on Hitman: Absolution and Moon Collider’s work on Xaviant’s upcoming title, Lichdom.
The talk is from 11:15AM – 12:15PM on Monday 25th, in Room 2004 of the West Hall.
In January we launched our AI middleware product, Kythera, through our sister company, Intelligent Artefacts.
Dynamic Navigation is the first feature in Kythera, which takes our previous work with Recast and makes it the first piece of a fully-featured AI platform. Our first demo shows it’s dynamic regeneration of navigation meshes in the indie CryEngine 3 Hack’n'Slash, “Umbra”.
Check out the video at our site, or on YouTube here or here – in total the video has received well over 25,000 views.
Earlier in the year we experimented with bringing real-time dynamic navmesh regeneration to the open-source Recast demo, to test it’s capabilities. Here’s a video of the results.
The popular Recast project is a library for navmesh generation, pathfinding and dynamic avoidance. It comes with a simple but slick demo environment which allows you to load the geometry of a level, generate a navigation mesh and create some agents to move around. However, the demo doesn’t allow you to make changes to that geometry.
We added the facility to create and move objects within the application and caused the affected tiles to be regenerated in real-time. The agents also recalculate their paths, so they will smoothly reroute when blocked.
New paths can also be created – for instance, by placing a bridge – allowing the agents to navigate to previously inaccessible locations.
This approach involves regenerating tiles from scratch and is the most common route people take to dynamic navigation meshes, however it’s not the best for all applications. It uses the same mechanisms as the original mesh generation, making it simple to implement and the ability to create new paths based on player actions makes it very powerful for sandbox gameplay. The alternative is a purely subtractive approach, also supported by Recast, where we can place obstacles, but new routes cannot be created. This gives much greater control to designers and is potentially more efficient.
Michael and Matthew were in Vienna this week for the 2012 Game/AI Conference. Here are some of our highlights from the talks.
Kasper Fauerby described their system for achieving 1200 agent crowds, with up to 500 on-screen at any time. They emphasised their use of flow fields and how important the crowd’s simple reactions to the player’s actions were to achieving and interactive, believable crowd. Interesting to us was their observation on velocity planning that humans tend to prefer to change their speed, or even to stop, than to change direction – at least in this context; also that they they used no real LOD system, clearly leaving the potential for even greater crowds on this generation of consoles.
SPEC OPS: THE LINE
Jörg Reisig and Daniel Kollmann shared their very clear focus on a fun experience for the player with unusually concrete examples, based on their third-person squad shooter. They stated that all grenades should be thrown at the player, not his squadmates, because there is nothing the player can do about a grenade aimed at a squadmate, so it provides no fun, and should the squadmate die, the player is punished for no reason. They also asserted that such grenades should always be on target – because the player will always try to evade, which can be fun, but if that grenade lands anywhere else he may run into it, or simply become exposed to enemy fire for no reason – again, punishing the player for performing a reasonable action. A lot of shooters could benefit from this kind of clarity of design.
Claudio Pedica showed his impressive results bringing humanoid characters to life by considering social spaces and social cues. He’s continued on the work since he first presented it at the conference in Paris in 2010 and there is a simple power to agents noticing their neighbours looking at something behind them, or moving aside to make space for a new agent to join their “conversation”. RPGs that use these techniques could see a tremendous leap in immersion and I hope we will see this brought into a game in the next few years.
Matthew will be presenting with Doug Binks at the Develop conference in Brighton, on their technique for rapid iteration, Runtime-Compiled C++.
RCC++ allows you to change your C++ code while it’s running, much like a scripting language. It uses no VM, no external tools, and works straight out of your favourite IDE. It avoids the performance overhead and maintenance issues of scripting languages, making it ideal for AAA games development – as well as a powerful tool for indies.
They first presented the approach at the Paris Game/AI conference and at Google, in 2011. You can learn the details and download an open-source implementation from their blog.
The session will be Thursday 12th July from 12:15 to 13:00 and will include live demonstrations of the technique.
Moon Collider is pleased to announce that Michael Bell, an engineer with a wealth of experience in the telecommunications industry, has come to join Moon Collider’s AI team.
Michael attended Cambridge University with Matthew, and they have often compared notes on software development practices in their respective industries. Moon Collider is keen to apply the robust development approaches Michael has used to its work.
Michael is already getting up to speed on Recast and Detour, looking at improvements to the crowd collision avoidance system.
For the last two weeks Matthew has been consulting with Xaviant, on-site in Georgia. After working remotely with the team for 18 months, they asked him to fly over, meet the team and see their development process in action. They’re taking some exciting directions with Lichdom, especially in AI, and doing an expert job of exploiting and adapting CryEngine’s AI system. It’s going to be really exciting to follow development of this title.
Update: In Charles’ own words:
During our multi-year relationship, we have leveraged Matthew’s expertise to transform our engineering team, CryEngine3 and our AI toolset. Our frequent videoconferences have been invaluable as he constantly helps us expose existing functionality in the CryEngine3 AI framework. Additionally, we use Matthew’s on-site visits for detailed problem solving, process optimization, and cross-discipline benchmarking which, among other things, allows us to continuously evaluate ourselves and recently resulted in streamlining our character prototyping pipeline by 50%. As a relatively inexperienced AI team, Matthew provides expert validation for our approach to AI regarding our specific game requirements. He has now become a virtual member of our Engineering team.
Charles Hollingsworth, Engineering Director, Xaviant
For some clients, a custom AI solution is the most cost-effective solution.
We can consult with you on existing middlewares and integrate them with your project. However what they offer may not fit what you envision for your project – be it in their features, business terms or work process. For this reason, we also offer custom solutions which don’t use third-party licenses.
We can provide a custom system that includes exactly the features you need, just the features you need, and presented in the most effective workflow for your team. We leverage powerful open-source components, such as Recast and Detour, to bootstrap development and build the best foundation without expensive licenses.
Enodo SAS, of France, approached Moon Collider in January 2011. Enodo use CryEngine 3 to build beautiful and sophisticated real-time visualisation tools for urban planning, architecture and training. They wanted to bring their worlds to life with autonomous agents. Their requirements include scenes many square kilometers in size, large populations to fill those worlds and short, responsive development cycles. They also had existing proprietary components – such as a dynamic traffic system – that they wished to keep and integrate with their new human AI.
We developed a proprietary system for them, including rapid automatic navigation processing and automatic spawning, to populate their worlds in a few clicks. It completely replaces the existing, combat-oriented AI system of CryEngine3 with a new system. We use the existing engine APIs without change, which means ongoing engine integration is kept simple.
While most work can be done remotely to keep costs down, before crucial milestones we always complete our work on-site, to ensure the best results for their clients.
In the first 12 months we worked with them, Enodo delivered three separate products to their clients using the new technology:
- A driving simulator for BMW
- For the local government in Nice, detailed simulation of a proposed tram system
- For a major building project in Paris, an interactive project visualisation tool
Could we bring your world to life too?
At this year’s GDC, Matthew will be presenting at the AI Summit in collaboration with the AiGameDev.com team. In an hour-long session with Alex Champandard and Phil Dunstan entitled “Believable Tactics for Squad AI”, they will be presenting practical techniques on how to write systematic behaviours for your enemy and squadmate AI.
Squads of non-player characters are notoriously hard to get right, particularly when designing the highly visible interactions of teammate squad members. Through a series of live, interactive demos, this presentation will compare a wide variety of techniques commonly used in the games industry for creating dynamic squad behaviors, including attacking and flanking, suppression and player leading and following. The analysis will include both centralized and distributed designs for squad member synchronization, the trade-offs of scripted versus procedural designs and high-level techniques for tactical squad path finding and cover selection.
Update: For those with GDC Vault access, the presentation video is now available.
Recast is an automatic navigation mesh generator that has become an industry standard. Using the permissive zlib open-source license and developed by the lead AI developer behind Crysis, Recast has been used in shipped AAA titles like Resistance 3 and Bulletstorm, and integrated with many more games and middleware. With the Detour module it also offers efficient nav-mesh pathfinding and with DetourCrowds, a powerful RVO-based solution for multi-agent avoidance.
If you’re reading this, chances are you’re already considering Recast. However, despite all it’s advantages there is one thing that this solution lacks: commercial support.
Moon Collider has used Recast, Detour and DetourCrowds in shipped commercial products, pushing its limits and adapting and extending it for exacting requirements.
We can offer:
- Experienced advice on how well Recast will support your specific requirements
- Hands-on contracts to integrate it with your codebase for you
- Assistance with your own integration
- Help extending Recast, Detour and DetourCrowds for your requirements