Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411511 Posts in 69375 Topics- by 58430 Members - Latest Member: Jesse Webb

April 26, 2024, 02:54:19 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperPlaytestingSingle-Instruction Computer Programming Game
Pages: [1]
Print
Author Topic: Single-Instruction Computer Programming Game  (Read 1606 times)
Deraj
Level 0
**


View Profile WWW
« on: February 18, 2020, 09:44:11 AM »

Update:

I recently decided to turn this into a full-fledged game with music, a story, and a Steam port. The browser-based version has also been updated as it almost in parity (only differences are lack of Steam features like cloud saves and friend leaderboards).

I'm still interested in feedback about the in-game documentation/tutorial puzzles and whether or not anyone reads the story.

Original post:

Very much inspired by Zachtronics games such as TIS-100, this is a browser-based programming game involving an esoteric programming language that has only 1 instruction: "subleq" (subtract and then branch if the result is less than or equal to zero):

https://jaredkrinke.itch.io/sic-1

I realize this sort of game only appeals to a small audience, so if you're interested and can take the time to give it a go, I'd really appreciate it! The game is very close to being "done" from my perspective, so it's nice to get a few more eyes on it.

Feedback I'm especially interested in:

  • Was the "documentation" easy to follow/understand?
  • Did the user/task charts make sense? (Esp. if you haven't played similar optimization games)
  • Did you bother reading any of the "story" (intro, promotion emails, etc.)? Smiley

Screenshots:



« Last Edit: December 07, 2022, 01:46:53 PM by Deraj » Logged

Try my HTML5 games: SIC-1, Chromium JSU
a-k-
Level 2
**


View Profile
« Reply #1 on: February 19, 2020, 09:30:14 AM »

It's very good! Can easily serve as the go-to environment for learning subleq.

Played only till multiplication sections I-IV, may continue with division will continue later. A few quick comments for now:
- Sign - consider removing 127 from the inputs, or alternatively explaining wrap around
- Multiplication - consider having a small multiplication (e.g. 2*2) as the first input, instead of the boundary cases, and similarly for the other levels
- Move the menu 1 line higher - some browsers show URL of links at the bottom-left corner, hiding Menu
- Ctrl-. should start stepping right away, without the need for clicking Step first
- I guess you won't want to do that, but I would remove the need for @ symbols (unless they're needed for scoping - played only a few levels so don't know). Additionally, if you had 1 more shade of green, perhaps you could automatically highlight all occurrences of the symbol under the cursor - that would be helpful (and cool, too!)

As for your questions: yes^3.
« Last Edit: February 19, 2020, 01:44:01 PM by a-k- » Logged

mapleOwO
Level 0
*



View Profile
« Reply #2 on: February 19, 2020, 11:01:50 AM »

Quite fun! I've played through Interleave, will probably finish up the last 3 in chapter V when I've time later. I didn't find any of the puzzles particularly difficult to just complete (through V at least), but routing optimization is really interesting.

The documentation was all sensible from what I could tell. A few comments:
-It'd be nice to see somewhere what one's best solutions are for a level (bytes->cycles and cycles->bytes). In the program inventory I think it only shows bytes and cycles for the first correct solution; e.g. for I.2 I've run a 3/5 solution, but it still shows 3/11.
-Is there a good way to comment/uncomment out a big block of code in this? This would be very useful when trying to optimize longer programs/test different solutions.
-During the application, it has you decide if you want to see your name on public leaderboards; but these don't seem to exist yet? At least, the histograms are all anonymous as far as I can tell.

As for the promotion emails: I only noticed the last one! I guess they kind of blend into the level clear screen.
Logged
Deraj
Level 0
**


View Profile WWW
« Reply #3 on: February 19, 2020, 03:39:22 PM »

- Move the menu 1 line higher - some browsers show URL of links at the bottom-left corner, hiding Menu
- Ctrl-. should start stepping right away, without the need for clicking Step first
- I guess you won't want to do that, but I would remove the need for @ symbols (unless they're needed for scoping - played only a few levels so don't know). Additionally, if you had 1 more shade of green, perhaps you could automatically highlight all occurrences of the symbol under the cursor - that would be helpful (and cool, too!)

As for your questions: yes^3.

Thanks for taking the time to provide feedback!

Good point on the "menu" button getting occluded (I hit this on Firefox -- I think it was an itch.io embedding issue, but probably better just to side-step the problem entirely).

CTRL+. first just compiles and loads the program into the memory display. In at least one case, I found this helpful so that I could inspect the memory prior to anything actually changing. You're probably right that this is infrequent/low impact enough that I could just execute the first instruction, but I like the current behavior.

As for the "@" symbol, I think it could be made optional, but (as you guessed) I feel like it's too late to change it now.

For highlighting, I just used CTRL+F, but I agree there could be a lot of improvements here... and you wouldn't believe how many times I wished I had one more shade of green during this project Smiley

Edit: Fixed the menu button
« Last Edit: February 21, 2020, 10:00:11 AM by Deraj » Logged

Try my HTML5 games: SIC-1, Chromium JSU
Deraj
Level 0
**


View Profile WWW
« Reply #4 on: February 19, 2020, 03:48:49 PM »

-It'd be nice to see somewhere what one's best solutions are for a level (bytes->cycles and cycles->bytes). In the program inventory I think it only shows bytes and cycles for the first correct solution; e.g. for I.2 I've run a 3/5 solution, but it still shows 3/11.
-Is there a good way to comment/uncomment out a big block of code in this? This would be very useful when trying to optimize longer programs/test different solutions.
-During the application, it has you decide if you want to see your name on public leaderboards; but these don't seem to exist yet? At least, the histograms are all anonymous as far as I can tell.

As for the promotion emails: I only noticed the last one! I guess they kind of blend into the level clear screen.

Thanks for providing feedback!

Edit: Now tracking cycles and bytes separately. Also added links to the task list to view your previous results.

Currently, the text editor is literally just an HTML textarea element, so there are no conveniences whatsoever. On the one hand, this is true to the archaic nature of the SIC-1, but it is annoying. The real hurdle for me here is that as soon as I switch to something that's not a vanilla textarea, I bet a bunch of browsers will break (although maybe I'm too pessimistic about this).

Edit: Added a leaderboard to the main menu (also note the new per-task stat links in the program inventory). Still thinking about adding an "org chart".

Edit: Also made promotion emails show up separately so they're not so easy to miss.

Thanks again!
« Last Edit: February 21, 2020, 10:30:00 AM by Deraj » Logged

Try my HTML5 games: SIC-1, Chromium JSU
a-k-
Level 2
**


View Profile
« Reply #5 on: February 28, 2020, 06:45:14 AM »

The latest enhancements are a nice addition! It seems that there's high attrition in self-modifying code (or is it just due to historical reasons?) A few suggestions for the memory view that might help:
- highlighting memory cells that changed in the last cycle
- hovering over memory cells can highlight the correponding line of code, and vice versa (maybe highlight both)
- toggling between hex and decimal, with decimal being the default (also applicable to the data view)
- something that will help discern memory addresses (e.g. a thicker border or a space between the 8th and 9th columns)

Additionally:
- supporting minus, e.g. .data -@memory-1 (useful for optimizing bytes)
- Some idea for more granular ranking in the leaderboards, now that you're tracking best-cycles and best-bytes separately: show sum(min cycles) and sum(min bytes) over all levels, and make them a secondary criteria (you may need two leaderboards, in that case...)
Logged

Deraj
Level 0
**


View Profile WWW
« Reply #6 on: February 28, 2020, 12:40:42 PM »

It seems that there's high attrition in self-modifying code (or is it just due to historical reasons?) A few suggestions for the memory view that might help:
- highlighting memory cells that changed in the last cycle
- hovering over memory cells can highlight the correponding line of code, and vice versa (maybe highlight both)
- toggling between hex and decimal, with decimal being the default (also applicable to the data view)
- something that will help discern memory addresses (e.g. a thicker border or a space between the 8th and 9th columns)

Additionally:
- supporting minus, e.g. .data -@memory-1 (useful for optimizing bytes)
- Some idea for more granular ranking in the leaderboards, now that you're tracking best-cycles and best-bytes separately: show sum(min cycles) and sum(min bytes) over all levels, and make them a secondary criteria (you may need two leaderboards, in that case...)

Wow, thanks for the very thoughtful feedback!

You're right that the self-modifying code section has high attrition (I think the other highest source of attrition is people arriving via mobile browsers -- which I have not optimized for yet). I attributed this to it requiring more effort and the puzzles being a bit tedious, but I like a lot of your suggestions. I had previously played around with decimal and highlighting, but discarded a lot of my ideas for purely aesthetic reasons. Maybe I should have been thinking practically instead Smiley

Those other suggestions are great as well. I've added them to my to-do list.
Logged

Try my HTML5 games: SIC-1, Chromium JSU
Deraj
Level 0
**


View Profile WWW
« Reply #7 on: December 07, 2022, 01:44:10 PM »

After a multi-year hiatus, I decided to come back to this game and polish it up; adding: music, a mini-game, a story, and a Steam port. The browser-based version has also been updated to be almost in parity (only differences are lack of Steam features like cloud saves and friend leaderboards).

I'm still interested in feedback about the in-game documentation/tutorial puzzles and whether or not anyone reads the story Smiley

Learning to make music and write a story was a fun experience, although given the tiny market for programming games, I'm starting to question if it was really worth my time. I think I've only gotten roughly 150 players to boot up the game on Steam, and < 50 have completed any nontrivial puzzles.

Oh well, I had fun making it, I suppose!

Logged

Try my HTML5 games: SIC-1, Chromium JSU
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic