In my last article, I wrote a general overview of our games AI, namely the main systems that made it tick. The plan was to take an in-depth dive into each of those systems in the following weeks. But reading some of the replies to that article I realized I hadn’t given much context to justify my gibberish. So before I get too bogged down in the "How?" I thought I should take some time and explain the "Why?". After all, this was supposed to be a general ideas box for struggling devs, as such the why is half the battle. And so in this article, I’ll look at the general design philosophy and the important questions that led us to all the systems we’ll be discussing.
What game are you making?
The first and probably most important question. Sorry if I’m stating the obvious but a first-person shooter isn’t going to have the same AI as a grand strategy game. The type of game your making is going to have a profound effect on the AI you need. Do you want its moves fast and efficient or do you want it to have a master plan tailored for every outcome? Will it be making its calculation one every turn or once every frame? In our case, we have a turn-based strategy. Since the calculations needed can be done in a relatively long span of time we could afford to factor in as much information as we wanted in the computers decision making. On the other hand, we didn’t want to let our AI’s crazy schemes run wild. We needed a way to be able to tailor its master plan ourselves, depending on the challenge we wanted to present each mission.
What kind of enemies do you want to have?
There are several different approaches to enemy design in every genre of game. Will you have weak mobs that try to overwhelm the player with numbers or do you have enemies that are just about as strong as the player? Is your AI just a simple agent orientating its way around the world or is it an omnipotent being which knows more about the game mechanics than even the developers? In Heralds of the order, we wanted both the player and enemy teams to be made out of fairly simple but also fairly numerous units. We also wanted all the variable to be there to see for both sides, making it easy for them to make the most advantages decision in every scenario.
Is it fun?
The most important question for every game developer. It applies to every single aspect of your game from the level one sewer rats to the compulsory cooking mini-game. And it can be a so easily overlooked when you’re three months into programing your eighty-layer neural network. Always remember that you’re an entertainer not an academic. Your trying to engage an audience not win a noble peace prize. Think of your AI as a puzzle. You don’t want its solution to be glaringly obvious at first glance. But you do want it to have a solution and one you can reasonably expect an average player to find. A good example of what not to do is the first version of our AI. Having all the available information and the freedom to use it as it saw fit, it decides that the best strategy run from the approaching player and stack all of its units at the end of the level all around the boss. Yeah, it was probably the best strategy it could have concocted. It was also a horrible chore to fight against. Furthermore, if our game was going to be about 2 team grouping up and slamming into each other, why did waste so much time on a fancy level editor. This computer obviously couldn’t be trusted with this much freedom.
How smart does it look?
Another thing that we found from the playtesting the first AI is that even though it had one of the best strategies in mind. Most players we showed our game too felt as if they were fighting a random number generator. To them, it seemed to be acting irrational. Your players will usually have a set expectation of how an enemy in your should generally act. And while subverting those expectations can lead to interesting challenges you run the risk making your AI look random and buggy. Even when you don't want your player to know what decision your AI is going to make, why it's making those decisions should always be visible. If a part of your game feels buggy than it might as well be. Making your AI look smart is usually easier that actually making it smart and in most cases thats as importaint or even more so.
The bumbling to come
With that out of the way, from next time onwards I'll be getting down and dirty in the programming trenches of our game. We're reaching an important milestone in our development. The first chapter of our game(6 story missions) is almost done. We'll be releasing it for free by the end of September. We hope that this will help us generate a large enough following to justify the work needed to finish the rest of our game. If not we'll just have to leave it as a passion project sacrificed at the altar of real life.
If you'd like to know how we got here, check out our first blog, summarizing our journey so far. if you would like to see this game finished consider signing up to our mailing list, to let us know you're interested in our work. You can play the current version of our DEMO to tie you over until the new one is finished. And consider filling out this survey to let us know what you thought. As always if you want to see more from us visit our website or our social media pages: Twitter, Facebook, Instagram.