Sorry state of academic crack-smoking

When writing my earlier blog entry on how you can get complex behaviors from very little and why it’s okay to fake AI (and anything else), I came across this slightly insulting comment about game AI vs. academic AI research that I just have to share (emphasis added):

As someone working in new (bio-inspired) AI research with an eye to applications in games, but within an academic setting, I often hear that game developers are not incorporating cutting-edge academic AI into their projects because it’s too “risky” (they can’t really predict how gamers would react), and because they don’t see the point in it. As a gamer, and as someone who cares what gamers think, I am often surprised by the sorry state of current commercial game AI – it has hardly moved since the 1980s. However, maybe the problem is that no-one really knows what we want from game AI. Academics keep coming up with innovative AI technologies, but what we should we use it for? What do you think? What sort of intelligent behavior would you like to see in games, but don’t at present? Which are the most obvious intelligence deficiencies of current NPCs that need to be fixed?

Author of this quote is Julian Togelius, an academic exploring the use of “computational intelligence” for games. (Computational intelligence, for those who aren’t hip with the latest lingo, is sort of an newfangled umbrella term for neural networks, genetic algorithms, and all those other generic biologically-inspired computational approaches you might grab for when you don’t have a clue about what you’re doing, but not otherwise.)

Togelius’ work seems to be focused on evolving racing game AI in particular, and some of his highlights can be found attached to this blog entry. Now, I’m particularly fond of this sample of “evolved” racing car AI:




Awesomely innovative and cutting-edge huh?

This movie is accompanied by another rather priceless quote (again my emphasis):

The last example shows that we still have some way to go: sometimes the outcome of the race is that both cars find themselves stuck against some wall. So far, the cars haven’t found out how to back away from a wall and resume the correct course. We’re working on more complex neural networks and sensors to overcome this.

Of course, I hope that these technologies will some day be incorporated into actual racing games (which shouldn’t be impossible, looking at the sorry state of most game AI) and physical vehicles. But along the way, I think there is a lot to be learned about how the evolution and learning of behaviour works, and I think that games are the ideal environment for doing that research in. More on that in a later post.

Um, yeah, no. Don’t let the door hit you on the way out.

15 thoughts on “Sorry state of academic crack-smoking”

  1. We should just be glad that Julian is devoting his massive brain to helping us poor little incompetents in the game industry.

    By the way I just registered but I have been enjoying your articles.

  2. I wasn’t exactly waiting for a reply, but thanks for stopping by anyway. As for this:

    “If he read these, and came back and still thought it all stank, I would be very happy to listen to his ideas on how to make my research more relevant for hard-working game developers like him.”

    Happy to oblige: all that stuff stinks. A major reason being that the little toy worlds aren’t at all representative of the situations real car game AI have to work within (narrowness of tracks, multiple opponents, fun factor, etc., etc., and handling all of these at once). With a flawed foundation everything you built on top of it crumbles, and you’ve therefore shown nothing.

    If you really want to put your money where your mouth is, work against the AI of others in more realistic situations, such as within the TORCS framework. That would be a first step towards relevance.

    Anyway, my post was really just about the incredible irony of your own work clearly not furthering on the “sorry state of current commercial game AI” that you were complaining about in the first place. Throwing stones in glass houses and all that.

  3. Dude, there’s nothing but inflaming words. Did you at least bother to read one of the papers of the guy? I did, they sound interesting. Not ground breaking or anything, but interesting nevertheless.

    So, he used inflaming words, like saying things like “sorry state of current commercial game AI” which is obviously exaggerated. Why should you do the same? How can you convince anybody that this sentence is out of line if you don’t give examples?! By personal attacking someone you can only add noise to the web.

  4. In my physics work I often feel like academics who publish physics articles are out of touch with the needs of games. I wish there was a tighter collaboration between the game industry and academia. My guess is that it is hard to get research grants to study game technology.

  5. I would not use as harsh words as Christer, but I agree with him. I’m few weeks away from delivering my AI baby which is used in an triple-a title. I think the whole name artificial intelligence in the context of game AI is just wrong. That does not only mislead the comparison between techniques used in games and in academia but also it creates a nasty pile of miscommunication inside the dev team. If you have a complex AI in your game most designers will just not ever bother to understand it, which in turn leads to bad level design and huge amount of bugs.

    I think it is far more important to create an AI which the designers can understand and exploit so that the game will have awesome levels. My point of view on this whole AI situation via “cinematic shooters”. In my work something like learning algorithms or neural networks would be a nightmare! It is just super hard to author the NN so that it learns the right thing. Early on in our project we tried to use NNs for teaching the character to walk path using complex animations and instead of learning to walk our NN learned the framerate we used for the sample data! For big projects you want to have realiable and predictalbe (from production point of view) algorithms.

    We developer too often create complex technology just for the sake of creating complex tech. In my situation I would much rather call our AI automatic characters than artificial intelligence, as there is no intelligence in it, just game rules and nothing artificial either, it is built as we intended it to be. You don’t call an automobile an artificial car either.

    p.s. The whole 1700 era is an awesome resource into understanding game AI. My personal favorite is the Digesting Duck (http://en.wikipedia.org/wiki/Digesting_Duck). It is also super interesting how automatic things have captivated the humans for such a long time. I don’t see my work very different than the work of the inventors of that time. And oh boy, didn’t they cheat too! (http://en.wikipedia.org/wiki/The_Turk)

  6. Pingback: Game AI
  7. Thanks for the reply, Christer. There are several reasons I chose to write my own game instead of using TORCS, the two main being that I didn’t think much of TORCS, and that I wanted complete control over my source code to allow myself more freedom in where to take my research. However, if people agree that TORCS is a good testbed, it might be time to move the research over there.

    Actually, we were just discussing what environment to use for the next iteration of the Car Racing Competition ( http://julian.togelius.com/cec2007competition/ ) and TORCS is one of the alternatives mentioned. Your opinion counts here… (Though we’d be much happier if we got something like PGR to test our stuff on, but somehow I don’t see that happening…)

  8. memoni: Interesting, and I can agree, with the important proviso that what you say is true for games which were designed without AI in mind, but not necessarily otherwise. I’ll write longer about this on my blog in the near future!

  9. togelius: I disagree. The AI on our game has been integral part of the design since day one. I think the important thing when arguing about AI is to understand what problem the AI is supposed to solve.

    You should check out the video dev diary’s of MotorStorm. You should be pick up some ideas how they solve the racing opponent AI in a racing game.

    I think the most drastic different in the mind set of an AI programmer/designer in big budget game and an academic is that in a real game project you really need to think about the production issues (anything unpredictable is no-no) and often 90% of the AI is something else than fancy algorithms. While most academics use just bare minimum representation like triangles, lines and sprites and in their tests 90% of the labor is the algorithm. Not to mention the hard QA process a real projects go through (I bet the Spore devs are having good time).

    It may sound harsh but I will not believe in your arguments until you have implemented an AI which is believable in the context it is supposed to work. The context of Sprint 2 (see Christer’s earlier article) is totally different than say the next shiny id game Rage. The level of detail in implementation is just paramount. And I don’t mean the AI algorithms for the racing, but how the AI needs to connect to the rest of the complex things like physics etc. The funny thing is that in the end the same simple vector field AI can be as entertaining as ’77, maybe we can now afford to multiple sets of vector fields to create different types of drivers.

    One of the largest academic AI Dancing Bears I have stumbled upon recently is crowd modeling. Yet to find one academic implementation that would be believable when you dress the agents into something else than sliding box.

    Simulation/AI complexity is perceived as chaotic (especially when there is not enough feedback (the representation), while detail is perceived as complexity. From production point of view complexity is unmanageable, while detail is.

    Check out Chris Hecker’s lecture on prototyping, it has a lot of valid points which also apply to the rest of the game dev process: http://chrishecker.com/Advanced_Prototyping
    My above comment maps that lecture’s “code vs. content” and “quality vs. cost”.

    (sorry for a long reply)

  10. With all due respect, I believe Mr Togelius is not really in touch with contemporary game technology and AI middleware. As stated in other posts, the priority for game development is high production values. Hence, simpler, more robust and more pragmatic solutions are often preferred to chaotic or emergent behaviour techniques. Having said that, the trend is that increasingly sophisticed approaches from academia are being incorporated within the gaming industry, subject to the underlying technology and demands. This includes approaches that fall under the umbrella of chaotic/biologically inspired/NN/emergent intelligence techniques. Although Mr Togelius claims that game AI has not evolved since the 80’s, ironically there have been racing games from that era with racing AI that, at least apparently, behaves much better than the video demo above. Typical examples are Nitro by Psygnosis and Mean Machines by Codemasters on the Commodore Amiga.

  11. Tjena Christer!
    Well, I’m a theoretical physicists and not an AI specialist so I can say anything about this :)

    As a hobby (well, I give 4-5 guest lectures per year too) I’ve spent the last 10 years trying to understand if AI “exists”, and my main conclusion is that the most important work in this area is done either in theoretical physics (complex networks), in physiology (hard core measurements of neural activity, in order to model it) or in relation to computer graphics… Using a broad definition of AI, the most elegant things I know of so far are Craig Reynolds truly ground breaking work on local rules for flocking agents (i.e. boids) and Karl Sims equally astonishing work on “virtual creatures”. With some extrapolation one could almost say that these results came from the computer games area rather than the traditional academic AI community. My opinion is that these results haven’t been fully appreciated by the AI community yet. Still only a handful of people on the planet would be able to reproduce Karl’s stuff from scratch. It requires a physics engine, graph theory, computer graphics, and data representations, and evolutionary principles that 99% of the AI researchers still don’t have the skills to implement.

    However, what is a bit sad with the game developer community, is that they don’t take time to read and appreciate scientific papers, and because there is so much they don’t understand there is much unnecessary skepticism against science. Small game companies don’t have the muscles to collaborate with academia, and the large ones (hello Sony and EA) don’t have the guts to do it (at least not enough of it).

  12. @Kenneth, I honestly don’t think it’s anywhere close to the case that game developers don’t read and understand academic papers. More often, the case is simply that the academic research has some desirable methods (though, IMO, less so in the case of AI research*, than say, graphics or physics) which aren’t feasible to use and still hit a 30-60fps target on a wide range of hardware.

    For instance, I’d love to have real-time plastic/elastic fracture, computed for any object, but it’s simply not feasible to do on current hardware at runtime, since the computation time involved would have to be a couple of ms at MOST, where most methods I’ve read come in at hundreds of ms or even several minutes. And I’d rather not have fracture than have to set up some ridiculous precomputation scheme to pregenerate static fracture areas.

    * – I say less so in the case of AI, because as others have noted, emergent or interesting behavior in academia is NOT what is desired by the AI programmer in games. The AI must be predictable to some extent in order to even be able to test it, and if it’s not, it at least has to act “not-stupid” in all cases, or customers whine. Not to mention that computational intelligence methods take far to long to get into working order, IMO.

Leave a Reply