Kismet Scripting: Contextual Interaction
Design Goal: Allow the player to approach objects, see if they are interactable and then choose to interact with them if they desire.
Description: Because "Phantasmagoria" is a psychological horror level, it needs to have an explicit narrative. I chose early on to use newspapers, bloody messages and gravestones throughout the level to tell the story of Marcus and the ghost of his past. Therefore, I created my own system through scripting to allow for contextual interactions with Marcus turning his head when near such objects.
For each interact-able object, a global variable is turned on when the player steps in a trigger volume near it. Text telling the player they can do something is constantly displayed while in the trigger volume. Additionally, Marcus's head turns towards the object. Once the player leaves the trigger volume, the variable is turned off.
Design Challenge: The problem that prompted this system was that merely approaching interact-able objects immediately activated them and removed player input, creating a jarring experience. The Gears engine doesn't handle text well to begin with, let alone non-generic interactions. While I could have played a button-interaction trigger volume, I didn't want an out of place image appearing on-screen prompting the player to press a button when that was not the desired interaction. So instead I created a versatile system that prompts the player with a short text line when they can read something in more detail.