1,079
edits
Line 300: | Line 300: | ||
''Background:'' | ''Background:'' | ||
All engines in ScummVM are driven by | All engines in ScummVM are driven by three sources of external influences (input): | ||
* Mouse | * Mouse events | ||
* Keyboard events | * Keyboard events | ||
* Pseudo-random number generators | * Pseudo-random number generators (several, in different parts of the code) | ||
It would be useful to have some layer in between our system-dependent backends and engines which can record these events to a file and play them back later. | It would be useful to have some layer in between our system-dependent backends and engines which can record these events to a file and play them back later. Time control is crucial here, since the games take some time to react to these events (i.e. you need to record when the events occured, too). | ||
This will significantly help with regression testing. | This will significantly help with regression testing, as it would be possible to make records of certain scenes that caused bugs; we can record the incorrect behavior, and then automatically run these tests to compare the recorded with the expected behavior. (How this comparision would be done precisely also needs to be determined. You could for example compare screen content). | ||
The solution should be high-level, perhaps in the form of a custom event loop, so that all engines will be able to use it with minimal effort. | The solution should be high-level, perhaps in the form of a custom event loop, so that all engines will be able to use it with minimal effort. (Note that the PRNGs likely are the biggest obstactle here). | ||
== Implement "return to launcher" feature == | == Implement "return to launcher" feature == |
edits