top of page
Video Horror Society | 2019-2022

Unreal Engine 4, 4v1 Asymmetrical Action

Role: Backend Programmer

Designed and Implemented

  - Backend Server Architecture 

  - Database Administration

  - Analytics Pipeline

  - Account Management

  - Backend Tools

  - Automated Delinquency Punishments


This was my first time seriously using PHP, and it was my absolute first time using MongoDB. I learned a ton about database and account management, backend security tools, AWS, and analytics pipelines.  


Video Horror Society, or VHS, is an action game where 1 player plays as an 80's horror monster and they play against 4 players playing as teens with stereotypical high school tropes. It's an online-only, competitive asymmetrical game.


I was hired mid-development when the team was about 30 people.  My initial task was to setup an analytics system from scratch with zero budget. I prototyped a lot of things and ultimately built a C++ http service client-side and a PHP backend server which stored data into a Mongo database. The decision to use PHP and Mongo was made by our publisher at the time. I learned to love both.

The Werewolf monster howling at two teens.

Next I worked with the lead programmer of the studio to create the backbone of our PHP server backend. I took over as the main backend developer, creating the studio's backend APIs, and designing and iterating on the database schema. At first, we rolled our own scaling, but eventually moved to AWS with managed MongoDB Atlas and K8s with Docker (I played only a small part in the K8s/Docker setup, I was kept busy with backend server logic). The backend was the authority on data like account inventory and valid loadouts, as well as data-driven systems like quests.


The backend needed to logic to validate: all loadout combinations, quest progress, skill tree progression, etc. Among a lot of other small systems, I also developed an automated punishment system for delinquent players which took input from player-filed reports and dedicated servers to temporarily ban players who: dodged lobbies, went AFK, or quit games early. Throughout development I maintained a "webtool", which was a javascript browser tool that developers could use to easily perform account management, setup testing accounts, and replicated any client-side action.

(continued on "Next Page" link...)

bottom of page