Ruben Laguna’s blog

Review of Learning Game AI Programming With Lua

I was approached by Packt Publishing to checkout a new book they published called Learning Game AI Programming with Lua by David Young. They gave me a copy of the ebook and I agreed on taking a look.

I should say that when I read the title I though it will be a book about Game AI in the sense of finding your way in a maze, and stuff like that. But I was happily surprise to find that it’s about Game AI on a First Person Shooter perspective. It comes with an already setup framework that they call the “AI Sandbox” that provides an environment to actually try out the examples in a 3D rendered environment that actually look pretty decent.

I’ve never done any game development although the topic interest me, and this book actually made it very simple to start with. It’s really rewarding to see the results of your code snippets show on a nice looking 3D world. For beginner in game development like me, having the possibility of having a working example without resorting to C++ , just using Lua it really lowers the entry barrier.

Here are some screenshots so you can get a feeling on what you will achieve just following the examples and using the assets and artwork included in the provided AI Sandbox:

The books covers the details on how to:

  • show the AIs (the enemies) on screen
  • animate the characters movement
  • simulate the physics
  • model AIs behaviour
  • decision taking
  • pathfinding
  • communicate and coordinate groups of AIs

You can find a complete Table of Contents on the book page.

To be honest it’s more that what I expected to find. Again I’m a true novice in game development so maybe I did expect too little. But it has been a quite rewarding and easy to follow introduction to game development and how the AIs are implemented.

I haven’t actually finished yet but I think I can recommend it already, if you are interested in the topic and you like a tutorial based approach where you can try things out yourself.

In that sense Lua was a really good choice since it’s really easy to change your AI code without having to recompile and wait. Really encourages you to do changes and try for yourself.