And the Oscar goes to @!

5 January 2007

Here’s a interesting fact — because of the turn-based and deterministic (modulo random number generation) nature of roguelike games, if you record all the keystrokes of a given roguelike game, and the preliminary state of the random number generator you are able to replay the whole game! I thought about that a long time ago, but it was today, that I finally made some action towards it. The results are surprising — I have a complete DoomRL game movie saved in less than 4kb!

· · ·

Now the good news — you’ll get to play with it too! And not only in DoomRL, but in any turn-based Valkyrie roguelike! Maybe I’m just a dreamer, but I think that will be a great boost for the community.

Another great feature of KeyMovies (as I will now call them) is the value in bug hunting — had a crash? Send me the generated KeyMovie and I will be able to reproduce it as many times as I want!

Keymovies also offer one feature that might be a Pandora’s Box — imagine that you can STOP the movie at ANY TIME and jump into the action yourself! But I’m still wondering wether it would be good to allow that (even with zeroscore and no player data advance), because it would allow exploring the game too easily ;].

Unfortunately with all their good features KeyMovies have also one serious disadvantage -> you can easily advance in the movie with whatever pace you want, but you can’t rewind… Still it’s a small price to pay for such a fun feature I think. A solution to that tough, would be (in case of DoomRL) “saving” the game in the movie file every level — this would allow you to skip between levels like skipping chapters in a book, both forward and BACKWARD.

In the future Valkyrie will provide another movie recording method — Valkyrie Movie Files — which will be recorded from the screen output. They are needed to provide a way of easily posting your movies on the web, and for the sake of easy back/forward tracking and doing any kind of montage. Every Valkyrie game will have then the option to “render” an existing KeyMovie file into a VMF file. And I hope I’ll get someone to do me a Java Applet for playing VMFs (I could do it myself, but I hope someone helps — I have enough Java for now…).

Anyway, this is a feature for you people — I hope it will turn out as much fun as I envision t. Be prepared for many competitions once the next version is out — for (once you think of it) a KeyMovie can’t be cheated :).


Comments

Derek · 5 January 2007, 06:39 I love you, Kornel. ;)
Adral · 5 January 2007, 09:47 The Emperor wants you to release that feature... NOW!

Seriously, I think it\'s a great idea. My opinions on the subject are:
* Don\'t let people to \"enter into the replay\". I think it ruins the fun of the game, as does savescumming, because when you have such power over a game, you get bored of it easily
Adral · 5 January 2007, 09:48 The Emperor wants you to release that feature... NOW!

Seriously, I think it\'s a great idea. My opinions on the subject are:
* Don\'t let people to \"enter into the replay\". I think it ruins the fun of the game, as does savescumming, because when you have such power over a game, you get bored of it easily and that\'s why I never savescum, even though I suck, because if the game is too easy I play it once and then ditch it. That\'s why roguelikes rock!
* About saving on levels, HELL YES. That way you can replay if you lost something important of the action, and makes commenting on the forum much easier. Perhaps put some kind of \"mark\" every time the player enters a level, and perhaps add the option for the player(!) to put in his own marks when replaying so the game can be skipped easily between mark and mark. That way makes looking at demos easier, because you can point to a specific place:
\"Hey, look at my 15th mark, there\'s when I\'m about to enter the room full of Arachs and Archviles! I almost died that time!\"

My two cents!

Sorry for the double post, but the previous one lost like half of it!
Globb · 7 January 2007, 18:46 Were you thinking about Doom multiplayer? are there any internet librarys for pascal?
Kornel Kisielewicz · 8 January 2007, 15:25 For DRL multiplayer see the forums -- it has been discussed many times, and will rather not happen. As for internet libraries for FreePascal -> plenty ;]. Not to mention the fact that all C shared libraries load in FreePascal with no problems ;].
Slashie · 9 January 2007, 04:57 I sense a dangerous treat to permafailure!!! dont allow to resume a movie!! (or.. I may be getting something the wrong way :P)

Also, I think this must be brought in: http://dosrecorder.sourceforge.net/ very nice! (and definitively underrated:( )
Kornel Kisielewicz · 14 January 2007, 23:56 Well, now you can test a very early implementation of this feature in Berserk! 0.8 Release Candidate 2 -- head for the Chaosforge forum if you want to give it a roll :).
Mr.Peanut · 2 November 2007, 15:30 A very late reply here. This exact method was used by Donnie Russell in his excellent port of NetHack to the Gameboy Advance, AGB Hack. It was the only way he could save NetHack games on the GBA, given the small amount of SRAM.

Speaking of handhelds, since DoomRL is implemented in LUA, is there going to be an \"official\" DS version? The biggest problem would be that the DS screen is too small for a tiled ASCII 80 column display. DSLinux manages 60 columns and it isn\'t pretty. A new tile set with a tilewidth of 3 pixels would be required, unless the screen could scroll.