Developing a game is fun but can be a lot of work for developers. The game developers are required to be skilled in different aspects such as Model Rendering, User Interface, Combat Design and the Artificial Intelligence [AI]. The most difficult of which is developing the AI protocols. They are highly complex algorithms that should be dynamic and flexible. In the development of an AI, the designer must take into consideration Neural Networks, Genetic Algorithms, and Fuzzy Logic among other concepts.
Each concept has its place within game programming. How they are applied is up to the developer. The developer is ultimately striving to create a dynamic environment that challenges the player. The Non-Player Characters [NPCs] benefit from the use of strong AIs creating dynamic changes in behavior. If properly programmed the Player Characters [PCs] are forced to change with the dynamic environment creating a new challenge every time the game is played. This change encourages the player to learn and adapt with the changing NPCs thus expanding the games complexity. Most NPCs have a static AI that never changes. The AI is based on a series of randomly generated tasks from a predefined list of possible options. This limits the choices of the NPC, hence allowing the PC to determine what the NPC will do because the AI is predictable.
The complexity of an AI is only limited by the developer’s imagination and the constraints of the computer or server that is running the game software. This in conjunction with time constraints forces most developers into the static or simple AI reducing development time and reducing unexpected situations in the development cycle. Static AIs do not challenge the player as another human would. In order to challenge the player, the developer will either overpower the PC with higher numbers of opponents or NPCs with superior statistics.
The AI should be designed in a dynamic way to process the data received and then return a unique resolution. Neural networks have a lot of hype and are not well suitable for most games and of the biologically inspired technologies, it is considered the weakest from of AI. This perspective is relative to the developer and the project that he is designing. In most cases, neural networking tends to be overly complicated causing the logic to be removed from the project. Either this stems from lack of understanding of what the technology can do or what it is capable of doing. By design, neural networks can integrate a large amount of data and distill it down to a simple solution. A typical game AI has no need to select a single target from a large group nor does it focus on anything more complicated than its current target. Standard AI’s follow this logic however a neural network AI has the ability to expand this concept by determining which target is poses the greatest threat or the easiest to kill. The standard AI would use simple metrics such as closest target or a random target from a group. The logic behind this style AI simplifies the amount of work the code must perform. Yet it does not provide a humanistic feel. The logic should be able to change dynamically throughout the engagement with the PC allowing the NPC to change tactics or adjust abilities being used depending on what the PC is doing.
An example is if there are two players attacking a single NPC. It has a choice of who to attack. A static AI would pick a target through simple metrics of PC location, first to attack or basic PC statistics. A neural network AI would take into consideration a large number of factors such as all of the NPC’s statistics, all of the PC statistics, personal objectives and environment al concerns. These metrics with the addition of more data available to the NPC can give it a more realistic feel of a human response. If player one has less health then player two, the NPC should choose player one, assuming every other metric is the same. Yet, in a static AI may choose player two because it is closer to the NPC. The neural network resolves the logic error of this problem.
Genetic Algorithms are different when comparing it to the other types. The design takes data from more than one source sometimes the source is considered irrelevant data by most static AIs. An example from biology is natural adaptation, when the environment changes the animal can only survive by changing to match the environment. This concept is rarely used within a game; because static environments allow players to anticipate the actions of the NPC. In a humanistic AI, the NPC should be more unpredictable. By using, genetic concepts the developer can change the way an NPC attacks or the kind of defenses it has. This expands the AI logic to a more natural response that can force a player to think on his feet instead of doing the same action constantly.
Another example of this change would be if a single type of attack has killed the NPC, for example a lightning attack, the new NPCs should start to become more resistant to that form of attack. Over time, this change would become more visible to the player that uses the attack type. The change would become obvious when the attack becomes less effective. To balance the change the NPC would become more vulnerable to another form of attack, such as fire. This simulates an evolutionary response within the gamming environment. To create this response, the AI collects both currently active and recently terminated NPC information. The AI can then use the compiled data to generate a new NPC that is more effective to the actions of the players. The newly created NPC might be familiar or can contrast to the player’s expectations.
The last concept is Fuzzy Logic which is a ‘soft computing’ technique. The technique attempts to mimic the ability of the human mind to learn and make rational decisions within the defined environment. Fuzzy logic is the most complicated form of AI because of the ability to mimic a humanized rational response. This technique can be as simple as selecting from a series of options to determining a complicated path to follow. The goal of fuzzy logic is to encourage the AI to think more like a human would. The human response is highly complicated because the player might choose to perform three tasks in a different order depending on circumstance. A traditional AI for an NPC would have a predefined path of how and when to do specific tasks. This creates a predictable response and allows the player to anticipate what the NPC will be most likely to do next. Fuzzy logic allows a developer to blur this line creating a more random yet human response to the player’s actions.
The AI of an NPC should be more dynamic compared to current standards. The developer can utilize the concepts of Fuzzy Logic, Neural Networks, and Genetic Algorithms to produce a challenging opponent that can actively react to the changing circumstances during combat with PCs. Even though, the usage of each technology can be difficult to implement. The developers can use these techniques to enhance the player’s experience. The ultimate goal of a game is to challenge the player and new complex AI algorithms can produce a more human response. This response creates the experience that players are looking for.