‘Show, Don’t Tell’ is made by seven people in total, using Unreal Engine 4. Simulatie Centrum Maritiem (the customer) wanted a game that would focus on working together. The team’s programers’ main focus of this project is to perform extensive research regarding conceptualization of the game’s main premise, substantiation of said game concepts, insight of concept feasibility and player feedback on the game itself. The documents, in which those aspects of the project are written, are classified and are nowhere to be found in the source code.
‘Show, Don’t Tell’ tells the story of two private detectives investigating a long abandoned power plant in the Netherlands. Unbenknownst to both of them, the power plant itself acts as a cover for the deadliest escape room scenario to have ever existed. The main goal is for both players to make it out of the escape room together. Throughout the game, the players need to work together to solve puzzles and to progress. The only form of communication is through a window in the wall that is seperating the players. They communicate through the use of markers.
This is the first time any programmer of the development team has worked with Unreal Engine 4 and its distinct way of writing code through the use of Blueprints. A few artists suggested the use of Unreal Engine 4 to reach the fully intended effect of their art assets. This project was going to include Virtual Reality. Due to time constraints, this idea was never fully realized.
To have the players work together, the game needed to be a multiplayer game. With the use of research into a simple multiplayer setup in Unreal Engine 4, Wayne was able to set up a shared LAN connection, multiplayer “server”. This is a broad use of the term “server”, as it actually sets up a multiplayer “server” the moment the hosting party is starting the game. The other player has to be on the same LAN as the host in order to join his game.
In order to classify a certain Blueprint as a puzzle or an unlockable or interactable object, Wayne makes use of interfaces. Unfortunately, interfaces in Unreal Engine Blueprints cannot make use of its ‘Events’ and ‘EventDispatchers’. In order to call events of certain interfaces, without knowing what kind of Blueprint is implementing that interface, Wayne implemented a way for interfaces to return self-made ‘components’. components are able to have events and dispatchers. Puzzles and doors have components called ‘PuzzleEventComponents’ and ‘UnlockableDoorListenerComponents’ respectively.
To make a puzzle unlock a door, without knowing what kind of puzzle or door it is, Wayne was able to bind events, that are normally found in Blueprints that implement the ‘Puzzle’-interface, with those that are of the ‘Unlockable’-interface kind. Each different puzzle has a different way to be solved and to signal that it is solved. But using the ‘Puzzle’-interface, and (by extension) its corresponding components, they all dispatch the same event when solved. A door that is bound to a puzzle always picks up this kind of event in order to unlock.
