September 2019 – June 2020
September 2019 – June 2020
- Design of AI behavior as core gameplay element.
- Prototyping of AI behavior and Steam integration.
- Decision making and technical design of features and systems for the AI.
- Implementation of AI systems and features like spawn, director and flanking.
P.A.I.N.T is a Third-Person Shooter where you and up to three friends can use paint to color your surroundings and defeat enemies. You and your friends are P.U.N.K. Rebels that fight together against an evil murky suit’s factory. Grab your modified paint weapons and start fighting enemies, color the grey company and improve your gear. Once things get too intense, call in the RV and get back to the hub, upgrade your gear and last longer in the next session.
P.A.I.N.T is a game created as third project within the IGAD course. This project went through the full development process over the course of a full year. During the development process the project entered four different states each block like concept, pre-production, production and release.
I’ve implemented a flanking system for the AI which allows enemies to spread out and flank the player. This is a short distance solution only for spreading out enemies.
It works with an inner and outer radius in which the flanking behavior becomes active when reaching the outer radius. When the flanker reaches the inner radius it allows the flanker to proceed with their attacking behavior. The number of flank angles is customizable and the spreading of the flankers is dynamic which means that they will recalculate the best angle of approach frequently.
For AI’s to spawn I’ve implemented a dedicated spawn manager and areas. These are only physical representations within the world, they don’t contain any logic for spawning but rather define rules for areas.
This spawn manager controls spawn areas which on their part have spawn points. Each spawn area has an outer and inner region as well as a list of spawnable types for that area to spawn. Each area can be used to spawn at when any of the players is within the outer region, not in the inner region and any of the spawn points within aren’t in line of sight of any of the players. Spawn areas can be enabled/disabled dynamically.
This system controls the game flow in a sense of enemies being spawned. It makes use of so called director points which it gets over time to spawn enemies. Every enemy type can have different cost of director points to spawn an instance of it.
The AI Director tries to spread the enemies being spawned between the players and offers control of min/max enemies, director points increase over time and when to run the next spawn algorithm with the use of curves. The AI Director makes use of the Spawn Manager to spawn enemies.