Shipped this project!
ARES started as a simple idea: build a 3D rover game using nothing but JavaScript and p5.js. I wanted to challenge myself to move beyond 2D sketches and actually understand how real-time 3D environments, camera systems, and object-oriented game architecture work under the hood.
What I built is a modular WebGL-based rover navigation game with segmented infinite terrain, procedural obstacle spawning, and a dynamic chase camera. Everything — from terrain scrolling to collision logic — was implemented manually using clean OOP principles. No game engines. No shortcuts. Just core rendering logic and structured system design.
Along the way, I learned:
How 3D coordinate systems actually work in WebGL
How camera matrices affect perception and movement
The importance of consistent world scaling
Why separating logic into managers (GameManager, ObstacleManager, Rover) matters
How small architectural decisions impact scalability
I ran into bugs involving coordinate mismatches, object lifecycle issues, texture rendering in WebGL, and camera inversion — and each one forced me to think more like a systems designer instead of just a coder.
This project strengthened my understanding of real-time rendering, procedural systems, and game architecture fundamentals. More importantly, it reminded me that building something from scratch — debugging it, refactoring it, improving it — is where real learning happens.
ARES is a stepping stone toward building more immersive and technically ambitious interactive systems.
And this is just the beginning.