VychVyzhProm by BOOtak

[raw]
made by BOOtak for Ludum Dare 45 (JAM)

cover.png

Welcome, comrade!

In programming, to start from "nothing", you should program with punchcards or assembler at least.

In this game, you will be playing as a soviet engineer working in a ВЫЧВЫЖПРОМ (VychVyzhProm) laboratory with a task to draw simple patterns with a programmable burner device. So you have to write a code in assembler to make it move.

==============

scr1.png

Available registers: X, Y (used as X and Y coordinates to move plotter) A, B (general-purpose registers)

Quick instructions set:

MOV A, B - move contents of B to A. B can be a register or positive or negative number ADD A, B - move A + B to A. B can be a register or positive or negative number MUL A, B - move A * B to A. B can be a register or positive or negative number JMP C - jump (C - 1) lines up or down. C can be register or positive or negative number CMP A, B - compare A with B. A and B can be registers and numbers JG/JE/JL C - jump if A was greater than B, equal, or less. INT N - interrupt

Supported interrupts: 42 - raise the burner (moving burner won't draw) 43 - lower the burner (now it leaves trace when moving) 44 - move the burner. It will be moved to coordinates stored in registers X and Y. Use INT 44 interrupt with burner lowered to draw

finish.png

Ratings

Overall 231th 3.796⭐ 56🧑‍⚖️
Fun 349th 3.537⭐ 56🧑‍⚖️
Innovation 176th 3.75⭐ 56🧑‍⚖️
Theme 497th 3.389⭐ 56🧑‍⚖️
Graphics 251th 4.019⭐ 56🧑‍⚖️
Humor 349th 3.15⭐ 52🧑‍⚖️
Mood 305th 3.663⭐ 54🧑‍⚖️
Given 40🗳️ 64🗨️

Feedback

Matthew Engurasoff
08. Oct 2019 · 09:08 UTC
Haven't worked with assembly in a while, was a lot of fun using it in a simple and unique way. Graphics were on point, great stuff.
Wolfrug
08. Oct 2019 · 11:15 UTC
Yikes, okay :-D Definitely fits the theme, and very innovative. Just completely impossible for me. I think it would need to be paired with some extrinsic motivation to be fun to play for me (e.g. some kind of storyline or somesuch), although I think I know a few programmers who'd disagree...
filipdufka
08. Oct 2019 · 11:32 UTC
Great game, i was having fun figuring how to manage plotter to do what i want. Buttons were little bit undescriptive, but as soon i have learned the instructions with keyboard, it was pleasure.
stmatn
08. Oct 2019 · 11:44 UTC
Very fun programming game!
The interface felt a bit clunky. I would have like regular text input like in [TIS-100](http://www.zachtronics.com/tis-100/) or [SHENZHEN I/O](http://www.zachtronics.com/shenzhen-io/).
Daitse
08. Oct 2019 · 11:47 UTC
Never did any assembly but game was fun ! The concept is enriched by the fun background and the nice art. Solid game but I must admit I hesitated before playing it due to the "assembly" part. I was afraid I would need at least superficial knowledge of assembly but the way you did things completely abstracts that (at least the first few levels I played)! Well done !
Shigor
08. Oct 2019 · 12:47 UTC
Excellent work, comrade! Your relatives will be released from the camp.

Love the mood. I like the idea in abstract sense, but can't say I like to play it. I considered assembler too much of annoying work 35 years ago and I still feel same about it :D
🎤 BOOtak
08. Oct 2019 · 14:51 UTC
@matthew-engurasoff thank you for the comment! I'm happy someone finds such a game engaging and fum!
🎤 BOOtak
08. Oct 2019 · 14:52 UTC
@stmatn Thank you! It does support keyboard input. Which makes me think that I should probably mention this earlier in the tutorial.
🎤 BOOtak
08. Oct 2019 · 14:54 UTC
@daitse, wow, I'm really happy you figured it out! I wonder whether this game have some educational potential.. :)
🎤 BOOtak
08. Oct 2019 · 14:55 UTC
@wolfrug, thank you, good point on the storyline! Should've definitely do that.
stmatn
08. Oct 2019 · 15:25 UTC
@bootak It seemed quite intuitive to try keyboard input, so I think people should find that out quite quickly. What I mean is that the game doesn't react like I anticipated.

Example: I wanted to change *43* to *42*, so I navigated to the respective field, hit bacscape and typed *2*. What I expected: *43 -> 4 -> 42*. What happened: *43 -> _ -> 2*.

Same point goes for removing lines. I expected that hitting bacscape on an empty line would delete it, rather than (re)clearing the selected field.

I assume, that you store the program or al least the lines as arrays, that contain control symbols. It has the advantage of making syntax errors impossible. However, I think that typing plain text reflects the programmer-experiance a bit better. Well, in the end it wil boil down to a question of taste and habituation.
krakadushka
08. Oct 2019 · 22:44 UTC
Интересное видение темы и отличная реализация!
Siarhei Pilat
09. Oct 2019 · 09:22 UTC
Sorry how can I play it? Is there an executable?
🎤 BOOtak
09. Oct 2019 · 09:33 UTC
@siarhei-pilat Sorry, it's a .jar file, you can run it with Java runtime environment (you can download it from the Oracle website - https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html)
🎤 BOOtak
09. Oct 2019 · 10:13 UTC
@siarhei-pilat I updated this page with a link to .zip containing .exe file with JRE already embedded
Siarhei Pilat
09. Oct 2019 · 10:35 UTC
Thanks for updating it, I think that the game is pretty well-made, however it would be nice to have some sort of instruction for the code in the game itself. Otherwise, no complaints, really. Well done.
🎤 BOOtak
09. Oct 2019 · 13:14 UTC
@stmatn yes, fair point. I agree, current text editor is not intuitive and doesn't work as everyone expecting.

"I assume, that you store the program or al least the lines as arrays" - YES, this is exactly how it is! Well, assembler probably has one of the simplest syntaxes to parse, so writing a proper translator would be no problem. I'll consider doing that in a post-LD version.
Igoreshka
09. Oct 2019 · 13:15 UTC
Only a programmer really in love with programming will want to program a game in which you need to program :smile: Good game :wink:
🎤 BOOtak
09. Oct 2019 · 15:01 UTC
@igoreshka haha, thank you :) That is exactly the case :)
ScarletMayhem
09. Oct 2019 · 18:54 UTC
Nice graphics and settings but couldn't do anything in the game >.<
🎤 BOOtak
09. Oct 2019 · 18:59 UTC
@scarletmayhem, sorry for that. I'll be doing a gameplay video soon, hope it'll help to understand game mechanics better.
NoobException
09. Oct 2019 · 20:26 UTC
Great game! Never used actual assembly, but understood it much better with your game :smile:
Simple minimalistic design and idea, 10/10
Vladadamm
09. Oct 2019 · 20:43 UTC
Solid entry. Feels really polished and having a tutorial is always a nice thing that is too rare in jams games. Liked the mood with the small 'story' (if you can call that) and the retro feel with soviet union era theme. And obviously reminded me of TIS-100 (which i should finish someday) with its assembly coding.

Struggled a bit at first with jump conditions (JG/JE/JL), expected them to always compare A and B registers upon reading the 'doc' and only understood after a bit of trial & error that they were to be used after CMP.
Also had a few small issues with the text editor. I feel like Backspace should delete previous block and Delete the current one rather rather than delete being line and backspace block value. Didn't feel like it not being a true text editor being that much of a problem, as having hotkeys for most instructions ended up being some sort of auto-complete which isn't bad and felt intuitive (though JE/JG/JL/JMP/MUL are missing), but i would expect for numbers to automatically clear the block content upon entering data. Two other quality of life features would be clicking on a block to select it (can already use the mouse to input so why not for moving around your code ?) and being able to hold arrow keys to move around faster without having to press keys dozens of times (same goes with Delete to delete multiple lines at once). Also didn't understand at first the Lower/Raise buttons, would expect an Up Arrow to Raise and Down Arrow to Lower.
dikkop
09. Oct 2019 · 21:32 UTC
Really cool game! As a programmer this reminds me of turtle to learn how to program by drawing lines. Pretty cool you got it up and running in such a short time. Would be cool to add some surprise to the game (something unexpected) to give the game a bit more playfulness.
🎤 BOOtak
10. Oct 2019 · 06:21 UTC
@vladadamm thank you for the thorough analysis of the game UX! This all make sense, we'll add this in a post-LD version of the game
🎤 BOOtak
10. Oct 2019 · 06:23 UTC
@dikkop we had a plans to switch over a punchcards somewhere in the middle of a gameplay :) That would've been unexpected :) Too bad we didn't have enough time to do that
Porocyonak
10. Oct 2019 · 07:00 UTC
wow, really neat concept. looks great too. good job!
hadesfury
10. Oct 2019 · 11:18 UTC
Really good game. I love it as a game programmer :) Well done
Simon Rahnasto
10. Oct 2019 · 13:07 UTC
Honestly this is a great way to learn the basic principles of how a computer works. If you expanded it to have more machine instructions and more puzzles it could definitely serve as a great educational tool. A friend tested the game and recommended me to try it out, after trying it out I have recommended a friend to try it out. That speaks volumes about this entry, really good job :smile:
randdir
10. Oct 2019 · 16:10 UTC
Not my type of game 'cause making a game look like programming is not my type but your graphics and subject fit very well. So kinda divided with you entry team. Nevermind very interessting, keep it up !
🎤 BOOtak
10. Oct 2019 · 17:29 UTC
@simon-rahnasto, thank you very much for the kind words! @senior-sigan, co-author of this game, teaches programming to a students, so we\re actually thinking about using this game for education.
Simon Rahnasto
10. Oct 2019 · 17:32 UTC
@bootak I could almost have guessed that one of you are a teacher, because it really shows that you know what you are doing :smile:

Great to hear that you realize the potential in this, I wish you the best!
jakemchugh1
10. Oct 2019 · 21:28 UTC
This is a great game! It is a bit complex at first, but I feel accomplished when I succeed!
Lars-Erik
10. Oct 2019 · 22:24 UTC
Super well executed! Hat off and all that. Overall 5/5! 😁
I do presume you've played all of Zachtronic's games? Otherwise you're in for a treat.
CrubeYawne
11. Oct 2019 · 17:38 UTC
This game is a really cool design. Really liked the UI and gameplay but it was challenging to learn.
GreenDinoGames
11. Oct 2019 · 21:28 UTC
Wow, that's a pretty cool game! Challenging puzzles but fun to play. Nice idea for the theme. Thank you!
Huitre
13. Oct 2019 · 05:16 UTC
Never really tried to understand assembly, but I guess that was a nice introduction!
Same as above, I understood the conditional jumps to always compare A and B registers. But at least when I looked online what CMP actually did, I understood and it worked as expected in the game. Nice!
Some control over the execution speed would be nice, as sometimes you try to see if the execution actually passes through the lines you expect, and sometimes you're just waiting for the drawing.
asfdfdfd
13. Oct 2019 · 18:20 UTC
It was SO satisfying to move plotter to the required positions!
Huitre
14. Oct 2019 · 03:39 UTC
Finally finished the whole thing, phew!
Congrats!
stark
15. Oct 2019 · 13:12 UTC
Very nice game! Bookmarked to play through it later.