;

PROJECT: Black Cat

PROJECT: Black Cat

PROJECT: Black Cat  is a Solarpunk-styled 2.5D multiplayer shooter balancing Strategy with Sci-fi abilities and Bay Area flair. As one of my most ambitious projects yet, I took on the role of Gameplay/Networking Engineer. We are eventually planning to release this game on android devices.

Gameplay Programming

Gameplay programming for PROJECT: Black Cat consisted of creating lots of reusable tools for the other game developers. We opted to utilize Client-Authoritative hosting for this game. Realizing its numerous drawbacks, we do plan to switch to Server-Authoritative eventually. Ensuring gameplay functionality was not compromised while programming for a multiplayer game taught me a lot about what belongs on the server, and what doesn't. Another task of mine was to create a modular system of custom tools for development. This would ultimately allow metrics and abilities to be changed without my assistance, and help our game designers speed up the process of iterating through balance changes. 

Our 4 big systems

Core Gameplay Mechanics

The core gameplay mechanics consist of walking, running, and shooting. Combining these classic gun-game mechanics with a field-of-view system, our goal was to create a tactical 2D shooter. With the introduction of abilities, we strived to create a fun, interactive and fast-paced environment that would leave our players chasing the thrill of just "one more game."

Ability System

For this system, I created editor scripts and windows for my game designers with the goal of making custom abilities as easy as possible. I utilized concepts such as interfaces, and the use of Scriptable Objects to create this system.

Code snippets from the ability system.

Status Effects

The status effect system was created so that we could easily apply over-time or even instant effects such as damage, movement, or healing. Status effects can be activated through any interactable in the game, unlike abilities. I utilized concepts such as interfaces and inheritance in order to build this system.

Code snippets for the status effect system.

Weapons

The weapons systems were originally built by our other programmer, Trevor Cardoza. We collaborated on this system to ensure accurate hitboxes, reactive gunplay, and modularity. We utilized concepts such as caching to improve the efficiency of retrieving data, and object pooling for performance and saving memory.

Code snippet from the weapons system I collaborated on.

Objectives & Gamemodes

This system was created for the purpose of easily switching between game modes and theorizing new objectives. It's supported by the use of async functions and an event system to ensure decoupled code. We did this to prevent dependencies and allow for lots of room for testing new ideas.

Code snippet from the Objectives and Gamemode system.