- Load save data
- Render basic scene
- Render sprites
- Avatar movement
- Tile / sprite animation
- Render dialog box
- Render text on screen
- Render multiple lines of text
- Dialog triggers
- Intro cutscene
- Room exits
- Ending triggers
- Collecting items
- Variables
- Logic parser (for dialog, exits, endings)
- Implement branching logic interpreter (dictionary based??)
- Item requirements for exits
- Item requirements for dialog
- Branching logic inter
- Blips for interactions
- Game music (tunes)
- Room transitions
-
Dialog can contain text triggers (draw sprite, shaking/rainbow/wavy text, changing text color palette). Values of variables / items can also be printed to dialog.
-
Exits teleport players to room and coordinates.
-
Endings end the game.
-
Pagebreaks end current text box, force new text to move onto new box.
-
Lists display dialog:
- Sequence list serves dialog in sequence, returning empty once all dialog is used.
- Cycle list serves dialog in sequence, resetting to first dialog after reaching end.
- Shuffle list returns a random dialog from the list each time.
- Branching list chooses dialog based on logic, returning first valid branch. Branches can be iterative, containing further logic.
-
Locked property: indicates if exit or endings can be triggered.
-
Palette swap: swaps changes the room palette (persistent)
-
Avatar morph: changes avatar to another sprite (persistent)
-
Blip: plays a tone
-
Tune: change room tone
-
The number of an item in the players energy can be set/changed, as can variables.
-
Once logic is triggered, it runs till end of logic options.
-
Once dialog is entered, new text (from dialog or logic) is stringed together into a complete script. This text is then presented all at once (unless broken up by page breaks).