Background image
Background image

Asteroids Remake

CollegeSolop5.jsJavaScript

I developed a faithful recreation of the 1979 Atari Asteroids arcade game using JavaScript and p5.js. The project was scoped as a systems-focused exercise, recreating the gameplay constraints and behaviors of the original without relying on a game engine or built-in physics systems.

All gameplay systems were authored from scratch, with movement, aiming, and interactions driven by vector-based calculations and distance-based collision logic. Player movement emphasizes inertia, drift, and momentum, with consistent screen-wrapping and collision behavior across all entities, including the player ship, asteroids, projectiles, and enemy saucers.

Asteroid behavior mirrors the original arcade structure, with large asteroids fragmenting into smaller variants that increase difficulty while offering higher cumulative scoring potential. The game supports two-player cooperative play with shared enemies and independent scoring and lives, requiring consistent system behavior regardless of player count.

Enemy saucers are implemented as two behavioral variants that influence movement patterns, firing behavior, and accuracy. Smaller saucers dynamically adjust their aim based on player score, including predictive targeting that anticipates player movement at higher difficulty thresholds. Target selection prioritizes the nearest active player, and firing accuracy is intentionally imperfect to maintain fairness and avoid unavoidable damage.

Supporting systems include lightweight UI, custom visual effects, gameplay-driven camera shake, and basic audio management. All systems were designed with a focus on mechanical clarity, responsive gameplay feel, and accurate recreation of the original arcade experience.

PRIMARY ROLES

Gameplay ProgrammerSystems Programmer

SOFTWARE USED

p5.js Web Editor