I'm going to violate all #webdev principles and instead of implementing a proper form I'm going to implement options in #FingerMaze through a little bit of JS that changes the links to “new game” and “permalink to the current one”.

I've started playing around with the localStorage API in #FingerMaze. Now it will remember the last maze you played and automatically open the menu to allow you to start a new one when you reach the end.

https://dropthemath.oblomov.eu/fm/

Finger maze

Maze traversal game with touch support

I know nobody cares, but I've made some dramatic (and personally very satisfying) layout improvements to #FingerMaze

https://dropthemath.oblomov.eu/fm/

There's even a short built-in help system if you click on the input method icons on the top right, that works almost as intended except for this #Firefox missing feature:

https://bugzilla.mozilla.org/show_bug.cgi?id=1856460

I think the next step is probably an “options” system to plug in the “hamburger” menu in the top left.

Finger maze

Maze traversal game with touch support

In fact, the outcome is better than the hack I had before, and if you've played #FingerMaze before you can try again now (particularly on mobile) and appreciate the difference:
https://dropthemath.oblomov.eu/fm/
There's a new problem now though: I've moved the new/permalink/help links into a `details` element, and while I can open and close it on desktop, it doesn't seem to work as expected on mobile, and I don't understand why. And debugging on mobile is … nontrivial.
Finger maze

Maze traversal game with touch support

Anyway, I really don't feel like coding such a compression algorithm at the moment, so I've been focusing on improving the #FingerMaze presentation, which is … not easy. Here's what I would like to do: the maze is always defined in “landscape” mode (rows <= cols), and it should always fit the viewport. When the viewport aspect ratio doesn't match the maze orientation, the maze is rotated to fit (and movement is correctly remapped).

Simple right?

AHAHAHA NO.

OK I need a smarter way to encode the maze in #FingerMaze because the approach I'm using can't handle huge mazes (for example a 160×90 maze will result in a 414 Request URI Too Long error.)
(OK, now that I fixed #FingerMaze for keyboard use in rotated view and you can finally play it in a Vivaldi Web Panel, let's get back on topic.)
(Off topic for the thread, but playing around with the Vivaldi Web Panel features I discovered that keyboard input in my #FingerMaze game is broken in case of vertical layout. It was designed for cellphones so it's not a big loss, but still, I think I should fix it.)

For what it's worth, I (think I) fixed the “caption menu” for #FingerMaze when shown in portrait mode (such as on cellphone screens).

http://dropthemath.oblomov.eu/fm/

BTW, did you know that the game features a “hard” mode enabled by adding the 'explore' query option?

Try this for example:

http://dropthemath.oblomov.eu/fm/?explore=&id=FM16Einiiiljiljljini9jiJjljJLlwJNLlISLiiJNLiiJIjnWIIISjnWjiiiieILlNLewJLiJjiilNISLiiJsniiiJjWwisJjilSjsiiilLlLlEislLJIEiilLiJEJjiWLilLiiisiiiiisiiiiJW3E0

#gameDev #webgame

Finger maze

Maze traversal game with touch support

If you don't care about math, but like mazes instead, I also have a #proceduralGeneration for mazes whose results can be used reasonably well even on a #touchScreen. And if you set the number of rows and columns in the proper aspect ratio, you can even print them for your kids to play on paper.

#FingerMaze

http://dropthemath.oblomov.eu/fm/

Finger maze

Maze traversal game with touch support