Unreal Engine/Blueprints
Group University Project
Development Time: 8 months
Survival of the Cutest sees our doll heroine (debatable), Jane, run from the terrifying and spontaneous presence of a huge mech action figure, after a birthday party gone wrong. With everything around the dollhouse, will she be able to escape the terror, through hiding, distracting, and even sacrificing her fellow friends?
In this project, I was able to utilize a few interesting aspects of blueprints and Unreal Engine provided concepts. Using these assets, I've led development in the objective and saving systems, while using basic concepts to program a hiding mechanic and in-game debug tools.
A central mechanic of the game is the ability to hide. This allows you to temporarily be out of harm's way by avoiding the mech's line of sight. A prompt will show up on the hiding spot, along with a white outline, signaling a player to hide by pressing F if necessary. Be careful though, the mech can still look inside them and you won't have a chance to escape!
When the player presses the key to hide, the player gets teleported into the hiding place, the location, Hide Transform, is specific to each type of object, whether it be a wardrobe, cupboard or bed. The collision of the player is then disabled, removing the ability to move. The perspective of the player also changes, allowing the player to look outside of hiding, with a restricted camera view.
The inverse happens when the player gets out of hiding. Player gets teleported out to Ouside Transform, collision re-enabled, and the view is set back to the player's default camera.
A method we used to give direction to the player is to give a list of objectives to follow. This prompts the player to do certain things to advance in the game and narrative. We have designed a diegetic quest log, in the form of a notebook and a to-do list, giving proper descriptions of the next objective, while complimenting the game's cute aesthetic.
When new objectives are triggered and added, a big prompt text pops up for a short time to give the player a hint. We've also added a passage for opening the quest journal, as in some playtests we have noticed that it was not utilized very often. We intended it to be an important extension of this system, giving more detailed prompts than the quest title is able to provide.
Quest information is stored within data tables, a structure provided by Unreal Engine to store a list of objects of a certain struct, in this case, quest info, in a table format. I have included the quest title and description for the aforementioned prompts, with two string IDs that controls when a quest starts and ends.
Each object or location that relates to a quest will have an ID, which relates to the StartTriggerID and the EndTriggerID of the quest structures. When the player interacts with these objects or reach the locations, the function above will add or complete a quest. Iterating through Active Quests, the function will try to find a quest that where EndTriggerID is the same as the object's TriggerID, and finish this quest if it is found. The function then iterates through the data table to find a quest where StartTriggerID matches TriggerID as well, and adding that quest to Active Quests.
An in-game debug menu was requested early in development. This allows the game to be easily tested, changing the level and speed to facilitate in quick level testing, setting player states to allow for fully free exploration of the level without threats, and testing integral mechanics with spawning items and setting quests.
This menu was bound to the Alt key and a long key press is required to open, preventing the menu to be easily accessed accidentally by a player.