Spring 2021
Web Development Challenge

Game Landing Page

Project #10 - Maze Generator

Maze generator screenshot, desktop view

Start Date: April 26

End Date: April 28

Blog Post

What you see is what you get with this one - it's ugly, barely functional, and flatly doesn't work on mobile devices. But in a way, it sort of epitomizes everything I've been through this month. This "game" is quite simple, provided one is on a device that can play it. A maze will generate, and the player should click-and-drag the ball to the goal. Then a new maze will generate - rinse and repeat. While there are a number of obvious shortcomings, the one I feel the most is the lack of playability on mobile devices. While that would definitely be a critical flaw in a real project, figuring out how to make it possible here would have taken me over the deadline.

On a more positive note, I was able to successfully do what I failed to do in Project #3: build my own development environment for a non-trivial web application. As usual for this challenge, I by no means did it well, but I was able to make Rollup.js continuously build my Javascript as I was writing it. If there's one thing I'm taking away from this month, it's a newfound respect for the work that goes into understanding and implementing these setups, and I'm looking forward to learning how to build them right.

All that's left for this challenge is some clean-up work and a few closing remarks.

Remarks

As janky as it is, there's something I find strangely theraputic about these mazes. Maybe it has something to do with their composition - straightforwardly simple to solve, but messy enough to warrant one's full (if mindless) attention. In a way, that is more or less how I had expected most of April's projects to be, so perhaps I could think of this game as a reward of sorts for muddling through all of it.

At the time of writing, it hasn't been too long since I finished this project - most of what I wrote above is still relevant and fresh in my head, and I don't have much more to add here. I did have to spend a small bit of time learning about the Canvas API to make this work, but my biggest victory is definitely in my use of Rollup.js to develop a web application over multiple files. As small as that sounds, in the context of this challenge it means that, where I was once completely reliant on pre-built, black-box tool chains, I'm now capable of developing non-trivial web applications entirely on my own. That's not bad for just 30 days.

Game Landing Page