-
Notifications
You must be signed in to change notification settings - Fork 6
Adventure creation guide
This page is a collection of ideas and notes for a guide for creating adventures with KiiGame Adventure Engine.
KGAE is designed around small amount of game world object types and user interface interactions with them. What happens from these interface interactions with the objects is definable by the adventure designer. The designer can define what happens in each such interaction with a number of interaction commands. Each interaction can include several commands.
The game world includes the following objects:
- rooms - each "room" is one view of the game world
- furniture - things in a room that the user can interact with
- items - things that the player character carries in inventory from room to room , that the user can interact with
- player character - there's an animatable picture of the player character in the lower right corner, next to the inventory. It's not interactable (yet), but the monologue command can display text in a speech bubble next to it.
The interface interactions are:
- clicking on furniture or items
- dragging an item on furniture or items
The interaction commands are:
- monologue - makes the player character say things.
- inventory_add - add an item to the inventory
- inventory_remove - remove an item from the inventory
- remove_object - remove a furniture from a room
- add_object - add a furniture to a room
- do_transition - move to a different room
- play_character_animation - play a character animation
- play_sequence - play a cutscene (timed slides)
- set_idle_animation - change the default animation for character idling
- set_speak_animation - change the default animation for monologues
- npc_monologue - make a furniture say something (text in a speech bubble)
Examples of things you can do with combinations of interaction commands. There aren't any hard-coded furniture types (such as doors, containers, specific puzzle parts..) so here are examples of how to implement some of them. Also included are some design practices that have appared to be useful.
A click on furniture locked_door results in the following interaction commands:
- monologue: (key to text, something like "Ah! But it is locked!")
A drag of item key to furniture locked_door results in the following interaction commands:
- remove_object: locked_door
- add_object: closed_door
- monologue: (key to text with something like "Ah! The door is thus unlocked!")
A click on furniture closed_door results in the following interaction commands:
- remove_object: closed_door
- add_object: open_door
- monologue: (key to text with something like "Ah! The door opened!")
A click on furniture open_door results in the following interaction commands:
- do_transition: some_other_room
- monologue with timeout: (key to text with something like "Ah! I have arrived to this and that room! There seems to be this and that interesting thing here!")
Of course, in an actual game it is much nicer for the player is some or all of these steps are consolidated, but the above goes as an example.
It may be a good idea for the character to say something after each transition. This allows you to give some hints to the player when they arrive to a new place, or progress the story. The trigger for this message is put in the interaction that included the do_transition command to the new room. You can use monologue with a timeout attribute for this. The example was already in the Door example above:
A click on furniture open_door results in the following interaction commands:
- do_transition: some_other_room
- monologue with timeout: (key to text with something like "Ah! I have arrived to this and that room! There seems to be this and that interesting thing here!")
There's no specific functionality for endings as such. The final puzzle could trigger an ending using a desired combination of interaction commands. For example, this could be a final cutscene, removal of all inventory items and a final room with a suitable background graphic including a congratulatory message.
- play_sequence: outro
- inventory_remove: Remove those inventory items that might be there at the end of the game
- do_transition: the_final_room