-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
Written to keep records of all things done and planned.
Audio
TBD
Character
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Custom properties: can set and read them back.
- - Interactions: RunInteraction and Room.ProcessClick on character trigger character functions.
- - Inventory: added items increase item quantity, removed items decrease quantity, be able to check that item is present, be able to select an item as ActiveInventory.
- - Moving: order a move, assert that intermediate positions match calculated timing (using speed). Assert that destination is reached.
- - Moving: test different speed ratios: straight horizontal, vertical, diagonal lines, arbitrary directions in a number of angles.
- - Walking: order a move, assert that intermediate positions match calculated timing (using speed). Assert that walking animation is played. Assert that destination is reached.
- - Walking: movement linked to animation case.
- - Walking: turning while walking: character changes loop in certain positions (requires a well chosen walk path). If "Turn while walking" is off then the change is instant, if it's on then turning is done step by step, with certain delays.
- - Turning on spot: order of loop changes (cw, ccw), delay of turns.
- - Idle view: starts if character is inactive for the precise amount of game updates. Plays certain frames and switches back to normal view.
- - Idle view: continuous idle animation (start delay = 0).
- - Background speech: overlay follows player's position, removed after certain time.
- - Standard speech: see Speech section below.
- - Animations: frame by frame test, assert that order of frames is correct, delays is correct. Test various animation options (forward, backward, once, repeat).
- - Animations: test that linked sounds are playing.
- - Graphic position: assert that the current sprite (frame) is positioned properly on screen (aligned to character's bottom-center).
- - Views: test that normal frames and flipped frames are drawn correctly.
Cursor
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Switching a mode means the graphic should change and match.
- - Mode cycling: modes change in an order.
- - Enabling/disabling a mode: disabled modes are not part of cycling.
- - Cursor hotspot: means that the cursor graphic is displayed with offset to the mouse position = hotspot offset.
- - Inventory item hotspot image: if defined in game settings, a crosshair image or a hotspot sprite should be drawn when cursor is in "use inv" mode. Has to be tested using screenshots.
- - Animation: set view and assert that cursor animates frame by frame with expected delay.
- - Animation over hotspot: assert that animation triggers when the cursor is over a room hotspot, that it runs correctly while over, and stops if cursor is moved away.
Dialog and options
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Overall visual positioning of options surface: position, size, style (depends on how options are configured). Have to be tested with the use of screenshots. "Run game loops during dialog options" should be enabled in game settings, and the tests may be run only from "repeatedly_execute_always", while the options are displayed.
- - Default standard, when no GUI is assigned for dialog options.
- - Regular GUI assigned for dialog options.
- - TextWindow gui assigned for dialog options.
- - Custom dialog options rendering.
- - Visual positioning of option texts. Have to be tested with the use of screenshots, comparing with precreated sprites with text on them (probably -- need to think this over well).
- - Multiple options positioning (x,y) on a dialog options surface, gaps between options.
- - Multi-line options (wrapped text), that relative positioning of their lines match font's linespacing.
- - Bullet graphic positioning.
- - Dialog flow: assert that dialog scripts properly execute requested options, switch between dialog topics, stop the dialog when expected. This may be tested either by simulating key presses (if option shortcuts are enabled) or mouse clicks, or by scripting automatic option selection in "custom options rendering" callbacks.
Dictionary
- - Dictionary tests.
Drawing Surface
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Drawing Surface operations. Maybe tested by analyzing pixels, or drawing on dynamic sprites, then taking screenshots and comparing with predefined results.
Dynamic Sprite
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
Engine Render
This section is meant to test correct internal rendering logic, such as timely object texture update.
For the basic render tests see Sprite Render section instead.
TBD
File
- - File operations.
Game
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
GUI and controls
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Interaction tests: use GUI.ProcessClick and assert that GUI and controls trigger their events, change the state correspondingly.
- - Test for TextBox reacting to Game.SimulateKeyPress, text changes, activate event runs on Enter/Return.
- - Button "mouse over" graphic: emulate moving mouse cursor (by changing position), and assert that buttons change their state when the mouse is over them.
NOTE: unfortunately at the time there's no way to simulate separate mouse down/up events, so there's no way to test pushed graphic. - - Button Animations: frame by frame test, assert that order of frames is correct, delays is correct. Test various animation options (forward, backward, once, repeat).
- - Button Animations: test that linked sounds are playing.
- - Interface disabled effects: all 4 options. Use screenshots and assert that GUI and controls visuals change (or does not change) when the interface gets disabled.
Hotspots
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Custom properties: can set and read them back.
- - Interactions: RunInteraction and Room.ProcessClick on hotspot trigger hotspot functions.
Inventory Items
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Custom properties: can set and read them back.
- - Interactions: RunInteraction and GUI.ProcessClick on item trigger item functions.
Lip sync
TBD
Maths
- - Math functions.
Overlay
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
Parser
- - Parser tests.
Pathfinding
TBD
Regions
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Interactions: walking on, walking off, standing on a region trigger respective functions. RunInteraction supposed to work with Regions too (has special values, not cursor modes).
- - Characters standing on regions get Tint or LightLevel effect: check through character properties (?).
Room
- - Properties: assert reading readonly properties
- - Custom properties: can set and read them back.
- - Events: test that room events are run, and run in correct order. Need to figure out how to do this optimally; for example: set variable values as they run, and check later when the tests are executed. Maybe there are other ways to do this.
Room Object
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Custom properties: can set and read them back.
- - Interactions: RunInteraction and Room.ProcessClick on object trigger object functions.
- - Moving: order a move, assert that intermediate positions match calculated timing (using speed). Assert that destination is reached.
- - Moving: test different speed ratios: straight horizontal, vertical, diagonal lines, arbitrary directions in a number of angles.
- - Animations: frame by frame test, assert that order of frames is correct, delays is correct. Test various animation options (forward, backward, once, repeat).
- - Animations: test that linked sounds are playing.
- - Graphic position: assert that the current sprite (frame) is positioned properly on screen (aligned to object's bottom-left).
- - Views: test that normal frames and flipped frames are drawn correctly.
Scripting
- - Variables assigned and read back.
- - Arithmetic operations.
- - Arrays: creating, writing, reading.
- - Dynamic arrays: creating, writing, reading.
- - Structs: writing and reading their elements.
- - Function calls, passing parameters, reading return values.
- - Conditional constructs (if/else, switch).
- - Loops (for, do..while, while).
Set
- - Set tests.
Speech
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Speech styles work as expected: overlays created for each part (text, portrait), and in the expected position. NOTE: have to use (late_)repeatedly_execute_always to make checks for the blocking speech (see Speech.TextOverlay and Speech.PortraitOverlay).
- - Various blocking speech's skip styles: timeout depends on text length + reading speed setting; skipping by key and mouse may be done using simulated clicks (Mouse.Click and Game.SimulateKeyPress).
Sprite Render
- - Sprite transparency: assert that a sprite with transparent bits is drawn correctly with background seen behind.
- - Sprite translucency: assert that a sprite on a object with Transparency > 0 is drawn translucent, blending with background.
Strings
- - String functions.
Text Window
- - Looks of textual overlay using text window gui. Assert that window edges/borders are drawn correctly, the size matches the size of single line of text and wrapped text.
Walkable Areas
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Characters or objects standing on walkable areas get scaling effect: check through character/object properties.
- - Area specific view: test that character getting on area switches to a different view, and that it returns back to normal when leaving.
Walk-behinds
- - Properties: property set = property get. Reading readonly properties should match values set in editor or have results of runtime changes.
- - Test that characters or objects walking "behind" the walk-behind are getting covered by it. Have to use screenshots for this.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed