Sokobound by farzher

Sokobound dives deep into a single, simple mechanic & a sequence of similar levels with added depth.
Impossibly difficult. Most levels remain unsolved by anyone, including me.
Press Escape to skip levels and dive deeper.
Play in the browser: https://farzher.com/sokobound
The game is a single html file with no dependencies.
Please leave a comment if you beat the game! and mention about how long it took
EDIT: a few people in the comments have beat the game!
| Link | https://farzher.com/sokobound |
| Link | view-source:https://farzher.com/sokobound |
| Original URL | https://ldjam.com/events/ludum-dare/57/sokobound |
Ratings
| Given | 94🗳️ | 55🗨️ |
But it doesn't really relate to the theme of Depths, and isn't that Innovative as it's really just Sokoban.
Otherwise, pretty fun!
if this is considered cheating please disregard it when rating, thanks!
Loved your level design!
I live in France, so I have an AZERTY keyboard, and I would like to point a minor change, if I may:
In your code, you get the input with `event.key`, which will return the visible letter pressed, not the physical key of the keyboard.
```
const k = event.key
if(k == 'Escape') return show_screen('level_select')
if(stuck_in_win_animation) return
if(['w', 'W', 'ArrowUp' ].includes(k)) return handle_move(up)
if(['a', 'A', 'ArrowLeft' ].includes(k)) return handle_move(left)
if(['s', 'S', 'ArrowDown' ].includes(k)) return handle_move(down)
if(['d', 'D', 'ArrowRight'].includes(k)) return handle_move(right)
if(['z', 'Z', 'Backspace' ].includes(k)) return undohistory.pop()
if(['r', 'R' ].includes(k)) return startlevel(savestate.current_level)
```
Instead, use the `event.code` which will return, 'KeyA' when:
- visible letter 'A' is pressed on QWERTY display
- visible letter 'Q' is pressed on AZERTY display
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code
i use colemak, so WASD doesn't work for me either (i just use arrow keys). but i don't think my OS knows i'm using colemak so this wouldn't help me
edit: i won't be using event.key because: i'm using z for undo. that conflicts with moveup on AZERTY. i could make undo only backspace. but also i use R for restart. that conflicts with move down on colemak.
Definitely a great idea, you instantly see how deep it can get within the first level, nothing needs explaination, well done !
Well done!!