PROJECT_03

Purrvivor

An arcade cat-apocalypse survival game

Purrvivor is a top-down arcade survival game where the player must survive attacks from zombie cats in an apocalyptic world. The game currently includes dozens of enemy types, three weapons, and four major gameplay areas. How long can you survive the horde?

ROLES:
Gameplay Scripter
TAGS:
Blueprint Structure DesignEnemy AI Logic

Overview

Purrvivor is an arcade apocalypse-survival game where the player's only objective is to collect resources and survive the horde for as long as possible.The game includes several playable areas, three weapons, and dozens of enemy types. Players dodge different attack patterns, gradually explore the city, and chase higher scores over repeated runs.

Player character model

Contributions

My role on this project is the gameplay scripter responsible for maintaining enemy-related systems. This includes the base enemy architecture, AI systems, attack systems, and random spawning systems.At the same time, I coordinate with the other gameplay scripters and support other systems when needed.

Enemy Structure

Because the game is developed entirely in Unreal Engine Blueprints, I chose to derive all enemies from a shared parent Blueprint.After discussing it with the team lead, we agreed that a small arcade game like this did not require behavior trees; a single AI Controller Blueprint could handle the general AI logic.The parent Blueprint therefore exposes several interfaces for basic functionality such as attacking, target acquisition, and movement without connecting to a behavior tree.

Figure 1: Enemy parent Blueprint (click to enlarge)
Figure 2: Enemy parent Blueprint

The logic shown in Figure 1 is used by almost every enemy and only requires the child Blueprint to call the parent Begin Play logic. The section shown in Figure 2 mainly exists to provide functions that child Blueprints can override.

AI Controller Blueprint

Because most enemies can use the default AI Controller, I connected part of the general behavior directly to the parent enemy Blueprint, while special enemies can use independently written AI Controllers when necessary.The current default controller gets the player's location, moves toward the player, and decides whether to attempt an attack based on distance. The attack attempt then returns to the individual enemy child Blueprint and uses its override of the parent function shown in Figure 2.

Figure 3: Default AI Controller Blueprint (click to enlarge)
Figure 4: Default AI Controller Blueprint
Figure 5: Default AI Controller Blueprint
Figure 6: Simplest override implementation

Conclusion

My scope of responsibility in Purrvivor is relatively limited, mainly because a significant portion of the team's effort has gone into the contracts, operations, and presentation work required by the course.I also used UE5 to create a short opening cinematic for the game, which was used to open one of our presentations. It is too simple to include in the portfolio, so I have left it out here.

This game is still in active development.