Completion Date: 4/20/22
Development Time: 6 Weeks
This project turned out to be a huge improvement compared to the previous game.
Writing the code turned out to be fairly easy, as there were surprisingly few bugs.
I am very happy with the color scheme used in this project (although the color used
for the level select buttons is a little bit strange). Attempting to create a
smooth level progression was the most difficult thing to do by far. The 15 puzzle
is inherently difficult, so it is hard to ease the player into wrapping their mind
around how the puzzle functions.
I am very proud of the music used in this project. This was my first attempt at
composing background music for a game. It took a while to come up with an instrument
and a chord progression that set the proper mood for the game, but in the end I feel
I settled on something that did the job extremely well. However, one thing that
players may notice is that the song does not loop seamlessly. Because of the way
that JavaScript handles playing audio files, simply using the built in loop property
does not create a perfect loop. I decided that this problem was small enough to be
ignored for the time being, however I plan to do further research on this problem
shortly after this website is released.
8/8/22: Added Mobile Support
Adding mobile support took a lot longer than first anticipated, but was a good learning
experience nonetheless. I found that there seemed to be three steps to adding support
for small devices. The first step is pretty obvious, but it is to add touch controls.
This was pretty easy and only added about 40 lines of code. The next step is to come
up with a way that the game can resize to fit on any screen size. It is good practice to
do this when designing the original game anyways, but in my case I had designed the game
to fit only in a 800 x 600 window. I had done this because I was unsure what adding mobile
support would entail, so I left the task to be done after I had finished the main game.
In the future I will make sure to design my code in a way that I can easily adjust the
content to fit different resolutions. I ended up having to rewrite my CSS twice, but in
the end it was worth it because I believe I have come up with a product that looks good
on small screens. The last step is to fix the many bugs and quirks that come with mobile
support. Once again, an experienced programmer would likely be aware of these issues and
write their code in a way that accounts for most of these problems ahead of time, but
simply had no idea there would be so many issues to account for. The vast majority of these
issues had to do with sound and happened on IOS devices. The biggest issue I encountered
with IOS devices is that playing multiple sounds back to back would cause the game to freeze.
I have seen many games play several sounds at once without any issues so I am sure that
there is a better solution, but I solved this problem by simply not playing as many sounds
on mobile (mainly just disabling the swiping sound, as that is played the most frequently).
All things considered, I am more than happy with how this game came out and I am very satisfied
to now call this project finished.