Unreal Games

Urban Nightmare

My biggest project, a first-person parkour game made in Unreal 4. I worked on a team of 12 with other masters students at the University of Utah. We worked on it for about 7 months. I worked on player movement abilities including wall running, climbing, rail grinding, and boosting.

We wanted the player to be able to keep moving, no matter what. To encourage this, I spent a lot of time testing out and refining wall climbing and boosting, so that the player can move uninterrupted and all their button presses result in an action. You can read more about it in the Code Snippets page.

We were given the opportunity to port to Switch, which we decided was too good to pass up. Unfortunately, this meant we had to sacrifice one of our engineers to porting to Switch. This meant we had to scope down quite a bit, leaving just me and another engineer to focus on movement. We originally planned on having a 'living city' mechanic, where the city itself would move, and try to crush or sabotage you, which is what our Switch engineer was originally focusing on.

To keep things clean, we split up each of the main movement abilities into separate actor components. Wall running, climbing, etc. Each was its own component, which helped encapsulate things. It also means they could be easily picked up and re-used should we ever desire to do so.

Get Off My Lawn

An Alt+Ctrl game about a cranky old man trying to keep kids off his lawn. The idea was pitched as an arcade style game, with short, simple, satisfying play sessions. The 'Controller' is actually a rocking chair you sit on. You have a light gun to fire your hose, you rock back and forth to stay awake, and there's a can you lift up to activate power ups. We wanted to keep things simple, but deep. Despite having only 3 things to interact with, aiming while rocking can be pretty difficult by itself.

I worked on enemy AI, player abilities, and various other features along with polishing/debugging. The kids will enter your lawn and frolick around until they either get bored and leave or are shoved off by you.

It was nominated for Indiecade 2023 and featured at the GDC 2024 expo floor. At the GDC expo floor, there was almost always someone playing. It can be hard to critically evaluate something you made. As I watched others play, I couldn't help but think about what could be improved. And yet, everyone who played it smiled and laughed like nothing was wrong. It helped me realize how valuable my work can be.

Wizard Platformer

A 3D platformer I've been working on in my spare time over the past few years. Features momentum-based movement and a variety of movement options. Build up speed to jump even higher. Grapple objects and enemies. Shift objects to jump on, and swing on ropes.

At first I envisioned it as more combat oriented, but I found myself focusing more on movement mechanics and how they mesh with each other, and before I knew it, it was more platformer than fighter. Though I had worked on another platformer, Urban Nightmare, it was first person and much more grounded. I wanted this to feel more like over-the-top schmoovement.

What you're seeing here is actually version 2.0 which I made after migrating from an older prototype. It was filled with junk code and stuff I made purely for learning and testing purposes. I grabbed whatever worked, and started over so I could re-structure things and re-evaluate what made it fun.

RPG

Another Turn-Based RPG, this time made in Unreal. What can I say, I just really like RPG's. I aim to clean up and fix many of the shortcomings from my Unity RPG, while still adding much more to it. So far I've got status ailments, buffs, a flexible skill and item system, a dynamic camera system, and a thoroughly improved turn-flow.

For the camera system, I wanted to push myself and make something more complex and fluid. To achieve this, I took inspiration from Skies of Arcadia, which has more complex and varied camera movements than I realized once I started analyzing them. Some of the movements are honestly pretty slow, and would be tedious to sit through without mashing to skip. None of this is final though, so I can change it later.

As for the skill system, I wanted to make something flexible and easy to extend. You can read more about it in my Code Snippets section. The basis of the item system is actually pretty similar as well.

For the characters and their animations, I went with anim montages for everything except the idle animations. This way, I can just set montages references for each character and play them programatically, without having to laboriously make connections for every characters animation blueprint.

I made and animated the models myself in Blender. To save on time, I made just one body and skeleton as a base. This way, for each new character, I could just copy and paste the body/skeleton, adjust proportions, and dress it up.