The Concept
Unlike my midterm project, which featured complex textures and physics, I opted to make something significantly simpler in terms of its physical appearance and functionality, though it has far surpassed the midterm in lines of code.
I created a pixel-art-style infinite driving game, where the player weaves between two lanes of traffic through a highway in the middle of a desert. Occasionally, the player may come across stops, such as a garage or a pizzeria.
Design & Interfaces
The project titled “The Passive Road Game”, uses a variety of elements and perspective shifts to create a subtle depth perception of the background environment in contrast to the player and the car. Every element of the game is a pixel art image made by me in Paint3D. (Exceptions below). Additionally, the game features a soft ambient hum of the car’s engine, and several other audio features for some other interactions.
All UI interfaces scale for any device, though the game will not run unless you enable full-screen, for optimal UX. Exit prompts show up on the top whenever you are able to exit the highway to interact with a building nearby.
The Parts I Liked
I really enjoyed conceiving of a solution that is scalable across a variety of devices. It was interesting and challenging in a good way implementing the UI in this manner.
Additionally, I really enjoyed designing the cars and scripting them in game. Working with depth perception was also a really cool part of the overall project.
The Parts Where All Hell Broke Loose
Firstly, I had to manually write each and every line for marking up, positioning, adding functionality, sizing, and ordering the UI/UX features. Every object within the game took dozens of lines of code just to markup, let alone the 2k+ lines the actual functionality of these objects took.
Additionally, my initial plan of integrating this with Arduino failed due to connection and debugging issues emerging repeatedly. I decided to abandon Arduino entirely for the interest of putting forward a complete project.
An interest that itself was nearly sabotaged by P5JS itself, when the P5 environment ceased to load in my sketch at all, to the extent where I couldn’t make copies of it. With refreshing not working, overcoming this was a grand waste of time.
Exceptions to Asset Creation
I fetched all Audio assets from pixabay for free, and used CanvaAI to generate only the sky backdrop in-game. Everything else was done by me.

I have a feeling some of your problems came from going for too much complexity all at once. It’s better to develop and test small pieces of critical functionality (such as the Arduino<>p5 connection) first and then build up. In regards to your sketch overloading the editor I would say that the image loading functionality looks very complicated and I wouldn’t be surprised if there’s some bug or overuse of resources there. You seem quite talented on the technical side – a good challenge for you for future projects would be to see how you can make a really compelling interaction with minimum complexity on the technical side (i.e. spend more time / effort on the interaction design compared to the technical design).