Disc physics & deflection
Consistent bounce behaviour and readable deflection angles to reward intent, not luck.
Game Case Study
Fast-paced disc-thrower where you deflect enemy discs and break tiles behind them. Built as a clean remake to showcase my approach to core loops, AI and moment-to-moment feel.
Disc Arena is a small-scale remake of a mobile disc-thrower game. My focus is on a crisp core loop—throw, deflect, break—and AI behaviour that feels readable but still punishes greedy plays. Matches are short, snappy and tuned for mobile sessions.
What I was trying to achieve.
Make every throw and deflect feel punchy with clear feedback, short rounds and minimal rules overhead.
Build AI behaviours that are easy to understand but hard to perfectly predict, encouraging players to learn patterns.
Keep full matches under a couple of minutes with fast restarts so the game fits into commute-sized play sessions.
What I personally owned.
Defined the main rules, disc behaviour, tile-breaking logic and simple win/lose conditions.
Prototyped AI states (defensive, aggressive, greedy) and tuned reaction windows and accuracy.
Iterated on feedback hooks, timing and pacing to keep rounds readable and satisfying.
How the project evolved and what I took away.
This remake reinforced how much “feel” comes from tiny tuning decisions. Early versions were too chaotic because disc speed and bounce angles left players guessing. I improved readability by tightening angle outcomes, adding clearer anticipation, and tuning the AI to be consistent rather than purely reactive.
The biggest takeaway: players tolerate difficulty when they understand why they lost. Making outcomes legible (through feedback + predictable rules) mattered more than making the AI weaker.
The moment-to-moment flow I focused on.
Aim your throw → force a response → read the return angle → reposition → counter-throw to break tiles → repeat until the opponent’s backline is cleared.
Matches are short and decisive: you win by breaking the opponent’s tiles behind them. The goal is to create openings by controlling angles and timing.
What’s implemented in the prototype right now.
Consistent bounce behaviour and readable deflection angles to reward intent, not luck.
A simple but satisfying objective: every successful attack has visible, permanent impact on the arena.
Pattern-based reactions that stay readable while still punishing greedy throws and poor positioning.
Keeping the opponent fair, readable, and challenging.
The AI follows consistent rules (positioning first, then throw choice), so players can learn and improve across rematches.
If the player throws too aggressively, the AI is tuned to return discs into high-value angles that punish over-commitment.
Reaction delay, aim variance, and “aggression windows” let me tune difficulty without making the AI feel like it cheats.
Small timing changes completely shifted perceived difficulty. The best results came from making the AI slightly slower but more consistent—players preferred feeling “outplayed” instead of “robbed.”
Debug tools (angle lines, hit markers, timing logs) made tuning faster and removed guesswork when balancing reaction windows.
How I balanced progression and challenge for a smooth learning curve.
Tuned opponent behaviour and match pacing to keep early rounds learnable while steadily increasing challenge through reaction timing, aim variance, and pressure windows.
View difficulty notes →Structured rewards so each match feels meaningful while avoiding spikes that trivialise progression. Focused on clarity: players should understand what they earned and why.
View economy notes →