VychVyzhProm

by bootak
co-authored: @senior-sigan
Overall★★★★★★★★★★3.80
Fun★★★★★★★★★★3.54
Innovation★★★★★★★★★★3.75
Theme★★★★★★★★★★3.39
Graphics★★★★★★★★★★4.02
Humor★★★★★★★★★★3.15
Mood★★★★★★★★★★3.66
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
```

Comments40

Matthew Engurasoff8 Oct 2019, 09:08
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.
Wolfrug8 Oct 2019, 11:15
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...
filipdufka8 Oct 2019, 11:32
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.
stmatn8 Oct 2019, 11:44
Very fun programming game!
The interface felt a bit clunky. I would have like regular text input like in TIS-100 or SHENZHEN I/O.
Daitse8 Oct 2019, 11:47
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
Shigor8 Oct 2019, 12:47
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
BOOtakauthor8 Oct 2019, 14:51
@matthew-engurasoff thank you for the comment! I'm happy someone finds such a game engaging and fum!
BOOtak
BOOtakauthor8 Oct 2019, 14:52
@stmatn Thank you! It does support keyboard input. Which makes me think that I should probably mention this earlier in the tutorial.
BOOtak
BOOtakauthor8 Oct 2019, 14:54
@daitse, wow, I'm really happy you figured it out! I wonder whether this game have some educational potential.. :)
BOOtak
BOOtakauthor8 Oct 2019, 14:55
@wolfrug, thank you, good point on the storyline! Should've definitely do that.
stmatn8 Oct 2019, 15:25
@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
krakadushka8 Oct 2019, 22:44
Интересное видение темы и отличная реализация!
Siarhei Pilat
Siarhei Pilat9 Oct 2019, 09:22
Sorry how can I play it? Is there an executable?
BOOtak
BOOtakauthor9 Oct 2019, 10:13
@siarhei-pilat I updated this page with a link to .zip containing .exe file with JRE already embedded
Siarhei Pilat
Siarhei Pilat9 Oct 2019, 10:35
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
BOOtakauthor9 Oct 2019, 13:14
@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
Igoreshka9 Oct 2019, 13:15
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
BOOtakauthor9 Oct 2019, 15:01
@igoreshka haha, thank you :) That is exactly the case :)
ScarletMayhem9 Oct 2019, 18:54
Nice graphics and settings but couldn't do anything in the game >.
BOOtak
BOOtakauthor9 Oct 2019, 18:59
@scarletmayhem, sorry for that. I'll be doing a gameplay video soon, hope it'll help to understand game mechanics better.
NoobException
NoobException9 Oct 2019, 20:26
Great game! Never used actual assembly, but understood it much better with your game :smile:
Simple minimalistic design and idea, 10/10
Vladadamm
Vladadamm9 Oct 2019, 20:43
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
dikkop9 Oct 2019, 21:32
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
BOOtakauthor10 Oct 2019, 06:21
@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
BOOtakauthor10 Oct 2019, 06:23
@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
Porocyonak10 Oct 2019, 07:00
wow, really neat concept. looks great too. good job!
hadesfury
hadesfury10 Oct 2019, 11:18
Really good game. I love it as a game programmer :) Well done
Simon Rahnasto
Simon Rahnasto10 Oct 2019, 13:07
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
randdir10 Oct 2019, 16:10
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
BOOtakauthor10 Oct 2019, 17:29
@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
Simon Rahnasto10 Oct 2019, 17:32
@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
jakemchugh110 Oct 2019, 21:28
This is a great game! It is a bit complex at first, but I feel accomplished when I succeed!
Lars-Erik
Lars-Erik10 Oct 2019, 22:24
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
CrubeYawne11 Oct 2019, 17:38
This game is a really cool design. Really liked the UI and gameplay but it was challenging to learn.
GreenDinoGames
GreenDinoGames11 Oct 2019, 21:28
Wow, that's a pretty cool game! Challenging puzzles but fun to play. Nice idea for the theme. Thank you!
Huitre
Huitre13 Oct 2019, 05:16
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.
asfdfdfd13 Oct 2019, 18:20
It was SO satisfying to move plotter to the required positions!
Huitre
Huitre14 Oct 2019, 03:39
Finally finished the whole thing, phew!
Congrats!
stark
stark15 Oct 2019, 13:12
Very nice game! Bookmarked to play through it later.

Other games by @bootak

Found a bug?
Tell us on Discord