Re: [Alephmodular-devel] A note on films
Status: Pre-Alpha
Brought to you by:
brefin
From: Woody Z. I. <woo...@sb...> - 2003-01-18 20:39:07
|
On Saturday, January 18, 2003, at 03:14 PM, Mark Levin wrote: > On Saturday, January 18, 2003, at 12:40 PM, Woody Zenfell, III wrote: > >> Might I suggest that it may be more practical to have a facility for >> dumping and another for comparing against an existing "checkfile", so >> that the game can automatically detect and warn you about >> inconsistencies? > > Heh... Might as well let the game record the playing film into a > brand-new film and diff them :P No no no no no this is **totally** different from what I'm saying. I agree that what *you* said is useless. :) (Unless by "playing film" you mean the M2 filmfile and by "record into a brand-new film" you mean "render into a QuickTime file" or something... which I doubt.) Remember a film file only has the "inputs", i.e. the action_flags stream. The checkfile would be a representation of (part of) the game's *state* (i.e. something gotten by extensive computation within the engine, based on the inputs but very definitely distinct from them). The problem we're trying to detect is when applying the same input stream produces a different "state stream" - indicating that that extensive computation within the engine is no longer coming up with the same results it once did. And the checkfile/filmfile combo would be *quite* helpful in this regard. (I assume it's obvious that the "checkfile" would be generated from the filmfile as early as possible... then occasionally in the game's development lifetime, that original filmfile and checkfile would be used to make sure everything's still working the same way internally.) I guess I didn't get my point across very well - must not have used enough words. ;) OHH, or maybe there's a concern that AM *already* diverges from M2 behavior. Well, right, obviously the checkfile scheme can't detect that since M2 doesn't write checkfiles. (I guess you could carefully hack the binary or something to add this capability in, but...) A checkfile alternative could be to use a saved-game at the end of the film, the idea being that if the states diverge at some tick, they will be different for all subsequent ticks, and thus will show up in the final state. And of course a saved-game captures all relevant game-state, and so *might* be able to catch things that merely the value of get_random_seed() would not. (Though I rather doubt it, in practice.) And, automatically comparing two whole game states is not nearly as easy as comparing two 16-bit values. (Yeah you could actually write the two saved-games out and diff them or something, but it's more painful to automate.) Woody |