Select Page

Overview

About:

Sectech was my second gameproject at Futuregames, and my first VR project. In the game you assume the role as a candidate for employment at Sectech®, the leading manufacturer of security electronics for the home customer. To get your employment, you have to complete their work test in their state of the art simulator environment. The task is to complete 10 repairs in 10 minutes. At your aid, computer advice not unlike a worse Clippy, and an endless amount of scrap. Do you have what it takes to join the Sectech team?

Details:

  • Engine: Unreal 4
  • Team: 3 designers and 4 artists
  • Time: 4 weeks

My Contributions:

  • Gameplay design
  • Scripting
  • Level/Challenge design
  • Sound FX/Design
  • Voice talent!

Gameplay Design

Puzzle design

As gameplay designer, I primarily designed the puzzles and challenges of the game. We went through quite some iterations before we decided on a system that mixes both Luck & skill.

Basically, the player is tasked to repair a faulty device, a SecDog 2000 as it’s called in-game. On this dog there are modules placed that have to be fixed, and they require varying solutions. The module repairs are done by finding and attaching scrap pieces of a matching type to the module. The module types are as follows:

  • Conductive: A simple binary puzzle, where the player only has to connect two ends with an oblong scrap piece
  • Battery: In this puzzle players must find power-supplying scrap that fills up a bar on the module itself. When the bar reaches 100% the puzzle is completed.
  • CPU: This puzzle is similar to the battery in that the scrap fills up a bar, but here you have to be within a certain threshold to be successful. Arguably the hardest of the 3.

The puzzles are further complicated by an element of randomness; the requirements for battery and CPU puzzles are randomised, and the scrap pieces also have random values. This promotes a bit of trial and error as the player scrounges for new scrap to use in the puzzles.

Scripting

Scrap & Spawner

As a scripter on this project, I was solely responsible for the development and implementation of one of the core mechanics of the game: The Scrap Spawner and the assorted scrap, both it’s properties and behaviour.

The scrap spawner is a vital tool for the player, as it is used to spawn the scrap they need to rummage through and use to solve the puzzles. Basically, it has a simple task, when the lever is pulled in the game, it spawns a random assortment of scrap, set to a specific limit in order to not let the player flood the play area with scrap and also crash the game.

The system is set up in such a way that Scrap define their own properties when spawned, except for their type. This means that the scrap spawner itself only sets up how much scrap will spawn, what type and any eventual special behaviours. As scrap spawns, they only check their type and then assign their own values, sound effects and other properties.

The blueprint snippets on the left show how the systems are set up. First off, the scrap spawner is set up in a recursing method, that simply tries to run until the scrap limit has been reached. Inside the actual function, there are a multitude of checks. In order to make reduce friction for the player, the scrap is set to spawn in a pseudo-random manner based on what is currently required by the puzzle. The method checks the requirements, and then spawns scrap of a matching type until the requirements are filled, and this is done for all requirements. if there is still space before the cap is hit, the spawner fills it with completely random scrap. Virtually, this guarantees that there is always enough scrap for the player to solve the current puzzle.

Sound FX/Design

Scrap SFX

As part of the process of producing the scrap, I also sourced the sound effects for them. For me it was very important that the scrap made a lot of noise when impacting, as I wanted it to really “feel” like scrap falling when you pulled the lever of the scrap spawner. Each scrap type were given 3 unique sounds which was then modulated to pitch-shift everytime they played. This was enough to make it not feel like it was only the same sounds repeating. I also added a sound effect on the scrap spawner itself, to enhance the sounds of the mass of scrap pieces falling onto the table

Additional SFX and VO

I also produced the other SFX of the game, like button clicking and pass/fail prompts. These were more like beeps or screeches to display something negative or positive for the player, to give further feedback to their action (rather than just visual or physical feedback).

I also recorded my own voice for the tutorial section, where I explain the game experience for the player. I processed and edited it to make sound a bit more distant and robotic.

Post-mortem

This project taught me more things about VR and UX than I can comfortably count. There is a world of difference when you move away from the usual peripheries to something more “life-like”. Some interesting things of note that I will bring to future projects is how players in VR react to the physical space.

In usual game and level design, we can work with the physical limit on depth and perspective to encourage players to notice things far away. In VR however, players seem to want to explore what’s closest first and move outwards. We put a very big timer in the room to show players how much time there’s left, yet it wasn’t noticed by too many, despite being huge and, in a 2d perspective, would take up most of the screen. Players were arguably more interested in the work table and what was going on close to them. Arguably, any piece of information should be placed close to where the player’s interactions are taking place. We did manage to make this work with the player’s computer, that gives info and also acts as a menu. As an added plus, it can be moved in and out of the way as needed.

Another thing to notice is interactability. IF the player can grab onto things, everything that looks grabbable should be grabbable. Otherwise you might have to put it out of reach in order to not let the player lose some immersion.