Technical Design + Game design

Freeplay Arcade


  • Time frame: 6 weeks half-time
  • Genre: Party Game
  • Engine: Unreal Engine 4

Made by

  • Technical design and game design: Gabriel Hector
  • Arcade cabinets, walls, floor and roof: Sanna Friberg

Freeplay arcade is a four player party game that takes you back to the times when arcade halls reigned supreme.

My goals:

01. Become more knowledgeable in different blueprint classes.

During my time at TGA I have done a lot of blueprint scripting but have had a hard time really getting my head around what should be handled through what type of blueprint. This was a chance for me to really dig down into Game Instance and Game Mode scripts.

02. Make a party game

I’ve always loved the experience of sitting on the couch and sharing a game experience with friends. Now I wanted to get a feel for what problems it might bring to the table from the perspective of design. I wanted to have both the framework (in the shape of an arcade hall) and the games (inspired by old arcade games) in the final product to get the feel of as many sides as possible and not just stick to designing either a framework or games.

03. Manage 4 players in one game

Also for this type of game I knew I would cross some new hurdles with the technical side of setting up games for four players. Handling player characters, controllers and saving data for the players between games were some of my big worries going into the project.

On a pinboard in the arcade you can see the current scores.

The process

As I wanted to emulate the experience of actually going to an arcade on some level I had to come up with a good balance of which part of the experience should take place in the games and what role the arcade itself would play. I decided that the physical room should only fill the role as a menu between games where players could choose what game to play, check out the leader board or exit the game.

In the arcade you move between games and menus using an interface inspired by old school node-to-node movement. Players’ could choose their own three letter acronym at the pinboard for that authentic arcade-feel.

Players can choose their names and see their current score in the arcade. This got me to make a macro for the first time. I needed a function that would find the previous and next item in an array to be able to get the correct letters to show up when someone edits their name.

When the player names are chosen you are set up to play! Just steer towards one of the two rows of arcade machines and click on one of them to start the game.

A simple but useful macro I made for finding items in an array.

When the player names are chosen you are set up to play! Just steer towards one of the two rows of arcade machines and click on one of them to start the game.

The games

Since this was supposed to become a party game experience I would need to create at least two games for it to be an actual proof of concept. I originally planned to make three games as Sanna (who made the arcade cabinets) had provided me with three different materials for the cabinets. It quickly became clear that my allotted time for the project would not be enough to let me get deep into designing the games and I decided to go with just the two first ideas I had started working on.

Look at the yellow player barely escaping the others!

The first game I made was a PacMan homage for four players. In this game one of the players sets out to eat as many pellets as possible while the three other players try to eat him. It is timed to 20 second rounds which means that a cunning player can escape the ghosts and be the only player that scores that round.

The player that is out for pellets can also toggle his visibility to confuse the other players. although that is done with the drawback that he no longer can eat pellets and thus gains no more points.

The second game, Neon Fighters, was more of a frantic Pong-like party game experience.

This game might have become overly simple as I had a hard time really trying out the gameplay in lockdown and had less time left than Iäd hoped for. All players move freely around the level and can “kick” the ball by the push of a button - the last player who touched it when it goes into a wall gets the points and first to 300 points wins.

The two twists of the game are:

  • After each “kick” you have a cooldown time where you can’t do anything to affect the ball
  • The score gained from a goal is equal to the times that player touched the ball that round multiplied by itself.

To exit the game simply click the exit door.

Closing thoughts

This project presented many unforeseen problems that really got me off my stride. First off I had some clear ideas as to how I should be able to store and transfer data for multiple players in the game instance that really didn’t pan out. Secondly I, too far into the project, decided that I wanted a more easily reusable setup for adding more games. This meant that I put a lot of time into reworking both Game Modes and Player Characters so they would use the same parent blueprints in both of the games - basically just for a possible third and fourth game that I, most likely, will never make. Not that I don’t want to make more games of this type; I rather want to start with a blank slate and apply all my newfound knowledge to it.

Even though this project never became what I wanted it to be I am glad that I went through with it and never backed too far off my original idea. I have not become the most knowledgeable about the blueprint types within game mode but this took me way further into the depths of them than I’ve ever been before and I learned a lot doing it. Now I just want to use what I've learnt to overcome more hurdles in the future until I, hopefully, know the systems like the back of my hand.