Tape deck confusion

Found a bug in R'n'D? Report it here!

Moderators: Flumminator, Zomis

Post Reply
filbo
Posts: 355
Joined: Fri Jun 20, 2014 10:06 am

Tape deck confusion

Post by filbo » Thu Jun 20, 2019 9:59 am

The default R'n'D window, as seen in R'n'D Contributions & in EMC levels, has two sets of tape controls.

The top, larger-icon set appears only during game play and has standard icons for STOP, PAUSE, PLAY.

The bottom, smaller-icon set appears during game play and on the main menu. It has icons for ?EJECT?, STOP, PAUSE, RECORD, PLAY. (The 1st icon is like a PLAY/PAUSE key with a bar missing, or NEXT SONG with a triangle missing, or EJECT in the wrong order and rotated 90 degrees...)

Anyway, these share 3 same icons, but the actual buttons have different effects:

Top-STOP: prompts if I want to quit (game is paused during dialog); if I say no, game continues unharmed.
Bottom-STOP: recording stops; tape deck time stops incrementing, but top TIME (#seconds) continues to tick; game animation continues; I can apparently keep playing, but no recording is kept.

Top & bottom-PAUSE: seem to have identical effects.

Top & bottom-PLAY, from paused state: same, continues gameplay.

Top-PLAY, from state after bottom-STOP: no effect.
Bottom-PLAY, from state after bottom-STOP: replays tape from time zero (aborting any non-recorded play which was then in progress).

====

I find these two sets confusing; I imagine less technical users do even more so.

I have a vague sense that the bottom set are about 'tape control' while the top are 'game control', but the delineation of function is not clear in my mind.

There is one error I constantly commit, which is very painful: starting a new recording at a moment when I actually wanted to replay the current one up to around where I died.

This can happen various ways, but I think the #1 most common way is that I used bottom-PLAY (1, 2, 3 or 4x to achieve various playback speeds) until the very end of the tape. At that moment, hitting RECORD starts over from scratch, while hitting PAUSE, RECORD, appends to the tape. -- No, this isn't it, I just tested and there is no way to append-to-tape if you allow it to play all the way to the end. Yet I constantly run into this; I can't properly bugreport it because I'm never quite sure what I did to cause it. :(

2nd most common is that I die, I hit some keys to initiate playback of the tape-so-far, but I fumble the order somehow and end up starting a new tape. Again, I'm not 100% sure what sequence causes it.

And again, I feel there is a general solution to this, which I've asked for before. Basically: any time the game is about to erase an in-memory tape, stash a copy in memory. Provide a 'restore stashed tape' action. That would rescue me from something like 2-4 'oops, argghh' moments per hour of gameplay.

FWIW, I have these keys defined:

shortcut.tape_eject: XK_0 # 0
shortcut.tape_extra: XK_1 # 1
shortcut.tape_stop: XK_2 # 2
shortcut.tape_pause: XK_3 # 3
shortcut.tape_record: XK_4 # 4
shortcut.tape_play: XK_5 # 5

and the sequence I am most likely trying to hit when I mistakenly wipe out my current tape is:

51555 [ play back at max speed, invisible, stop before death ]
[ wait; when it pauses: ]
4 [ cut tape here; record ]

Oh, actually I think I know what at least one of the death scenarios is: during play I am often toggling between pause and not-pause, using the space bar. Also often toggling between single-step and free-running play, using '1'.

Good scenario: I'm playing, I die, '51555 ... 4', continue playing.
Bad scenario: I'm playing, I die, I was just about to hit space to pause; main menu receives space as 'start game' (from scratch).

... so that's the one that happens at [attempted] start-of-playback. Still not sure what the one that happens at end-of-playback is.

Either way, a cached copy of most recent tape-in-progress would save me endless numbers of times.

I think it would also be good if the game entered 'paused' state at the end of playback of a tape. Then the user could unpause (to watch further development of e.g. amoeba vs bugs); or hit RECORD to append. The current behavior of leaving the game engine running is not optimal as it pinches off possibilities.

Post Reply