The weekend roundups at AiGameDev.com are back — though still a week or so behind! There’s really lots going on in the world of game AI, judging from the articles below, and more has happened since then too! Also don’t forget our Twitter account for random thoughts…
This roundup was written by Andrew Armstrong and Alex Champandard. If you have any news or tips for next week, be sure to email them in to editors at AiGameDev.com. Remember there’s a mini-blog over at news.AiGameDev.com (RSS) with game AI news from the web as it happens.
Procedural Narrative in Left 4 Dead
Dan Kline reviews L4D on his blog, and discusses the emergence of stories from simple mechanics:
“The AI Director’s procedural narrative doesn’t just give the respawns variety and change the pace, it provides narrative depth that the systems lack, player stories that change every time you play. It keeps the game itself from being simple, by varying these mechanics in such a way that they are always new and interesting - in a story way.”
JobSwarm: A microthreading framework with lockless FIFO
John Ratcliff has released a new C++ framework that aims to make multi-core and multi-threaded programming easier:
I call it a ‘JobSwarm’. What it is, is a micro-threading library that can handle tens of thousands of extremely tiny jobs with almost no overhead. My goal was to make it 100% lock free. It almost is, but there is still a mutex lock when a new job is added and removed. I plan to replace this with a fully lockless FIFO.
Procedural Narrative in FarCry 2
Dan Kline again discusses his experiences with Far Cry 2, and the apparent failure at experience management:
“But the procedural narrative implementation itself didn’t work for me either. Narrative doesn’t have a big impact on the game - and when that’s true it’s hard to be the first innovator . It was neat to see the responsive characters and have “buddies” with character. But it was used more as bookends for quests rather then gameplay-developing, which made it feel like a branching tree. And there were no mechanics beyond “quest selection” that seemed to fit back into the procedural narrative to make it feel different. Now this maybe is better towards the end of the game (I know they did a bunch of work on character barks, for example), but as I mentioned, I couldn’t get far enough to notice.”
Decisionality Decision Trees
Freddie McMahon writes up his thoughts on expert systems versus decision trees, a good “For” and “Against” comparison:
“Procedural knowledge is about IF-THEN-ELSE logic. Decision-Trees are a natural visualization for this type of logic. Of course, knowledge cannot be contained in one Decision-Tree. So by treating knowledge as a collection of Decision-Tree objects which can be linked enables an ecosystem to be created that can cover any breadth and depth. Indeed, this ecosystem of knowledge objects can grow and evolve without constraint.”
Tic-Tac-Toe Machine in Little Big Planet
User generated content brings up some rudimentary mechanical AI in Little Big Planet…
In this Little Big Planet level, you can play Tic Tac Toe against a machine. There are 2 boards. One is beatable, and one hopefully isn’t. First I show you the level, after that I show you the edit mode. You can find my level in the ‘highest rated’ levels. It’s called ‘Tic Tac Toe’ and is on the western tip of Afrika. My PSN name is Cristel. Have fun!
TCMalloc : Thread-Caching Malloc
Memory allocations can often cause many problems for AI, because some aspects often need frequent dynamic memory allocations. One easy way around the problem is to use a better memory allocator, like this one from Google.
Expressive AI: Games and Artificial Intelligence (PDF)
A paper written by Michael Mateas in 2003 on Expressive AI in video games.
Expressive AI: Games and Artificial Intelligence Michael Mateas, 2003. Download PDF
A Look At Modern Game AI
Slashdot discussion of a IEEE story posted previously, summing up some of the more common thoughts on the state of modern game AI.
Kurukshetra ‘09 - Game AI Event
Pages about an AI Game Dev event at Kurukshetra, although there is no downloadable winners the aims and API are still available for those who are interested.
Computational intelligence techniques can be said to have been combined with games for the first time in 1959, when Arthur Samuel applied a simple reinforcement learning algorithm to the board game Checkers. With no human instructions, through only playing itself and observing which sequences of moves won games and which sequences lost, and using the extremely limited hardware available at the time, the algorithm managed to learn strategies good enough to beat its inventor. Today, we are in an attempt to recreate a similar scenario. But, we need some one to play Arthur Samuel. with scripted AI leaving much to be desired from today’s games, we look, again, towards traditional Computational Intelligence/Machine Learning techniques.
Also is the reasoning behind it:
“We wanted the event to reflect the current trends in the Game AI development industry. It is left to the participants to be the judge of to what extent the main goal is accomplished. The trends seem to be 1) Player specific content and 2) a move away from hard-coded-rules based opponents. We chose Lunar Lander to be the test game for both problem statements. Why? Lunar Lander was one of the earliest games to use Vector Graphics. But that’s not the reason why. Lunar Lander is simple, to code and to play. And… it seemed to offer scope for hacking both problem statements.”
Report about NaturalMotion’s tech being ‘tightly’ coupled with Emergent’s engine.
News on a “tool suit to offer flexible and affordable AI for games beginning development”.
NavPower has worked its way into Namco’s development suite:
“Namco Bandai has signed up as a licensee of BabelFlux’s NavPower AI middleware. The publisher’s US studio is using the tech, which automatically generates 3D navigation meshes, on its forthcoming game based on the Afro Samurai license.”
Innovative Data Systems Conference Write-Up
A writeup of notes from CIDR 2009, in particular a section on data-driven game AI that can be updated in batches:
“The Cornell Data-Driven Games group pitched their language for batch specification of state update in computer games. It’s a compelling story: they point out that when a game has lots of computer-controlled characters, the game AI has large-scale batch updates between time ticks. So that logic is more simply programmed and optimized/parallelized via a data-centric language. Their language is declarative (compiles to relational algebra) but has an imperative “skin” to make it look more familiar and Java-like. In the CIDR spirit, it’s early days for their project — they don’t have any games implemented yet, and are still focused on simple select/project/join/aggregate queries. The argument for their specific language (over SQL, say) is currently just programmer familiarity — they assert that game designers are allergic to SQL. I buy the argument that syntax matters. But I’m looking forward to hearing about the features they evolve for the games domain that force them to go beyond vanilla relational algebra.”
Rockstar makes AI improvements to Midnight Club
Improvements which are not rubber-band to the AI from Rockstar now added in a patch for their Midnight Club racing game.
“The update is intended to improve the gameplay balance and AI by adjusting dynamically to user skill level. However, Rockstar have pointed out that the update does not add rubber banding to opponent cars. In fact, the patch is designed to make the game easier for novice players who have complained about the tough level of early races. Opponent cars will now screw up a little more often in green and yellow races, allowing players to progress more easily. Red races will remain difficult as ever.”
Neural Networks - A Systematic Introduction (PDF Book)
A free PDF book is available online for free on Neural Networks by Raul Rojas:
Neural Networks - A Systematic Introduction Raul Rojas, 1996. Download PDF
Automated Avatars in Second Life
“A 10 min video showing our work in creating automated avatars in Second Life. The “AI” “brain” sits outside of SL so can also drive web based avatars (eg Sitepal), and avatars in other virtual worlds. Our goal is to create an autonomous avatar within Second Life, and other virtual worlds.”
Owyl: Behavior Tree Creation
An interesting project on Google Code, for behavior trees.
“The goal of Owyl: provide a fast and flexible Behavior Tree framework implemented in python. Owyl trees use nested generators to iterate through your behaviors. The root of the tree always works just like a normal python iterator. If you know how to work with iterators, you know how to work with an Owyl tree. Because Owyl is small and behavior trees are easy to grasp, it’s easy to control and extend your AI behaviors.”
Senior AI Programmer at KAOS Studios
Responsibilities: * Design and Develop AI and Game Play systems for the game engine within schedule * Participates in Design and Code reviews * Create systems that achieve the game design goals * Create technology that can be re-used and extended in the future * Work with other team members to identify, define and solve problems * Work with external technology as needed * Other duties as assigned
On Introvision’s Academic and Everyday Programmer Bot API
A report on Introvision opening their DEFCON AI API as previously reported in detail on AiGameDev.com.
“While Introversion Software seem to be genuinely interested in the academic sector for the project - they aren’t leaving out the everyday programmer or even amateurs, with calls for the “next world destroying AI” open to anyone, with the API available for all, along with the Quickstart and Documentation, Function List, Constants and Tables and Introversion’s bot. There is also a mailing list for technical issues. The AI API will work with the Windows demo of DEFCON, which can used to test your bots against Introversion’s own. More information on the technical underpinnings of making a DEFCON bot can be found on Baumgarten’s website.”
Destructoid’s Commentary on last years Videogame AI
Destructoid thinks we should be making the following new year’s resolutions as AI Developers:
“I will be honest and admit that the character A.I. is about as revolutionary and advanced as in every other game — not very much.”
Computer Programming and Magic: The Gathering: AI Overview
A write up of how the AI works building up complex behavior from simple individual card AI. Check the site for full details on most of the aspects of it.
“The AI that plays cards is essentially very simple, it just randomly plays a card in his hand. Most cards have some AI code hardcoded into them. The computer will only play Wrath of God if you have a creature in play. Elvish Piper’s ability will choose the biggest creature in hand to put into play. The code in Giant Growth will only target a creature that will attack. The AI for each card is usually pretty simple, but combined together it makes the computer seem alive.”