#68 in Computers & technology books
Reddit mentions of Programming Game AI by Example (Wordware Game Developers Library)
Sentiment score: 24
Reddit mentions: 40
We found 40 Reddit mentions of Programming Game AI by Example (Wordware Game Developers Library). Here are the top ones.
Buying options
View on Amazon.comor
- This beautiful chime candle holder is intended to give your Yule or winter holiday season a little more cheer
Features:
Specs:
Height | 9.21 Inches |
Length | 6.09 Inches |
Number of items | 1 |
Release date | October 2004 |
Weight | 1.62480687094 Pounds |
Width | 1 Inches |
The last couple of weeks in Zombox development:
(tl;dr: brand new zombie AI with lots of bells and whistles, tweaked ammo display and you can no longer hit things through walls)
Here are some screens showing the debug info I use to help me visualize the new AI system. White lines show new A* paths that are calculated. Green lines point to the next node on a zombie's path when the zombies is following a sound. Magenta/Cyan lines point to a zombie's active target (cyan = close, magenta = far). Red lines show the next node on a zombie's path when the zombie is chasing a target (although zombies are allowed to veer off their path when the target is directly in range). Yellow lines point to a new sound that a zombie has heard.
Animations:
As for New Year's resolutions...my short term goal is to implement Jump Point Search into my A* algorithm. My long term goals involve adding human NPCs, the underground subway system, the structure-building system, mini-quests, more zombie types including zombie animals, and releasing the game in May.
More info: Devblog, Youtube, Twitter
The one I always suggest is Programming Game AI By Example. The amount of valuable info you can pull out of this one book is incredible. It's still something I reference years later.
you could use space partitioning. Split the world into grids of say 10 x 10.
let each agent update which grid cell it is on on each frame. Then its just a matter of testing only the agents in the surrounding grid cells from the current agent (which will most of the time be a small number)
This book explains it really well: Programming Game AI by Example. Also has code samples online
The actual Amazon link
This book Programming Game AI By Example comes highly recommended by me.
It contains all of the above along with an example 2D topdown style deathmatch game with bots to give you a clear understanding of the most common topics in Game AI. It's also one of the more practically focused books, rather than theory focused.
I enjoyed seeing the topic being brought up in a public format as AI becomes more popular to the majority of gamers, but I wasn't a huge fan of the type of discussions going on in the thread. The main commenters were definitely knowledgable, but a lot of important info to really express their points was left out. This book is a really good introduction to game AI for anyone interested in the field:
http://www.amazon.com/Programming-Example-Wordware-Developers-Library/dp/1556220782
You can easily find a pdf of the book by searching for it on google.
edit: It goes into specifics for coding purposes, but I wouldn't say it's difficult to read without any programming experience. It's definitely intermediate concepts described for beginners.
Check out Programming Game AI by Example and Artificial Intelligence for Games. They are both decent game AI books, the former actually develops an AI for a soccer simulation in chapter four. There's also [Behavioral Mathematics for Game AI] (http://www.amazon.com/Behavioral-Mathematics-Game-Dave-Mark/dp/1584506849/), it expands on the concepts of utility and decision making which are only touched upon in the first two books. It's purely theoretical but very interesting.
I'll start off with some titles that might not be so apparent:
Unexpected Fundamentals
These 2 books provide much needed information about making reusable patterns and objects. These are life saving things! They are not language dependent. You need to know how to do these patterns, and it shouldn't be too hard to figure out how to implement them in your chosen language.
 
Good General book
 
This book is great if you're going to make a browser based game
 
General Knowledge books
 
Provide a working moveable 3D model with C++ and DirectX, Very cool.
 
More general game base building
 
Working product results books, little if any modification needed
Releasing in a couple months (hopefully) 2 Very good books using C++ to develop by.
 
Not presented in the best manner but still noteworthy:
 
I used to love XNA...but now it's not feasible for commercial development. If you're a beginner to game design...starting out with XNA might actually be useful. It's easy to pickup and put out a working product. XNA is C#
 
 
Working product books, modification needed to make run on current systems
Provides a working FPS game in C++ on DirectX 9. Good for some starting out knowledge for an FPS
 
Good for 3D Terrain rendering in DX9...however much of this is outdated...some concepts still apply, and it's not the worst idea to see a working example.
 
TLDR: Click links starting at top, buy, read, profit
Depends on what you are interested in.
If you are interested in games, pick a game and do it. Most board games are not that hard to do a command line version. A game with graphics, input, and sound isn't too bad either if you use something like Allegro or SDL. Also XNA if you are on windows. A lot of neat tutorials have been posted about that recently.
If you are more interested in little utilities that do things, you'll want to look at a GUI library, like wxWidgets, Qt and the sort. Both Windows and Mac have their own GUI libraries not sure what Windows' is called, but I think you have to write it with C++/CLI or C#, and Mac is Cocoa which uses Objective-C. So if you want to stick to basic C++ you'll want to stick to the first two.
Sometimes I just pick up a book and start reading to get ideas.
This is a really simple Game AI book that is pretty geared towards beginners. http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782/
I enjoyed this book on AI, but it is much more advanced and might be kind of hard for a beginner. Although, when I was first starting, I liked getting in over my head once in a while. http://www.amazon.com/Artificial-Intelligence-Modern-Approach-2nd/dp/0137903952/
Interesting topics to look up.
Data Structures
Algorithms
Artificial Intelligence
Computer Vision
Computer Graphics
If you look at even simple books in these subjects, you will usually find tons of small manageable programs that are fun to write.
EDIT: Almost forgot, I think a lot of these are Java based, but you can usually find a way to do it in C++. http://nifty.stanford.edu/ I think I write Breakout whenever I am playing with a new language. heh
Book suggestions? Now that's my jam.
Out of all the books i've read, here are my recommendations regarding game programming:
Eric Lengyel's Books (only one out so far). This is aimed at game engine development, but if the 2nd onward are as indepth as the first, they will be amazing fundamental knowledge. Also, they're not thick, and jam packed with information.
Game Programming Patterns. The only book that comes more recommended than this is the one right below it by Jesse Schell. This book is fantastic, but you should write one or two small games to really get the most out of this book. You can also read it online on his website free, but then you don't get a pic of him and his dog on the back cover.
Book of Lenses. This is your intro/intermediate dive into game design. There are a lot of game design books, if you only read one, it should be this one.
Gane AI By Example. This book is a hodgepodge of fantastic techniques and patterns by those in AAA. There are other books on the series (like Game AI Pro) which are similar, but in my opinion (at least when I read AI PRO 3), they're not as good. But more knowledge is never bad.
Truthfully, as I sit here looking over all my books, those are the only ones i'd consider mandatory for any seasoned developer. Of course plenty of developers get by without reading these books, but they likely pick up all the principles listed herein elsewhere, in bits and pieces, and would likely have benefited having read them early on.
Here are a few others that I do recommend but do NOT consider mandatory. Sorry, no links.
Unity in Action. Personally, I recommend this or a more interactive online course version (udemy.com/unitycourse) if you want to learn unity while having a resource hold your hand. Having read the book, taken the course, AND taken Unity's own tutorials on the matter, i'd order them in order from Course being best, book second, videos from unity third. But none of them are bad.
Game Engine Architecture. This is the king for those who want a very broad introduction to making a game engine. It comes highly recommended from nearly anyone who reads it, just so long as you understand it's from a AAA point of view. Game Code Complete is out of print and unlikely to be revisited, but it is similar. These are behemoths of books.
Realtime rendering. This is one I haven't read, but it comes very highly recommended. It is not an intro book, and is also over 1000 pages, so you want this along side a more introductory book like Fundamentals of computer graphics. Truth be told, both books are used in courses in university at the third and fourth year levels, so keep that in mind before diving in.
Clean code. Yeah yeah it has a java expectation, but I love it. It's small. Read it if you understand Java, and want to listen to one of the biggest preachers on how not to write spaghetti code.
Rimworld guy, Tynaan sylvester I believe, wrote a book called Designing Games. I enjoyed it, but IMO it doesn't hold a candle to Jesse Schell's book. Either way, the guy did write that book after working in AAA for many years, then went on to create one of the most successful sim games in years. But yeah, I enjoyed it.
Last but not least, here are some almost ENTIRELY USELESS but interesting diagrams of what some people think you should read or learn in our field:
https://github.com/miloyip/game-programmer
https://github.com/utilForever/game-developer-roadmap
https://github.com/P1xt/p1xt-guides/blob/master/game-programming.md
Programming Game AI by Example is another great resource.
The Starcraft Broodwar API has source code for a bunch of bots from the annual competition at AIIDE. You can find them here. They use a variety of techniques that will help you set you in the right direction.
I'd recommend this book too if you're interested in AI. It's the most comprehensive survey of the most common techniques used in the industry today.
Good luck!
Do the enemies ever hit the player? Perhaps you can try scaling the player's health to how often enemies land attacks. (For instance, instead of Zelda's 6+ half-heart system, use old school Mario's 'one hit you die unless powered up' system. Or Super Meat Boy's one-hit KO.)
>the player could just roll out of the way and beat the shit out of them while the enemy's attack was missing.
Sounds like fun to me! But I take it you're going for a different feel?
I'm currently reading Programming Game AI by Example. It goes from basic AI moving to pathfinding to goal hierarchies. The majority of the book might be a little too introductory for you though, at least until you get to the goals section.
Unity is the bee's knees.
I've been messing with it casually for several years, and got serious in the last 2-ish years. I like it because I get to use C#, and that's the language I know best. Only problem in it's using some weird limbo version of .NET 2, that's not actually 2.0 but is also 3.0 is some places? I think it's because it's using Mono 2.0, which is some subset of .NET. It's weird. They're moving to 4.5 soon anyways so I'm hype for that. I'ts been a lot of fun regardless, I get to apply a different knowledge and tool set from my day job. Not to mention it feels great when you actually get something to build and actually work.
So anyways here's a list of resources I've found over the years to be super helpful:
Things on Reddit
Books
Videos
Other Things
That's all I can think of right now. I know it's a lot, but hopefully you can take away at least one of these resources.
Happy dev-ing!
Yeah... that's not how you want to do it if you want actual functional AI that behave independently.
Look up Autonomous Agents - Steering Behavior, online.
Here is something to get you started
http://natureofcode.com/book/chapter-6-autonomous-agents/
You would want the ""Follow" and "Arrival" steering behaviors specifically. The arrival behavior is what you described as the AI "slowing down".
If you can get your hands on Programming AI by Example from the library, school, or otherwise it's phenomanal resource that teaches how to program Steering behaviors for beginning AI developers.
If you like books, I've been reading this one lately Programming Game AI by Example:
http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782
I'm really enjoying it and it has a tonne of useful information. Read some of the pages on the Amazon site and see if it sounds interesting for you.
Programming game ai, http://www.amazon.com/gp/aw/d/1556220782/ref=redir_mdp_mobile, has great example code for a soccer game including path finding and steering.
Look at Programming Game AI by Example. It has a lot of collision detection information and how it is used in various behaviors.
I've found working my way through this book: Programming Game AI By Example really helped me figure out how to do all you're asking. I would recommend it if you are serious in learning how to make basic to more advanced AI.
This book should have everything you need. It's accessible, quite funny at times, but has a good introduction to everything from finite state machines and communication (what boxhacker described), to pathfinding and goal seeking behavior. What's best is that they have sample c++ code on their website you can look through.
You are looking for a mix of "neural networks" and "fuzzy logic"
Personally I'd suggest Game AI by example great ai book.
Very good response.
In the book Programming game AI by example. This is explained very well. In c++ though.
Moreover, you can have more than one state machine. One global, one for the weapon, one for the player... etc. Depending on your game needs.
I started by showing my son Scratch when he was 9.5yo and helping him make a couple of arcade games with it. He was never all that interested in Logo, but got really turned on by Scratch. After a couple of months he was frustrated by Scratch's limitations, and so I installed Ubuntu on an old computer, showed him pygame/python and worked through a couple of online tutorials with him, and let him loose.
He learned to use Audacity to edit files from Newgrounds, and Gimp to edit downloaded graphics as well as create his own. He made a walk around, rpg-like adventure game, a 2D platformer, and then decided he wanted to learn pyggel and has been working on a 3D fps since last summer.
Soon, I'm going to get him started on C++ so we can work through a book on game AI (which uses C++ for all its examples). He's 13.5 now, and thinks programming is great and wants to grow up to be a programmer like his mom :)
I highly recommend a simple language like python for a beginner, but Scratch is wonderful for learning all the basic concepts like flow control, variables, objects, events, etc, in a very fun and easy way. The Scratch web site also makes it simple to share or show off because when you upload your program it gets turned into a Java applet, so anyone with a browser can see what you've done.
Sorry, no, Goal Oriented Action Programming is the name of an AI strategy, like Finite State Machines. There is a wonderful AI book called Programming Game AI by Example if you're interested into delving into all the possible mechanics. There's plenty of free online resources too. Read up on both types of AI and I bet you have an AHA! moment. Other people have thought about these problems for a long time.
Steering behaviors are explained in depth (with c++ code) in the book Programming Game AI by Example
It's mentioned in the article, but I think it's worth pointing it out again as it's a very good book on the topic.
I personally love Programming Game AI By Example. It gives lots of very usable examples in an entertaining and understandable way. It's pretty friendly for beginners and even offers a game math primer at the start of the book. However the examples still have a lot of meat to them and thoroughly explains some important AI concepts like state machines and pathfinding.
Programming Game AI by Example
Is really helpful for implementating agent AI, which is a big component for those types of games.
It sounds to me like you need to read a book on game dev and a bit about general programming. I can recommend
This book dives nicely into exactly what you want to do and even suggests some ways to combine steering behaviors:
http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782
You're not going to find a book that is that specific unfortunately.
If you're wanting one for C++, I would recommend 'Programming Game AI By Example'; it'll teach you everything you'd need to know in order to start building an RTS.
You know, a fantastic book is Programming Game AI By Example. It's fantastic for learning about AI, but the author also put a lot of effort into the code, so you can learn a lot about general game design from it as well. Well worth the price. http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782 . You can download the code samples from the author's website to see what I mean. It is only 2D, so it won't help you with collision detection and some of the more 3D specific topics, but the core of the engine can be applied to anything.
One thing that is really important is to realize that there's no silver bullet. Every design decision has its benefits and its trade offs. It's easy to fall into the trap of overthinking your design, especially for personal projects - it is more beneficial for you to try to write it and have to rewrite it because of a bad design decision than to spend months trying to come up with the perfect architecture. That's not to say that you should ignore design, but rather that once you think you have a good idea, try it out, experiment, see what works and what doesn't. If you focus on having a modular design to your software, you'll find that rewrites get easier and easier.
Programming Game AI by Example has a great, easy-to-understand explanation and walkthrough for learning ANNs: http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782
Once you've learned at least ANNs, you can delve into the popular approaches to GAI:
My biggest recommendation: read about all of them! Try to understand why scientists pursue each approach. Having a solid understanding of the motivation behind each approach will make it much easier for you to decide which path to pursue. I recommend the following books:
It looks like the Deep Learning folks have already pitched in, so I'll trust their recommendations are good on that end. Read their stuff too, then decide for yourself. You'll find that there's fanatics from every branch, and they'll claim that their way is the only way. This is the only thing I can tell you for certain: no one has proven that any approach is better than the other just yet, and anyone who claims they have needs to remind themselves of the no free lunch theorem [http://en.wikipedia.org/wiki/No_free_lunch_in_search_and_optimization].
They're not free but you might check out these two books.
The 2nd edition came out in 2014. It's good for an overview of commonly useful systems and what production teams need from them. It doesn't go into great detail. [EDIT] d'oh I was slow.
Real-time Rendering has a 4th Edition coming out soon with more up-to-date info.
Given your experience, it sounds like your math's probably strong, but if you want review Eric Lengyel has a new book out that I heard is good: https://www.amazon.com/Foundations-Game-Engine-Development-Mathematics/dp/0985811749
For AI:
Game AI By Example is an older one that provides a decent baseline if you're not very familiar with game AI: https://www.amazon.com/Programming-Example-Wordware-Developers-Library/dp/1556220782
And a lot of more recent info and course material is on at http://aigamedev.com/ which I guess has turned into https://nucl.ai/
Also some of the old Game Programming Gems have random chapters on AI techniques.
Also go look at the popular engines, do their AI tutorials, then try to look at the code. The Behave plugin for Unity does behavior trees, and UE4 has a behavior tree system you can read about.
Behavior trees aren't the newest thing though, look at the talk catalogue for the GDC 2018 AI Summit.
I had the same problem. I ride the subway every day and have a ton of time to read, so I've been trying to collect similar resources.
Here are some resources I found really helpful:
This is a VERY basic (think: learn how to code!) introduction to Unity. I personally found it too elementary, having coded in a few different languages, but it might be a good place to start as it explains basic Unity design concepts like Components, Materials, Colliders, etc.
This is by fast the best 'getting started' tutorial I've found. It walks you through creating a really basic project from scratch using Unity basics and scripts. This is what I based most of my code off of when I first started my project.
This has been the most helpful resource for me. It's not Unity specific but will teach you A TON of great fundamentals for things like how to move a character, common patterns like StateMachines, how to handle AI, etc.... All of these concepts will be relevant and many are already in place in Unity so you'll recognize them right away.
Advanced: Game Programming Patterns - http://gameprogrammingpatterns.com/
This is a book (online/pdf/epub) that teaches the more advanced patterns you'll be applying in your code. I'd suggest this once you finish with the above resources and have been working through your game for a bit.
I would recommend this book and this book
Are you talking about this one?
http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782
I highly recommend reading Programing Game AI by Example. It includes a chapter on modeling an AI controlled soccer team. The book itself is a fantastic primer on a variety of workhorse AI techniques that every game dev should be familiar with.
That being said, oftentimes fun gameplay can arise from simple rules + player interaction. So, read the book, but don't be afraid to just throw down some simple triggered behavior and see what's fun.
I highly suggest this book (Programming Game AI by Example), second chapter goes over the finite state machine with some good examples.