MonkeyVM by abvadabra

What could a team of three programmers make for a game jam with a theme Stuck in a Loop? Of course a coding puzzle about while loop!
Taking inspiration from such classics as TIS-100 and Shenzhen IO, we tried to make game which looks and feels in a same aesthetically pleasing way, and added something new to it.
The main idea is pretty simple - you have plain while-loop which ends when game character reaches the exit. Your goal is to write code which will take him to that exit.
Each level has a set of available low level instructions and a memory limit, each instruction takes 1 B in memory. Instructions are added by drag&dropping them into the code, or by simple clicking on them. You can use right mouse button to delete instructions from code.

Turns out that designing levels for such a simple mechanic can be quite a fun challenge! Over the course of three days we managed to create 16 playable levels. With a help of simple text based level editor we can make twice as much in the future.
Besides, we invite you to try making levels yourself!
Adding custom levels
Custom levels are supported only in the desktop version of the game.
To get started, copy-paste the example below to a separate .txt file in CustomLevels directory. The level will be available from main menu. Your level will be reloaded from file each time you open it.
The format is pretty self-explanatory, but you have to follow it strictly.
- Use 'O' for empty tiles, '#' for wall tiles, 'E' for exit tile
- PlayerPos and StarPos are specified like this: (row number starting from 0) (column number starting from 0)
- Full list of instructions:
MoveForward MoveBackward MoveLeft MoveRight PlaceWall TurnLeft TurnRight Turn180 Flip
YourName-01.txt ``` Name YourName-01 MaxInstructions 8 AllowedInstructions MoveForward MoveBackward MoveLeft MoveRight PlaceWall ScoreConditionInstructions 6 ScoreConditionInstructions 5 ScoreConditionStar 1 PlayerPos 7 0 StarPos 6 6 DefaultCodeComment // This crystal is so lonely
OOOOOOOO O#OOOOOO O#OOOOOO O#OOOOOO O#OOOOOO O#OOOOOO O#OOOOOO O#EOOOOO ```
If you will publish your level anywhere - please include your nickname in the title of a file.
We hope you'll enjoy our game!
Credits
Music is by Anonymous420, in public domain.
| Youtube | https://abvadabra.itch.io/monkeyvm |
| Youtube | https://abvadabra.itch.io/monkeyvm |
| Original URL | https://ldjam.com/events/ludum-dare/47/monkeyvm |
Ratings
| Overall | 33th | 4.289⭐ | 73🧑⚖️ |
| Fun | 52th | 4.164⭐ | 72🧑⚖️ |
| Innovation | 154th | 3.972⭐ | 73🧑⚖️ |
| Theme | 25th | 4.472⭐ | 73🧑⚖️ |
| Graphics | 149th | 4.324⭐ | 73🧑⚖️ |
| Humor | 763th | 2.75⭐ | 18🧑⚖️ |
| Mood | 313th | 3.86⭐ | 70🧑⚖️ |
| Given | 32🗳️ | 30🗨️ |
Thanks for sharing and good job :-)
This was a lovely showcase of simple mechanics, and the polish in this game was awesome (from UI, to VFX, to audio). It even stored my save file hahah.
The stream VOD can be found here: https://www.twitch.tv/videos/762553836?t=00h06m00s
I struggled on 3-4, but I eventually just focused on getting out of the start and it worked :D
2-4 I am missing a star, but I got 3 stars for every other level.
The game is fun, though sometimes it is confusing to think about what will happen, so trial and error or brute force (within reason - for example I can be sure that I need a certain set of commands but not sure of the order)
The visual polish was great too, which made it fun to watch triangle man fly around
Just to make my comment useful I will say maybe try to make the instructions ordering with the mouse more comfortable. But everything is well done, that's good grades in all categories. Impressive.
Overall it feels well polished; graphics are suiting, audio is on point and gameplay feels tight!
Congratulations on a clever execution on the theme :)
Well done!
Also a fan of Zachtronics games and you nailed the theming and simplicity.
**Here is my feedback:**
**What I liked?**
- Nice music.
- I liked the level selection.
- Nice console.
- I liked the visuals.
- Excellent level design.
- I enjoyed the mechanics and the gameplay of the game.
---
**What I disliked?**
- Didn't like it when it shows "..." when you remove the instructions, instead of nothing.
**To fix:**
- When you drag a method by mouse to the while loop, moving it doesn't feel right. [1]
- After finishing a level, the "Next Level" button navigation is not set to none.
- Maybe, I should able to replace an instruction, after placing a new one over it.
- If the highlighted instructions is the current instruction, so, it is incorrect, but if it is for showing what will be played next, so, it is correct.
---
**Suggestion:**
- Add a main menu.
- Maybe give runtime errors.
- Maybe, show until the player tries to edit.
- Maybe give feedback, by SFX.
- Maybe if I tried to edit the console at runtime, highlight the instruction with red then unhighlight it.
---
Endnotes:
[1]

As for the improvements, I feel the UI can be improved a bit. Drag and drop worked weird for me - sometimes the cursor ends up way out of the game area, but the text is hardly moved. It is like drag&drop just skips 80% of mouse move events (I'm running a web version on Chrome/macOS).
Drop also lacks consistency - sometimes it works fine and sometimes it just rejects for no obvious reason - I feel like I've dropped in the code area and I still has memory slots available. Some additional feedback on the drop area would be nice and will remove that ambiguity (maybe highlight the text when the mouse is over the drop area just to show that the drop is allowed there).
Thanks for submitting your game!
I have to say, this game is really sharp-lookin! And it's super impressive that y'all were able to make so many levels. Cheers to your team for finding a way to genericize the process to maximize your efficiency!
I *do* think that the difficulty ramps up a bit fast, but I generally don't fault that in a jam game since you don't really have time to playtest.
Regardless, this one gives you a lotta satisfaction when you solve a puzzle, and I love it. :)
If you’d like to rewatch the playthrough, you can find it here:
https://www.twitch.tv/videos/767497194?t=4h47m22s
Good luck on your ratings, see you next LD! :D
💜 Elysia Griffin AKA Button Feedback Lady
https://www.twitch.tv/elysiagriffin
https://www.twitch.tv/josephdevelops
As far as I'm concerned, this game doesn't lose any points from any of the categories you opted into. It's just freakin' awesome! You could definitely expand this and put it on Steam. I probably wouldn't be upset if I dropped a couple of bucks on it in its current state. I really hope you keep working on it so I can play more. Awesome job!!
The queue was empty, so I moved on to the games marked "only play when present"