Remembering game state in a tape

Got a cool idea that should be in R'n'D? Let's hear it!

Moderators: Flumminator, Zomis

Post Reply
Tomi
Posts: 339
Joined: Wed Aug 03, 2005 3:37 pm
Location: Slovakia

Remembering game state in a tape

Post by Tomi »

Currently, when you load a tape (with F2), the game has to play the whole tape. Sometimes, like in a dangerous situation where you load the game ten times in a minute, this can be quite disturbing. (Also, it takes *ages* on large maps, even if there aren't much moving objects.)

I suggest that the game will store its data and variables in a tape, and when the player uses Quick load (F2), it just loads the tape and voila! it takes less than a second.

There may be a problem with currect screen image to show. Is it possible to "calculate" it from the game data? It shouldn't be stored in the tape, because 1. it would be too big, 2. it would cause problems if the tape would be played on different custom artwork than the one when it was recorded.

Random numbers generator may cause another problem. It may be needed to store number of generated random numbers in the tape too.

Tapes that are solved would not be loadable, just replayable.
Zomis
Posts: 1502
Joined: Mon Jun 21, 2004 1:27 pm
Location: Sweden
Contact:

Post by Zomis »

I believe that Holger has been thinking about this already, and hopefully it is already on his todo-list.

And about storing the image shown, yes it is possible to redraw this picture based on the game values.
Random numbers has already been handled well with the tape system, RND saves the "randseed" when saving the tape and loads the randseed when loading the tape, that way all random numbers gives the same result.

I'm not 100% sure about this, correct me if I'm wrong Holger. And pleeeease say what you think about this idea and what the progress (if any) is.
HerzAusGold
Posts: 362
Joined: Sun Sep 25, 2005 4:41 pm
Location: Germany

Post by HerzAusGold »

Hi,
just test tape loading with "rndTest16", available here.
http://www.zomis.net/rnd/download.php?id=477

Should be a little be faster.
I cant check this with a real big tape (have only one with 12 min).

*edit*
But I think you dont mean the loading time, but the time for "warp forward".
Dont forget here that you can "pause" at every time.
And the answer is ... 42 !
User avatar
Holger
Site Admin
Posts: 4081
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

> correct me if I'm wrong

No, you're absolutely right.

And yes, it's somewhere on my to-do list. :-)
Tomi
Posts: 339
Joined: Wed Aug 03, 2005 3:37 pm
Location: Slovakia

Post by Tomi »

I didn't mean the time for "warp forward", but for loading. Believe me, in some levels (e.g. Snake Bite final level) it really takes almost one second to load one real second of a tape! When you have played for two minutes, that's two minutes every time you load a tape, and if you make a mistake every few steps (as I often do), you're doomed.
Please Holger, try to implement this one soon... 3.3.0 or so, maybe?
Zomis
Posts: 1502
Joined: Mon Jun 21, 2004 1:27 pm
Location: Sweden
Contact:

Post by Zomis »

Tomi wrote:I didn't mean the time for "warp forward", but for loading. Believe me, in some levels (e.g. Snake Bite final level) it really takes almost one second to load one real second of a tape! When you have played for two minutes, that's two minutes every time you load a tape, and if you make a mistake every few steps (as I often do), you're doomed.
Please Holger, try to implement this one soon... 3.3.0 or so, maybe?
I think you're speaking about the same thing, since "warp forward" is the play-function used when loading a tape.

Herz-Aus-Gold rndtest16 sounds interesting, I will defintely check this out when possible...
HerzAusGold
Posts: 362
Joined: Sun Sep 25, 2005 4:41 pm
Location: Germany

Post by HerzAusGold »

The loading of the tape is done in millisecs!
Then after a quickload (F2) the tape are autoplayed with "warp forward".
This takes some time - I dont take a look to this code up to now.
In "rndTest16" I only check if it is possible to handle the tape like a "zip" file (with no compression) - and it works. Unfortunalty dont improve the "quick loading" time.
And the answer is ... 42 !
User avatar
Holger
Site Admin
Posts: 4081
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Post by Holger »

> in some levels (e.g. Snake Bite final level) it really takes almost one
> second to load one real second of a tape

This can happen, yes. The "quick load game" function just skips the delay between game frames usually used for synchronisation to 50 frames/s. It cannot get faster than that (in the current implementation), so it might get real slow on computers that need the whole 1/50 s to calculate one game frame.

It should be possible to create a better "quick load" that saves the complete game state with each and every internal value, but it could be harder than expected. Haven't tried this yet.

> Please Holger, try to implement this one soon... 3.3.0 or so, maybe?

I'll try my best... Can't promise anything, though... ;-)
Tomi
Posts: 339
Joined: Wed Aug 03, 2005 3:37 pm
Location: Slovakia

Post by Tomi »

Ah... of course I've meant Warp forward.
I thought that warp forward is the faster play mode when you click the play button twice.
Post Reply