Met'em Park


Project information

Description

During my 4th year of University, I got the opportunity to create a 'social meeting platform' for Abstraction Games. The goal was to create something they could use to hold after-work meet-ups.

This project plays a big part in my development towards a better learning process. It took me completely out of my comfort zone and forced me to learn to work with a new Game Engine in a short period while simultaneously producing a product that could be further developed by Abstraction Games.

  • Time: 20 weeks
  • Team structure: 2 designer, 2 engineers, 3 artists
  • Game Engine: Unreal Engine 4
  • Language: C++
  • Roles: Systems programmer, Networking programmer

Extra: The details gloss more over my experience and thought processes as I am unable to talk about the specifics of the project.


Details

The endless struggle for a networking solution

During the research phase of the project, it was my responsibility to research and select the networking solutions that will be used for the general gameplay feature networking', video transfer networking, and sound transfer networking. Due to the lack of scope for a single person, not all solutions could be tested in full and thus the selection had to be based on the given feature lists of each of the solutions that I was able to find for this project.

The choice was made to use a mix of solutions namely Photon, for the general game networking; Agora, for the video transfer networking; Vivox for audio transfer networking. The problem with multiple solutions is that they each have their differences in implementation time and are usually not plug-and-play. This forced us to focus on the video and gameplay solutions while still keeping the audio solution in mind in the structure design process.


Structured Systems

Due to the complexity of the project a set structure had to be created before any implementation would be able to take place. One of the key parts of the structure was the inclusion of the adapter pattern. The idea behind this decision was to embrace adaptability as one of the core design pillars for the system. It gave Abstraction Games the ability to swap out the networking solutions to what they see fit.


Blueprints

The part that I enjoyed the most was the creation of systems that exposed themselves as blueprints intended for use by the gameplay programmer. Various features were created that allowed data to be sent as packets toward the server host and then spread to the connected users. It allowed game modes, and various gameplay features to communicate and update the other users on events that are happening.

Creating these tools and then seeing the puzzle pieces be put together to create new emergent functionality is a wonderful feeling and is one that I seek out when learning new topics.