Boxy Boxer

Personal Project Unity
Play Online

Overview

Boxy Boxer is a PvE boxing game in which players fight against an enemy AI. This two-week assignment was built around the theme of state machines, giving me the opportunity to experiment with implementing them in my code. Inspired by side-scrolling boxing games, I wanted to explore how enemy behavior could emerge from different states and transitions.

With limited time and art assets, I created an “abstract” take on boxing by making the fighters square-shaped. Color communicates their combat states: red for jabbing, black for guarding, and white for idle.

Enemy AI

I initially designed the enemy AI around three main states: attack, defend, and idle. Movement and combat actions were handled together within each state. Although the enemy made logical decisions, it felt predictable and robotic. My goal was to make it feel more human, with both reasonable decisions and natural reactions.

To address this, I split the AI into two separate state machines. One handles movement through chase, retreat, and idle states; the other handles combat actions through jab, guard, and idle states. This structure gave me more precise control over the enemy’s behavior, helping it feel more dynamic, less predictable, and more human-like in combat.

Game Feel

After finalizing the enemy AI, I focused on polishing the game feel and player experience. Because the AI is challenging, reactive, and unpredictable, I wanted every successful hit to feel rewarding and impactful. I added particle effects, camera shake, and sound effects to give punches a stronger sense of impact and make combat more satisfying.