The Stack Machine by seshoumara

[raw]
made by seshoumara for Ludum Dare 51 (JAM)

level.png

​The Stack Machine is a brand new, state of the art computer that is programmable using punch cards. A card has 10 columns. The machine's clock is 1 Hz, so cards finish running every 10 seconds.

Each column is one instruction or data point. With Data pressed you can punch the necessary task input numbers, then with Data off you punch the instructions needed to solve the problem. Use Shift to get access to more instructions.

But to the machine data is code and code is data. You'll notice the card can only punch numbers from 0 to 9. If you need 12 type for ex the instructions 93+. Once you punched a card add it to the source deck that will be executed. You can sort the cards there. Good luck intern! The future needs you.

levels.png

I made this game in 72 hours for the Ludum Dare 51 jam, my first LD ever. You may encounter some bugs! I would greatly appreciate your feedback. Design, art, sounds, programming are done by me. I used the Godot game engine, v.3.5, the JetBrainsMono font and sfxr for sound effects.

Ratings

Overall 212th 3.875⭐ 22🧑‍⚖️
Fun 183th 3.875⭐ 22🧑‍⚖️
Innovation 109th 3.95⭐ 22🧑‍⚖️
Theme 867th 3.35⭐ 22🧑‍⚖️
Graphics 951th 2.974⭐ 21🧑‍⚖️
Audio 667th 2.9⭐ 22🧑‍⚖️
Humor 742th 2.531⭐ 18🧑‍⚖️
Mood 815th 3.184⭐ 21🧑‍⚖️
Given 10🗳️ 5🗨️

Feedback

AJ Studio
03. Oct 2022 · 18:17 UTC
The colors are really original, simple and fun
nullval
03. Oct 2022 · 20:24 UTC
love these kind of coding games, wonderful idea! :D nice presentation and a really impressive first entry! :O
🎤 seshoumara
03. Oct 2022 · 20:58 UTC
@nullval thank you very much! It's inspired from the Zachtronics games.
Bo Dangles
04. Oct 2022 · 06:32 UTC
I definitely see the inspiration, to Zachtronic games, which is cool. It's like programmers making games for other programmers. (And non programmers even like them too). Great game.
🎤 seshoumara
04. Oct 2022 · 06:45 UTC
@bo-dangles Thank you. Yes, I love Zachtronics games. I just posted a call for punch-card programmers :)), where I explain a bit more how The Stack Machine works. https://ldjam.com/events/ludum-dare/51/the-stack-machine/punch-card-programmer-wanted
AlexYam
04. Oct 2022 · 08:10 UTC
The color and sound blend in perfectly.
It reminds me of learning assembly code back in college where we used a table of command definition to write a Happy Birthday To You on a IC chip.
EX3D0
04. Oct 2022 · 11:08 UTC
Super neat concept. Definitely reminded a lot of assembly programming, some of the puzzles were super fun to try and figure out.
Douwe_Ravers
04. Oct 2022 · 12:31 UTC
Very very fun game! Is this how punch cards worked back in the day? Nice! This is really my type of games. The challenges were perfectly set. From simple to difficult.

One tip maybe. Instead of just specifying the input in the text. Maybe a punch card with the input values can already be loaded in the machine. Although that means for some levels part of the challenge is already done.

I actually made a similar game as well. Only with assembly code instead of punch cards.
🎤 seshoumara
04. Oct 2022 · 13:14 UTC
@douwe-ravers that's a good idea!! With more numbers given it becomes actually harder, as no instruction can access a number 3 levels deep in the stack. Glad you liked it. Either here or if you wish on my discord you can post a link to your game.
Douwe_Ravers
04. Oct 2022 · 13:36 UTC
@seshoumara Ow yeah, that is right :smile:

As requested here is my game: [Cobor goes farming](https://ldjam.com/events/ludum-dare/51/cobor-goes-farming)
thebmxeur
04. Oct 2022 · 19:06 UTC
Very nicely done. The sequence level was very interesting to solve. Nice job. I also made a "sort of" programming game if you're interested https://ldjam.com/events/ludum-dare/51/rain-systems
LDJam user 296917
05. Oct 2022 · 05:20 UTC
I don't understand the sequence level. How can I pass that.
🎤 seshoumara
05. Oct 2022 · 05:24 UTC
@linktail you have a command that pushes the stack size. At start the stack is empty, so it will push 0. Now 0 is a number on the stack, so if you ask for the size again it will push 1, then 2 and so on. That's the hint, you still have to work around the fact that printing removes the top value. Thanks for playing the game!
LDJam user 296917
05. Oct 2022 · 05:50 UTC
@seshoumara Thank you, it becomes a sort problem and I passed it.
dan-whiffing
05. Oct 2022 · 16:10 UTC
Nice! Love programming games, and interesting to see this theme applied to the genre. Only tackled the first 2 challenges but looking forward to doing more! Great work
kuggenhoffen
06. Oct 2022 · 20:21 UTC
I really enjoyed the game. I could see myself playing more if only there were more tasks :D Good job.
JMad
08. Oct 2022 · 23:10 UTC
Oh myyy! Had not dealt with stacks in a while. This made them fun all over again! It's such a neat game. The instructions are clear, and seeing the result of each input really helps make sure we understood what does what.

Like in 'real' programing, I love how there are many solutions for one given problem, I tried digging with fewer inputs for instance... it felt like cheating ahah!

![Screenshot 2022-10-09 000839.png](///raw/906/d2/z/52e48.png)


One of my favourites! Congrats.
🎤 seshoumara
09. Oct 2022 · 05:15 UTC
@jmad Thank you for playing. I could have given the task numbers automatically as a premade card in the deck, as someone suggested. But I wanted the player to experience punching both the data and the programming, which I believe it's how they did back then. That in turn meant one could cheat a lot if one wanted :)) I'm proud you solved them the intended way! I'm currently working on my main game, another programming-puzzle, called Low Level Hero. See my itch page if you're interested.
Aurel300
11. Oct 2022 · 21:52 UTC
A Zachtronics game in a gamejam is not easy to manage. There are many things that should be added: some way to debug, a better indication of what is currently executing, fast forwarding, much clearer tutorial, and so on. Jumps, of course :)

The fact that the "input" was hardcoded into the description without any randomisation makes this feels more like a toy/sandbox than a game, because it's only up to me to decide whether I really fulfilled the goal or not. That's fine for some of the programs but for the "digging" for example, it can be interpreted in different ways: do I just drop all the values? Do I need to keep them on the stack, in the same order?

Moving the manual into its own PDF is a lot of effort and might seem a bit esoteric but for these kinds of games it really does make sense: have an actual "document" to consult while playing the game in another window/screen. On that topic the text needs to be more clearly structured and proofread otherwise it can only lead to more confusion.

The card stack system takes a lot of space but I didn't find that much use for it, why not just make the cards longer? Thematically (as in, every 10 seconds), it fits I suppose? Also it makes more sense as a stack of punching cards, but it is also just a bit inconvenient for the player.
LDJam user 306215
14. Oct 2022 · 06:50 UTC
A very different idea than I was expecting but I can sort of see the every 10 seconds idea in it, not so much in the gameplay, but in the concept. If anything it's a bit of downer for the gameplay, but it makes sense.

It's a cool technique setup for sure. Though obviously still a little limited so there's a lot of cheese. Which I am always happy to mess with fro sure. Though it did remove a lot of the puzzle challenge or interesting unfortunately. Which to be fair, it's kinda hard to make a full system like this in 72 hours so good on what you managed.

Though I will say the game is very obtuse when you're getting into it, there's not too much of a slow introduction so much as EVERYTHING is there right away. IN the tips and hidden down the lists etc. I personally would've preferred a bit more of a tutorial, but ya know, 72 hours. Would be a nice post jam additions though for sure.

That and maybe making it a little less scroll heavy etc. because there was a lot of information down there that I did not know was t3here until I double triple checked/was told. So making it more, card based etc. could be useful, or just having some of it in more accessible locations, say a side bar etc. would maybe help with that.


Overall though a really cool technical setup and an interesting selection for the theme but a bit obtuse which makes sense for the time frame and the concept. I'm interested to see some possibly more cheesy puzzles, but likely less cheesy and more info.
Notan Lemon
17. Oct 2022 · 03:40 UTC
I enjoyed this game. Stack-based computation is always interesting to me. I wish it had more complex operations which enables wilder control flow.

The aesthetic of punch cards is neat too. It reminds me of one of the computer science classes I had in the university.
Fiordarancio
18. Oct 2022 · 21:14 UTC
Amazing concept! Reminded my very first courses about calculators algebra and assembly. Very nice visuals and sound. I may have found a bug: when failing a task in print, the card in the deck was not interactable (pushing buttons didn't work).
In my opinion there should be some more explaination of the commands in Shift. I had to figure them out myself, and doing reverse engineering is boring.
Overall very good job though!
🎤 seshoumara
18. Oct 2022 · 22:58 UTC
@fiordarancio Hi. Yes, I've seen this bug post-jam, restarting the level is the only way for now. There are 2 two scrollable manuals in the middle, the bottom one has a list with what each command does. I know the wording could be improved, sorry to hear it wasn't clear at all. Thank you for playing.
Voidsay
18. Oct 2022 · 23:22 UTC
## After trying to figure out how to even play I reached a certain level and felt a bit mischievous...
![ALittleTrolling.png](///raw/64c/e2/z/53418.png)
🎤 seshoumara
19. Oct 2022 · 00:00 UTC
@voidsay :)) And that's why you're an intern. Joke aside, there is one instruction 's', scroll down that instructions manual, that pops off a value from the stack and stores it in a register. Just popping it off is needed, so you can do that three times to get to 1: sssp.
IcyLava
19. Oct 2022 · 01:36 UTC
Neat! We apparently made similar games :D

I'm not sure if there wasn't any checking to see if my data was correct or if I was just always doing it correctly. Anyway, ended up finishing the whole thing, I wish there were more things to do though!