Rest A-Shored

March 02, 2019

Project Details

  • Platform: PC
  • Genre: Simulation
  • Engine: Unreal Engine 4
  • Development Time: 4 weeks
  • Team Size: 12 developers

  • *Microphone is required


Rest A-Shored is a voice recognition simulation tech demo. In this game you literally talk to the characters helping them to survive and possibly escape the island. In this project we brought the emergent game-play experience through the way you play the game. Instead using keyboards or game-pads I thought how interesting could be to guide the player with your voice.

This game is intended to be played with voice commands.

Roles and Responsibilities

  • Tech Design

    Rapid Prototype providing voice recognition solutions

  • Game-play Scripter - Blueprints

    Camera controller, Quest system, Character Events, Tutorial

  • UI/Menu Scripter

    UI implementation, Inventory UI scripting

Tech Design

There are a lot of voice recognition/speech to text services out there (Microsoft, IBM, Alexa, Google, etc). On my research I found Sphinx-UE4 speech recognition plugin, it supports blueprint scripting which makes very easy to prototype. The plugin doesn’t offer the best voice recognition accuracy but for an 4 week project it was the best choice

Voice Recognition Prototype

First: I setup the Sphinx-UE4 plugin and its library

Second: I built basic set of key phrases and functions binding them with simple character functionalities such as movement and jumping

Third: I created a very simple level environment to play-test

In your right my colleague Karl Mörtberg is testing the prototype :)

Voice Recognition Prototype Script

I built a basic set of different key phrases to guide the player around the world. The play-tests revealed an interesting “feature”: the low speech recognition accuracy created unexpected character behaviors making the players desperate to fix their commands or not let the character do something wrong. The fact that you can talk with the character and get some feedback responses creates a bond between the player and the character improving even more the emergent game-play engagement.

Gameplay Scripts

During this project I scripted several gameplay systems using tools and functions created by other programmers on the team. I also assisted artists and designers providing help with technical knowledge in Blueprints and general engine areas.

Character Gameplay Events

Inventory, Harvest, Equip, Store, Mood, Interact and Body Temperature are custom systems created by the programmers, They exposed events and functions so that designers can script character behavior logic in blueprints. I used all those components and functions in order to build all the character interactions and functionalities.

I also built an action randomizer system, which was necessary in order to "force" the player to do the correct action in case the speech voice recognition system fail to many times.

Click on the images below to see the blueprints

Camera Controller

The camera its an important component for the gameplay experience.
Players should be able to move around and explore the island in order to achieve their goals in the game.

The Pawn class holds the camera functionality. The camera moves over the X and Y axis, zoom in/out and rotate over the Y axis. FOV settings are exposed for artists have the freedom to set their own settings according to the camera zoom

Camera Controller Blueprint

Click and Drag the mouse around to explore the script

Tutorial and Quest System

In order to track the player current objective progression and help them play the game in case the voice recognition fails too much I built an linear quest system.

Each quest is an Actor containing the quest tracker logic. Player Controller class manages all the game quests. This was very useful to create all the game quests and the tutorial.

Quest Manager (Player Controller)

Click and Drag the mouse around to explore the script

Quest Example - Craft an Axe

Click and Drag the mouse around to explore the script

UI/Menu Scripter

I implemented and scripted all the game menu screens and some HUD functionalities such: Quest To Do list, Active Player + Inventory.

Map transition and proper loading screen was also required due the Voice Recognition plugin initialization. I did that ;)

UI Initialization - Player Controller

Click and Drag the mouse around to explore the script

Character Inventory

Click and Drag the mouse around to explore the script