top of page

The Last Foul Ball

Role 

Programmer
Producer

Date

Jan 2025

Engine

Unity
Perforce

The Last Foul Ball is a 2.5D top-down action RPG where you play as a sentient basketball. You roll, punch, and slam your way through rooms full of hostile sports balls, clearing enemies and facing a final boss fight to finish your final revenge. The game focuses on fast movement, clear telegraphed abilities, and readable top-down combat in a compact, dungeon-like map.

Inspiration

The game is inspired by basketball as an object and a motion, not traditional basketball rules. We borrow ideas like rolling, dashing, and slamming, and turn them into combat skills. There are many sports games about playing basketball, but very few where you are the basketball. Making the main character a ball fighting other sports balls creates a fun, slightly absurd setup that stands out and is easy to understand at a glance.


Story

The game takes place in a world where sports balls live like people. They have homes, gyms, trophies, and training spaces, all themed around their sport. Our main character is a basketball who once lived a normal life with his family. One day, a violent sports ball gang made up of other types of balls attacked them and took everything away.


Now he fights back. Moving through the gang’s territory, he takes down their minions, grows stronger, and heads toward a Final Match against the boss—Baseball. Along the way, he is not just seeking revenge; he is also trying to break the cycle of bullying and power in this world and prove that even a “simple” ball can stand up for himself and others.


cutscene (by Taka)
cutscene (by Taka)

Combat Design

Player Movement

Wsad / joystick (could go diagonally)


Player Ability


Movement: Roll

Basic Attack: Punch

Special Attack: Slam

Damage

N/A

2

4

CD

1s

N/A

5s

Range

N/A

Front rectangular (see red)

2x player size circle

(see yellow)

Effect (if any)

-”dash” forward player’s facing position (faster soeed than walk)

-Just deal damage

-”Teleports” player position to the slam zone and deal damage

-Stun enemies in range

Keyboard

Left Shift

J

Hold K to start aiming

Wsad to aim

Release K to deal damage/slam

Controller

Down button

Right button

Up button

punch & slam (tutorial room)
punch & slam (tutorial room)
slam
slam

Enemy Design

Ping Pong

  • Chase player after they enter attack range

  • Charge for a moment, then dash toward player position

  • Contact damage

Small Baseball

  • Chase player after they enter attack range

  • Hit the player with a bat when entering attack range

Baseball Boss

  • Bat-hitting (melee)

  • Throwing small baseball projectiles to aim at the player's position (ranged)

  • Has two phase: 1) use melee and ranged attack with 3 projectiles at a time 2) surrounding by 8 projectiles and shoot out one by one toward player position

boss (old)
boss (old)
boss design (final)
boss design (final)

Level 

Levels are designed as the “house” and hangout spaces of the sports ball gang, so the world feels like it belongs to them. 


Environmental touches, like bowling ball statues, sports equipment, and customized props, help the house feel like a believable home base for the gang, not just a generic dungeon.



Technical Design

Player Control & Combat

The basketball is driven by a custom PlayerController using Unity’s Input System and Rigidbody2D. Movement is free 8-directional top-down, clamped inside the arena. Three core abilities are implemented, and each has its own cooldown tracking and animation triggers, creating a clear, responsive combat kit.

  • Roll: A short, fast movement with cooldown, using a coroutine to move the player and give brief invulnerability.

  • Punch: A close-range melee attack using an overlap box in front of the facing direction to detect enemies.

    punch range (red rectangle)
    punch range (red rectangle)
  • Slam: A targeted AOE where the player aims with a separate input, shows an aiming circle, then teleports/slams to that position and damages all enemies in a radius.

    slam range (yellow circle)
    slam range (yellow circle)

Ability & Health UI

  • PlayerHealthUI is a persistent UI object that reads directly from PlayerController, keeping track of player’s health point in real time.

  • Three small bars show cooldowns for punch, slam, and roll by scaling darker UI elements based on remaining time.


Sprite Sorting & 2.5D Look

The game uses top-down 2D sprites arranged with sorting layers and ordering so characters and props overlap correctly, creating a 2.5D feeling (e.g., walking “behind” sofas or statues). And I used simple sprites (half-opaque circle) as objects’ shadow, creating more “volume” in the world so it does not look too flat. 



Arts

Concept Art

character concept (by Taka)
character concept (by Taka)
boss fight concept (by Taka)
boss fight concept (by Taka)

Cutscenes

memory (at the start)
memory (at the start)
final (after boss fight)
final (after boss fight)
title screen (art by Taka, design by Selina)
title screen (art by Taka, design by Selina)

References

[Existing Game]

Binding Of Issac
Binding Of Issac
Hades
Hades

bottom of page