MASSIVE


Responsibilities

Gameplay Programming, Multiplayer Networking, Tools

Project Length

April 2023 – October 2023 (Initial prototype)
February 2024 – July 2024 (Pitch demo)

Game Description

MASSIVE is a multiplayer platforming adventure game set in a colorful world focused on player expression and social interaction. I worked on it as a senior engineer with a few other folks at Very Very Spaceship. Together we created various iterations of prototypes, and ultimately a demo that was used to pitch for funding. For the first half of MASSIVE’s development, I was the only engineer on the project, and I developed many of its features ranging from multiplayer networking, the character controller, character abilities, animation programming, interactable items, minigame events, UI, tools, build automation, and more.

Multiplayer Networking

One of the first things I tackled on this project was laying the networking foundation. I decided to use Photon Fusion since we wanted a playable prototype quickly, and the team had a bit of experience using it already. I set up infrastructure for joining games using a game code, and whichever client joined first was the host, allowing players to spin up a session whenever they desired.

Although I had worked on other networked projects, this was the first where players had immediate control of their avatars. It took me a lot of iteration and learning, but I think the character controller ended up feeling pretty good, even when ping wasn’t the best, thanks to the client-side prediction.

Character Controller

I was also focused on getting a good feeling kinematic character controller in as early as possible, since that is such an important part of the platforming experience. The design called for interchangeable traversal mechanics, so it was made to support various ways to adjust movement behavior. The first of these abilities was a ball mode, but it later had a glider, a dash that could go through certain walls, a double jump, a ground pound, and a few others. It also supported variable jump height, moving platforms, launchers, ziplines and increased speed when running down hill.

I also turned the capsule into a duck so players could see where others are facing, but also because ducks are cool (though, it definitely just came out more like Angry Birds than ducks 🤷‍♂️).

Abilities

As mentioned above, the game had several character abilities that could be swapped out. Going into the system, we didn’t know all the types of abilities we’d want, so I tried to keep the system fairly generic, which made adding new abilities pretty easy. The system supported changes to the character controller behavior, cooldowns, various trigger types (i.e. instantaneous vs. toggled), and ability slots.

Attributes

In 2023, I was getting serious about learning Unreal Engine, and had transitioned my personal project from Unity to Unreal. At the time, I was just trying to future-proof my career a bit, since the state of Unity felt shaky. However, my experience in Unreal started to really make an impact on the work I was doing in Unity, and one example of that is Massive’s attribute system. When design asked for a health system, I couldn’t help but take inspiration from Unreal’s attributes from their Gameplay Ability System. Although I didn’t create anything close to how robust Unreal’s system is for this prototype, I ended up with a system that made it very easy to adjust a character’s attributes in configurable ways using effects.

This also made the “social spark” feature we added later extremely easy. The spark was rewarded to players for performing social actions such as super-jumping to them, boosting them up a ledge, or simply being nearby, all of which were done with various different gameplay effects and the attribute system.

In-Game Events

I also implemented a system to support various in-game events including time trials, soccer, a cooperative “glitch creature” collection game, and a team-based ring event where teams competed to secure rings.

The ring event was the one that made it into the final demo, and started after a set amount of time, serving as kind of the climax of the demo.

Items & Interactables

Basketball was one of my favorite early features, and I’ll never forget the long-shot I made from across the map (and I have proof, our designer saw it too!). It was one of the first items added to the game with the item and interaction system I implemented. It supported items that the player could pick up and toss, or some of the were usable such as an air gun or baseball bat. The interaction system was also used for simple shops where the player could buy certain items.

We also came up with lots of little components that could be used together in many different ways, which were really fun. Some of the items would “deploy” when thrown, such as these catapult-like launchers. In Jesse Schell’s design book, he talks about the “Lens of the Toy,” asking questions like “if my game had no goal, would it be fun at all?” I think for this game, the answer to that question would be yes. Of the games I’ve worked on, It’s definitely the game I’ve gotten lost just playing around with the most.

Fishing

Fishing was another one of my favorite features I added to the prototype. There was a chance to hook other items, such as bombs and baseball bats, but most of the time you’d catch fish of varying sizes. The weights were also broadcast to other players so fishing competitions could be held. You could also pick up the fish you caught and hit your friend, just in case.