Designing a good GUI for TASing tools is important, since it will directly affect the ease of working.

Overall design issues

What windows to provide

Screenshot of emulated output

One would think that this would be a no brainer. But several features are useful here. The most critical part is of course that the actual gameplay is shown, but there is more to it for TASing purposes.
Scripting very frequently wants to overlay information on top of the gameplay, both in the form of text and in the form of drawn shapes. This is highly useful since scripting allows authors to see things that the game doesn't draw, yet are a part of the seen game world. This includes things like hitboxes and tilemap flag data.
The ability to zoom the output also aids when dealing with precision movements.
Systems that allow for touch input should of course overlay the touched areas as well. The ability to specify exact numerical positions should of course still be included.

Movie status display

There is always status to display about the current movie loaded. Such things include the current frame as well as the total number of frames. But also things like rerecording counts and lag counters are useful to have constantly visible.
You can put these details in a statusbar of a more important window, or a window dedicated just to showing this information. But having it as an overlay on the game screen allows to include it into video dumps for precise examination.

Input display

Knowing exactly what the input will be for the next frame is critical. The input should be for the next frame, not for the previous frame.
The input display should have the same precision as the emulated hardware. Rounding errors is a severe problem when dealing with the precision data in the input.
Displayed input should normally be editable using normal, if perhaps skinned, GUI controls. Sliders and virtual knobs are nice to have, but exact numerical display is required for precision.

Input history

Authors frequently need to know the exact input for the past few frames. Provide a summarized view of the input for the last ten or so frames.

Scripting console

Many authors use scripting tools to aid in their work. Scripting languages frequently have a command prompt and/or status output. Such features should be a separate window to allow for easy work.

Memory watch

Authors often want to monitor specific memory addresses to read data not normally exposed by the game, such as health values and the RNG status. This can be done by using scripting, but it is a good idea to provide a dedicated feature for this purpose.

Keyboard shortcuts

Authors perform a lot of small operations when working. As per normal GUI guidelines such operations should have keyboard shortcuts since mouse input is less efficient.

Joypads

Authors often work by using dedicated game controllers and as such keyboard shortcuts should be mappable to game controller buttons.

Common shortcuts


LawsOfTAS/OnGUIDesign last edited by feos on 1/8/2024 11:51 AM
Page History Latest diff List referrers View Source