Portfolio

Portfolio of Game Development Work

A little sprite character running in Unreal Engine 4.


The following are images and gifs of a game I was solo developing. These show approximately 400 hours of work total. All gameplay, art and assets, lighting, effects, and (not seen) audio were created and programmed by me.

2D sprite art was used (made in Aseprite), but the 3D capabilities of Unreal Engine 4 were harnessed to give the game a unique look. I was influenced by my childhood love of the original Paper Mario, as well as Pokémon for the sprite art.

2D sprites were animated for 3D movement.
3D movement with 2D sprites.


The camera was fixed to one side of the character, but had some clamped degrees of movement. But the camera could be flipped to allow a full 180-degree perspective swap.


Lights and effects unique to night turn on with time-of-day.
Dynamic night effects and lighting.


The clamped camera could be flipped 180 degrees.
Swapping perspectives.


Combining 2D pixel art with 3D assets and lighting allows for beautiful and unique visuals.
Pixels at night.


Houses can be entered and were designed with a "shoe-box" diorama perspective. One wall is a big open window through which the camera can peep. Here we see the Hero's house, with a quick glance at his turntable and high-quality full-range speakers. If you listen closely, you can hear his tasteful music choice of the Dave Brubeck Quartet.

Camera perspective switches to a "shoe-box diorama" for house interiors.
Going home.


Using a publicly available plugin from the Unreal Marketplace NPCs can be spoken to with branching conversations. This NPC also has a quest which can be obtained and added to the quest log. The styling and functionality here is influenced off CD Projekt Red's The Witcher 3.

Using a dialogue tree plugin from the Unreal Marketplace, conversations can be made with NPCs.
NPC dialogue.



The gameplay had a unique focus: a terminal, and collectable commands.

The terminal "cd" command was a collectable to be found in the world.
Collecting the "cd" command.


Instead of walking into the Hero's home as we did before, we can use the "cd" command to instantly teleport. You'll note, there's a sprite inside. That's the world-representation of the Hero's home directory. There is one for every directory location, and they hold the info of the files therein.

A faux-terminal was built that allowed commands.
Using the "cd" command.


String parsing was required to get the terminal to behave like one would expect in a Linux-like environment. Commands can be followed up with options, such as the "-l" and "-a" for the "ls" command.

There are "files" and "directories" in the world, and they have their own permissions, owners and groups (ignore the debug defaults of sizes, months, days, and the incorrect time formatting...seven minutes?).

Linux-like file concepts were built into the gameplay.
Everything is a file.


Those permissions are real. In the game world, the "steve" home directory is represented by a house. We can see that this user has locked his front door.

Permission denied.


But the fool has left his home directory with Read and Execute permissions for others (drwxr-x-r-x)!

Because we have read and execute permissions to the "steve" directory we can bypass the locked front door.
Breaking and Entering


Using the "cat" command (which can be gained by speaking to the NPC, cat, and adding him to our personal path) we can find out what those other files running around in the world contain. Auto-completion, using the tab key, was also designed and implemented into the terminal.

Using "cat" we can see that the files in the world have contents that can be read.
"cat" in action.


Commands and their options can also be followed with arguments. Such as the "ls" command can be used to list out files in different directories, instead of the current one.

String parsing allows commands, options and arguments to be chained together for more extensive terminal use.
Argument parsing.


For a personal challenge to see if it could be done, the terminal is also usable by a gamepad controller. A menu system was designed that allowed for the dynamic construction of terminal commands. The "Build Path" and "File List" menus will change based upon the path you begin constructing.

The game is built with the challenge to make a terminal usable by gamepad.
Gamepad controls.


As the prototyping timeline came to an end one of the final things I was working on was moving the UI into a 3D interactive CRT-styled monitor, complete with scanlines and roughed up scratches, a fake mouse (that mouse is mapped 1:1 to your real mouse using some fancy vector math). Sound effects of an old Apple II computer were added along with the luxuriant clickity-clackity of a mechanical keyboard. I was thinking about Fallout's Pip-Boy when playing with Unreal Engine's world-space widgets and widget interaction.


UI eventually was moved over into a 3D world-space for interaction.
UI in a faux-computer


This prototype was an enormous learning experience of what Unreal Engine can and can't do, and how to overcome some of those "can't" issues by getting creative. The art design I was playing with in particular was fun and I loved the little home interiors I was able to make by mixing 3D perspective with 2D sprites.

A relaxing interior complete with a turntable and speakers, and a packed bookshelf.
Hero's home.


A 2D sprite representation of a gaming desktop computer.
Steve's apparently a member of the PC Master Race.



Popular posts from this blog

Sprites & Tiles

Paper Character Setup & Movement