Shooter AI
Bachelor Thesis | Utility based AI System in Unity
My Role:
Solo Developer, mainly programming
Technologies:
Unity | C# | Blender | Photoshop
Time:
09/ 2020 – 02/2020
Status:
Finished and graded
This was the project for my bachelor thesis at the HTW Berlin. The goal was to create a modular, performant and immersive AI for a shooter game. The architecture is based heavily on the “Infinite Axis Utility System” proposed by Dave Mark from Intrinsic Algorithm in several GDC talks.
Core Principle
Decisions
Every agent has a collection of decisions. Every x seconds all decisions are assigned a rating. The best rated decision gets executed. A decision could be something like [Attack Enemy 1] or [Get Behind Cover 2].
Considerations
Every Decision is rated through several considerations, which represent states in the world. A consideration for a decision could for example be [on a scale from 0 to 1 – how far am I from the enemy?] or [on a scale from 0 to 1, how much health do I have left?]. The score of all considerations combined make up the score of a single decision.
VideO Showcasing the Decisions
https://bernard-zaborniak.com/wp-content/uploads/2022/05/short-AI-video-for-wesbite.mkv
VideO Showcasing the Perception System of The NPCs
Screenshots




What I’ve learned
- Implementing a humanoid animation system and the corresponding character controller
- Implementing custom animation constraints and inverse kinematics
- Optimising script performance through a custom LOD system
- Creating a modular, designer friendly AI system, which is versatile can can be applied to other genres such as simulation or RTS