Back to Portfolio

Battle of Balls

December 1, 2025
CARMv7JavaScriptRustMultiplayerGame DevelopmentPhysicsWeb
Battle of Balls
View 3 Photos

Battle of Balls

A game that evolved through three major versions, each pushing the boundaries of different programming languages and platforms.

Project Evolution

Version 1: C & ARMv7 (2021) - The Origin

The original implementation was developed in C for ARM processors with VGA display output as the ECE243 final project. This version demonstrated low-level programming skills and hardware interaction, earning a full mark in the course.

Key Features:

  • Direct hardware programming on ARM processor
  • VGA display rendering
  • Assembly optimization for performance
  • Real-time physics simulation

Technologies: C, ARMv7 Assembly, VGA Display, ARM Architecture

Repository: C/ARM Version on GitHub

Version 2: JavaScript Web (2022) - Going Online

The second iteration brought the game to the web using JavaScript, making it accessible to anyone with a browser. This version focused on creating a smooth single-player experience with improved graphics and gameplay.

Key Features:

  • Browser-based gameplay
  • Enhanced visual effects
  • Smooth ball physics
  • Single-player survival mode

Technologies: JavaScript, HTML5 Canvas, CSS

Try it now: Play the web version here

Version 3: Rust Multiplayer (2025) - The Ultimate Version

The latest and most advanced version, Ball Ball U, was rebuilt from scratch in Rust with multiplayer PvP capabilities. This version explores Rust's memory safety and concurrency features for game development.

Key Features:

  • Real-time multiplayer PvP gameplay
  • Advanced physics engine in Rust
  • Optimized networking for low-latency gameplay
  • Challenging puzzle mechanics
  • Enhanced level design

Technologies: Rust, Game Development, Networking, Multiplayer Systems

Repository: Rust Multiplayer Version on GitHub

The Journey

This project showcases a unique journey of reimagining the same game concept across three different programming paradigms:

  • Systems Programming (C/Assembly)
  • Web Development (JavaScript)
  • Modern Systems Language (Rust)

Each version taught valuable lessons about performance optimization, language design trade-offs, and platform-specific challenges.