Push Stack by stevenjmiller
Your moves are stored on the stack

The bottom value of a move is its direction
Any additional values are the indices of the boxes that were pushed
A red dash indicates the end of a move

A virtual undo takes the value at the bottom of the stack and moves the player in the opposite direction
Any additional values are interpreted as box indices and the corresponding boxes will be moved
The virtual undo continues until the stack is empty or a value with a red dash is read

A virtual undo reverses your last move using the values in the stack
A real undo reverts your last move or virtual undo

WASD / Arrow Keys - Move
R - Reset
P - Skip Level
Z / Backspace / Shift - Real Undo
X / Space / Enter - Virtual Undo
M - Toggle Sound
Tab - Toggle Fullscreen
Ratings
| Overall | 151th | 3.839⭐ | 30🧑⚖️ |
| Fun | 382th | 3.429⭐ | 30🧑⚖️ |
| Innovation | 37th | 4.25⭐ | 30🧑⚖️ |
| Theme | 645th | 3.232⭐ | 30🧑⚖️ |
| Graphics | 588th | 3.196⭐ | 30🧑⚖️ |
| Audio | 631th | 2.615⭐ | 28🧑⚖️ |
| Humor | 457th | 2.46⭐ | 27🧑⚖️ |
| Mood | 645th | 2.92⭐ | 27🧑⚖️ |
| Given | 35🗳️ | 39🗨️ |
Room 10 is my favourite, very nice solution

Great game, really cool, fresh idea! I also got stuck on level 7 for a while until I accidentally discovered the new mechanic, maybe that could have been telegraphed a little better (maybe a level where the player can't possible reach the stairs without the stack getting in the way). I've made it through the first 12 levels now, will have to come back later and do some more!
I went back to check the rules, but didn't find anything new or contradictory, so i guess i am missing something.
I always loved sokoban style games! and the "fill stack" mechanic was a nice addition
Guvf znl frrz havaghvgvir, ohg yriry 5 qbrfa'g erdhver nal haqbvat, gur ernfba vg vf nsgre yriry 4 vf whfg orpnhfr vg erdhverf n orggre haqrefgnaqvat bs ubj gur fgnpx shapgvbaf. Gur checbfr bs gur yriry vf gb rzcunfvmr gung gur fgnpx pncnpvgl vf abg rdhvinyrag gb n zbir pbhagre, naq gung fbzr zbirf erdhver yrff fgnpx fcnpr guna bguref.
Chfuvat nyy guerr obkrf gb gur yrsg tvirf lbh gur bcgvzny zbir pbhag, ohg gur fgnpx unf gb fgber nyy guerr obk vaqvprf, juvpu svyyf vg dhvpxyl. Guvf zrnaf lbh npghnyyl jnag gb zbir bar bs gur guerr obkrf bhg bs gur jnl naq gura chfu gur bgure gjb gb gur yrsg, juvpu nqq zbirf ohg fnirf fgnpx fcnpr.
That's a super cool mechanic, I was thinking about *stacks* when I was brainstorming for an idea, and I'm really glad you managed to make this idea come to life, love your submission
I'm super into difficult puzzle games like this, but i might have to give it a break for now haha. I got to level 24, after several hours. ill probably come back to it eventually!
but in any case, really great game!
edit: just saw that there is a web version. Playing through now :smiley:
BUT I think it would be less alien to some of the other commenters if there were Arrows inside the Stack, instead of 1234 Numbers - I know, it would break the Boxes dynamic, but these could have Arrows too - or NESW (North, East, South, West) could've worked too.
It took quite some time until I understood what was going on but once I got it, it was amazing.
Very clever Puzzles. I also liked the virtual/real undo (which I noticed at Lvl 14 xD quite late, I know).
Also I would add a "Press Z/Backspace/Shift" text when the player is stuck outside the map.
I would keep going with it, it is really clever and your puzzles are well designed - haven't finished it yet but I will do so. 10/10 brain-melting fun. :D
(Still trying to pass all levels yet.)

And I really want to learn how to make levels complex with the simple settings.
The audio and visuals aided the experience quite well, and the puzzles were pretty cool. Some sort of music might have been nice, and also some keyboard control of menus would be nice too since the gameplay uses the keyboard.
Overall it's a really solid and complete game, with a really cool and unique mechanic. You could totally polish this up and sell it! Well done.
I don't know what has changed since then but I can't reproduce it now either.
But i can see that this is perfect for thinky puzzle gamers ;)
PS: i just wanted to recheck because i thought that the teching of level 5 already was taught in a previous level, but i got an error in the browser:
5Push Stack.js?EUPYB=1411980226:2364 Uncaught TypeError: Cannot read property 'length' of undefined
at _Yq2 (Push Stack.js?EUPYB=1411980226:2364)
at HTMLCanvasElement._tr2 (Push Stack.js?EUPYB=1411980226:2374)
This is the entry that might cause the issue and gets re-created.
[Level]
0="1"
1="1"
2="1"
3="1"
4="1"
5="1"
6="1"
7="1"
8="0"
9="0"
10="0"
11="0"
12="0"
13="0"
14="0"
15="0"
16="0"
17="0"
18="0"
19="0"
20="0"
21="0"
22="0"
23="0"
24="0"
[Settings]
Window="0"
Sound="1"
I think you have a REALLY cool nugget of a game here! The boys and I lost our minds when we discovered how to interact with the stack UI. That was a really awesome twist.
A big challenge with puzzle games is designing levels that are both easy for the player to understand but also challenging for them to figure out. I think if you spent some time really refining how you communicate your mechanics to the player, a larger group of people could really get a kick out of this one!