π Basketball Battleground β Swipe Nβ Score
π About the Project
Basketball Battleground started as a simple swipe-to-shoot mobile concept. I wanted to blend arcade-style gameplay with a progression system that rewards skill and time investment β a mix of NBA Jam energy and Call of Duty-style ranks. The goal was to make a casual basketball game feel competitive, rewarding, and alive.
π― What Inspired Me
The inspiration came from:
- Classic arcade basketball games
- Mobile games that balance grind and cosmetic rewards
- My love for progression systems where each level unlocks something meaningful
I wanted players to feel like their time and skill mattered, and that every shot brought them closer to glory β both visually and numerically.
π οΈ How I Built It
- Game Engine: Meta Horizon Worlds
- Programming: TypeScript + Horizon APIs
- Rank System: I created a scalable XP-based rank class with 50+ titles, each with required XP, color data, and unlocks.
- Unlockables: I connected ball and goal textures to XP rank events with networked texture triggers.
- UI: Designed responsive HUDs to reflect progress, power-ups, and unlocks dynamically.
π What I Learned
- How to structure progression logic cleanly in TypeScript
- Binding and rendering dynamic UI components efficiently in Horizon Worlds
- Creating scalable unlock systems that work across multiplayer environments
- Handling cross-device UI scaling for mobile and VR users
π₯ Challenges I Faced
- Designing a progression curve that feels rewarding but not grindy
- Balancing visual clarity in a HUD that shows score, XP, power-ups, and streaks
- Handling real-time texture changes without frame drops or sync issues
- Keeping the XP logic modular and extensible as I added side missions and bonuses
π§ Side Features
- Play Time Bonus: Players earn bonus XP the longer they play
- Side Missions: Optional tasks that grant XP boosts and speed up rank progression
- Mobile Optimization: UI scales to mobile screen-safe areas automatically
π The Formula Behind Progression
Using XP interpolation logic to calculate how close a player is to their next rank:
const percentage = (currentXP - currentRank.xpRequired) /
(nextRank.xpRequired - currentRank.xpRequired)









Log in or sign up for Devpost to join the conversation.