Headshot of Jacob Jones.

Game Design Portfolio

I enjoy working with characters, cameras, and controls to improve gamefeel. I also enjoy designing mechanics and creating documentation. I believe engaging gameplay is a cornerstone to leaving an impression on players, and I love discovering all the little breakthroughs that lead to designing a lasting experience.

Jungle Jim (2025)

Unreal Engine 5 / Small Team

Momentum-Based 3D Platformer featuring customizable movement kits and a bright cartoon style.

  • Directed and led 15 contributors

  • Maintained a GDD and documentation in our project drive

  • Conducted regular playtest analysis

  • Lead game designer and lead game programmer

  • 3D artist and character animator

Jungle Jim (2025)

Overview

Jungle Jim is a 3D Platformer where players build their own unique movement styles! I am the Lead Game Designer, Lead Game Programmer, Project Director, and well... many other hats. This project was the very first that I really started focusing on game design towards. The game began as a personal project of mine, which then took off towards the end of my university studies as I began to collaborate with others. Below on the Artstation page you can find the credits for everybody involved on the project.

Contributions

Game Design

A game needs a cohesive planning stage to get a good start to development. I conducted market research and created a concept with a hook that would resonate with my target audiences. Following this, I continued to develop the idea for a month before starting to prototype. Throughout development, I have continued to iterate on the design and conduct playtesting sessions. I also have written numerous devlogs detailing my thought processes.

Level Design

I was responsible for designing and blocking out the levels for the game. The tutorial level serves as a playground of sorts for the player, allowing them to learn the mechanics of the movement in isolated challenges that required them to execute the moves. Other levels develop fun mechanics and platforming challenges. I conducted numerous playtesting sessions for every level, and used iterative loops to implement analysis results.


Complex Camera System

Out of all kinds of games, I believe that 3D platformers have the most complex camera systems. This is out of necessity, as the player is constantly actively controlling their character as well as moving the camera. I studied Mario Odyssey intimately, and recreated many of the systems implemented that created an intuitive and self-autonomous camera system. The result is a camera system that is intuitive to control and self-autonomous in nature. You can read about my camera system in the devlog below.

Movement Mechanics

I was responsible for designing and programming the dozens of movement mechanics in the game. I paid particularly close attention to game feel, and studied many 3D platformers such as Mario Odyssey to nail an effective feeling to the character! The game is suggested for controller, but it is also able to be played with the keyboard. Because of this, I created separate execution logic in areas depending on the control method in order to improve game feel in both mediums.


Character Modeling and Animation

Originally I had planned to find a classmate to take care of the modeling and animation, but I was unable to. Because of this, I was responsible for modeling, texturing, and animating several characters in the game. The protagonist, "Jim", has over 50 animations that I had created and implemented into the game using a variety of techniques such as Blend Spaces, Control Rigs, and Blendshapes. The result turned out great! It was a lot of fun figuring out how to create animations that informed the player about the current state of their character. For instance, when performing a "Flip Kick", Jim is unable to grab the wall for a brief moment afterwards by design. To show this in the animation, I had Jim enter a cannonball shape until he was ready to grab the wall.

Project Management / Leading

This project was my first time assembling and leading a team for game development. I created a discord server and online drive to organize discussions and development. This worked very well as everyone was able to quickly find what they needed or reach out to the right people. Though it wasn't all so easy, there were many challenges I faced. Since this was a student-led project, every collaborator was not set to a strict timeline and would help at their own pace. This made it difficult to properly manage the overall time of the project, and often left me with pieces to put together. This also increased the frequency I needed to follow up on progress, which would often cause a bit of strain. In the end though, I think everything has turned out well!


Level Art

I was responsible for the environment art for the first two major areas of the tutorial level. Instead of using textures and models from asset packs, nearly every texture and model was created myself. Through this process, I learned about using vertex painting and instanced meshes in my workflow to increase the quality while decreasing the time expense. Another tough lesson I learned was just how long it takes to actually fill in a level!

Cinematics

Created a modular and scalable cutscene system to be used throughout the entire game. I created an "order" system that would step through orders determined through the details panel, and orders are also able to be skipped by player input. Compatible with level sequences. This system was created so that gameplay elements such as interactable dialogue could play throughout cutscenes and be iterated on quickly. I also created the cinematics themselves for the game.

Gallery

Collection of images, videos, and behind-the-scenes content for my contributions in the project.

Rising Tides '25 Trailer Jam Submission

Finished level "Creepy Crypt". Features dark level mechanics and a ghost that chases the player in darkness.

Headshot of Jacob Jones.

Game Loop Diagram. Click image to see full size!

Riverside Ruins Graph

Riverside Ruins level design. Click to see presentation with a video going through the level.

Victory cinematic and animation.

Very early tech reel created for my universities GDC sponsorship application.

Blockout of the level "Lilypad Labyrinth" as of 1/18/2025.

Playthrough of the tutorial level "Riverside Ruins" as of progress at 1/18/2025.

Maya Arnold render of the Run Fast animation.

Maya Arnold render of the Slide Jump animation.

Headshot of Jacob Jones.

Jim's model topology.

Headshot of Jacob Jones.

Evolution of Jim's model created entirely in Maya.

Headshot of Jacob Jones.

Body UDIM.

Headshot of Jacob Jones.

Cosmetics UDIM.

Pizza Panic (2024)

Overview

Pizza Panic is a short survival-horror where players deliver pizzas throughout an apartment complex full of killers. This project was created as part of the curriculum at Wichita State University. I worked as a programmer and game designer in a group of 3 to complete the project in 3 weeks. Below on the itch.io page you can find the credits for everybody involved on the project including the voice actors and composer.

Contributions

Game Design

As all group members came up with ideas, we all combined them into mechanics to use in the gameplay. I decided which of these mechanics would be included in the overall system of the game as I designed the game loop. I was also careful to take into account the project deadline and constraints, as well as how much time each of us would be able to put into the project before the deadline was up. This influenced many decisions, such as using frightening mannequins with characteristic cosmetics for every character to save time.

Core Gameplay Systems

I was also responsible for designing and programming the base delivery systems of the game. The player would receive randomized delivery instructions that consist of a color, number, and shape. Each delivery instruction is a clue for which door in the establishment the pizza should be delivered to. After receiving an instruction, the player would have a timer displayed to complete the delivery. If the player fails to deliver on time, the hungry customer will exit their room and hunt the player down. If the player succeeds, they receive their next instructions. It was a lot of fun to figure out how to get the doors and delivery instructions to generate properly, and the final system works well.


Level Design

I laid out the floor plans for the apartment complex in the game. While we originally planned for four floors, we had to cut two of the floors to meet the deadline of the project. I designed the level to consist of many turns leading to straight hallways. We needed many hallways to feature our many doors, and I included turns to increase the chances of the player turning a corner and being caught by surprise with a seeking killer.

Intelligent A.I Seeking Behavior

I was responsible for programming the A.I of the killers, and created a system for them to intelligently wander the halls to seek the player. Points where placed along the halls and areas of interest which the A.I would travel along and pick randomly between the closest 3 points- excluding their last few visited points. When spotting the player, the A.I will take chase until the player sneaks into a hiding place.

Gallery

Collection of images, videos, and behind-the-scenes content for the project.

Full feature playthrough.

Post-Mortem video where I talk about the project.

Caislean: Paranormal (2022)

Overview

Caislean: Paranormal is a short point and click survival-horror game created entirely by myself before my studies at university. I was working 46 hour weeks at my other job during the entire development of the game, which really put my work ethic to the test. Balancing player resources was a huge design topic for this game.

Contributions

Game Design

Though I only had 4-7 hours max a week to work on the project, I would often concept and design many aspects of the gameplay on the back of receipt paper at work. During the day, players would place equipment and traps in preparation for the night where they would be attacked by paranormal entities. The extent of my work only reaches a single day and night segment, and I mostly focused on balancing the night mechanics and how responding to enemies would affect the players resources and information.

C# Scripting

C# was used for every element in the game, and I wrote dozens of thousands of lines of code. This was my first project where I really utilized C# extensively, and I learned a lot from it.

Gallery

Collection of images, videos, and behind-the-scenes content for the project.

Survival-phase featuring all enemy types.

Prep-phase equipment placement tutorial.

Overbooked (2025)

Overview

Overbooked was the 1st place developer vote the devICT 2025 Summer Game Jam. The player plays as an undercover agent attending a fancy party. Two rivaling mafia gangs are at the party, and they player is undercover for both. Players must avoid social confrontations and complete tasks for both mafias without being outed as a rat by either!

Contributions

AI Programming

The AI consists of party-goers and mafia members. The party goers wander around the mansion investigating points of interests, and will occasionally engage in conversations with other guests they bump into. The mafia members can wander, but will also follow patrol paths seeking out any suspicious activity. Created using Behavior Trees in Unreal Engine.

Design

We were all designers for this game jam game. We started by discussing our personal goals for the jam, and then communicated from there. Since we had all typically worked on action games before, we wanted to create something with a different kind of gameplay. Resource management became a topic, and we directed towards having time and trust be resources to manage. Despite winning the developer vote, there is only so much that can be done in 20 hours. I have some changes that I would make looking back at the game. I've written about it below!

Gallery

Collection of images, videos, and behind-the-scenes content for the project.

Full playthrough video.

Headshot of Jacob Jones.

Gameplay screenshot.

Zombies In College (2024)

Overview

Third-Person arcade shooter where the player defeats zombies to build resources used for new weapons and sections of the map. Quick prototype created as a practice project for object inheritance and polymorphism. (I also just wanted to program shooting mechanics!)

All of the objects that the player can pickup fall under "BPItem". This class includes the features necessary for being picked up and used by the player. The "BPGun" class contains functionality for my custom shooting system. All guns in the game are a child of this class and tweak the parameters. For unique reload timings(such as reloading a shotgun one shell at a time), the reload sound is overriden.

Headshot of Jacob Jones.

Class Hierarchy Visual

Weapon Characteristics are avaliable for children to edit. These consist of:

  • Clip Capacity

  • Clip Amount

  • Clip Max Amount

  • Reload Time

  • Fire Rate

  • Bullet Spread Max Angle

  • Bullet Damage

  • Bullet Damage Variance

  • Bullets Per Shot

  • Bullet Damage Falloff Range

  • Weapon Max Range

  • Recoil Amount Horizontal

  • Recoil Amount Vertical

  • Recoil Initial Speed

  • Recoil Return Speed

Headshot of Jacob Jones.

Attributes avaliable for children.

Given how important recoil is for the feel of the weapon, I added some parameters I could use to quickly adjust the recoil in different stages.

Recoil Parameter Showcase

Creepy Crypt (2025)
Jungle Jim

Overview

Creepy Crypt is a level that takes place in an underground mass burial site. The story the player experiences through gameplay is one of archeological discovery. The player enters the crypt, and must delve into deeper and darker sections to obtain the treasure they seek. As the player explores the crypt, many spooky events may happen such as enemies popping out of coffins.

Unique Attributes

This level will have elements of the "dark level" trope in platformers. Challenges will test players' spatial awareness by playing with the information the player is given about their environment. But there is a catch-if a player is in a dark area for too long, a powerful ghost will come out and attempt to defeat the player. To counteract this, the player must keep the lights on as they explore the crypt.

Video Playthrough

Gameplay by third-party first impression.

Headshot of Jacob Jones.

Design Pillars

Creepy Crypt is a level for Super Jungle Jim. The core pillars of Super Jungle Jim's gameplay are Joy of Exploration, Freedom of Movement, and Expression of Skill. Following in step with this, I made sure the level incorporated rewards for exploration and many different paths varying by player skill. Faster paths require higher skill, while the more accessible paths are slower. The gameplay video above features a player of average skill at that point in the game. You can compare the pathing of them with the pathing of a more skilled player to see the different pathings. Both playthroughs are a third-party during some playtesting.

Mechanics

In the context of Super Jungle Jim, this level appears right when the player is starting to become familiar with the game. Because of this, I wanted to add some unique aspects to this level to keep things interesting. I added the darkness and ghost mechanic because of this. I wanted the darkness to be fun-not frustrating. It was a real challenge to give enough info to the player in a 3D environment for platforming in the dark. In standard 2D dark sections, the player always has the framing of the screen to use as orientation. In 3D however, the camera is always shifting perspectives, so this does not work. I used a custom light falloff exponent to keep a radius around the player lit, and used emissive markings on the walls to keep the level framed.

Aesthetics

I created a mood board for the aesthetics I wanted for this level. Afterwards, I began creating textures and models for the level. Almost every asset in the level was created personally. The only assets not created by me are the modular dungeon walls in the crypt interior, the tombstones outside, the plants, and the dead trees. I wanted the level to feel "spooky", but not scary. Following this, I took much inspiration from Halloween themes and combined that with mayan temples.

Level Optimizations

The level is quite large, so level streaming was necessary to maintain an appropriate framerate. Thankfully, this level is perfect for such a thing! The crypt goes deeper underground, so there are always walls I can use to hide the loading of the level. In this clip you can see the Data Layers working to transition into the first crypt layer. As the player slides down, Crypt Layer 1 is loaded and made visible, while the Outdoor layer is unloaded.Some other optimizations were made to. Since the underground is dark, culling distances were set to be short, which helps with performance even more.

Gallery

Collection of images, videos, and behind-the-scenes content for the project.

Headshot of Jacob Jones.

Crypt Exterior

Headshot of Jacob Jones.

Crypt Atmosphere

Full playthrough video.

Headshot of Jacob Jones.

Mausoleum

Probe-Based Thermal Shader(2025)
NDA

Overview

This thermal shader allows users to author their own thermal volumes by using a probe-based system to calculate temperature values. These volumes can be baked into a 3D texture so they can be enabled or reused efficiently. This feature was created in Unity Engine using C#, HLSL, and Shader Graph.

This was a fun project to work on because the task forced me to step outside of my box and learn new things. Before this project, I had no experience with 3D textures or HLSL. From the start, I knew what needed to be done conceptually. A shader was created to sample a 3D texture within a defined min and max bounds. This shader is also fed a value between 0-1 that is mapped out to a gradient which colors each pixel in the 3D texture.

Functionality

Headshot of Jacob Jones.
Headshot of Jacob Jones.

The Thermal Probe Manager uses data gathered from probes to calculate thermal values for each pixel in the 3D texture. These values are calculated through proximity queries.

Parameters

Here are some differences between 3D Texture settings. I have found that best results tend to be 3 probe queries at a resolution of 16.

Headshot of Jacob Jones.

Queries: 1
Resolution: 8

Headshot of Jacob Jones.

Queries: 3
Resolution: 8

Headshot of Jacob Jones.

Queries: 1
Resolution: 64

Headshot of Jacob Jones.

Queries: 3
Resolution: 64

Challenges

This was a fun project to work on because the task forced me to step outside of my box and learn new things. Before this project, I had no experience with 3D textures or HLSL. From the start, I knew what needed to be done conceptually. A shader was created to sample a 3D texture within a defined min and max bounds. This shader is also fed a value between 0-1 that is mapped out to a gradient which colors each pixel in the 3D texture. One challenge I immediately faced was in color spaces. Unity's Sample Gradient node in 2022.3.5 does not use Oklab color space, so the gradient was not mapping out correctly with it. I ended up creating my own variation of Unity's Sample Gradient node that handled the color space conversion itself.
Once this was working, I had to create the algorithm that is used to calculate the temperatures for each pixel in the 3D texture. I ended up using a weighed average system that also accounted for parameters such as room temperature, source radius, and attenuation.
Another challenge I had to overcome was learning the basics of matrix multiplication. This was necessary in order to have the sampled 3D texture correctly rotate with the subject of the shader. In a C# script, I create a transformation matrix that I use in the shader to rotate the UVW coordinates of the texture.
All-in-all, there were a lot of things I did that I was proud of for this feature!

  • Wrote C# algorithm for calculating temperature via proximity queries.

  • Wrote C# function to write values to individual pixels in a 3D texture.

  • Wrote C# function to get the world positions of individual pixels in a 3D texture.

  • Created shader to sample a 3D texture and display across many meshes.

  • Created a Fullscreen outline shader to distinguish edges on only the subject.

  • Created a shader to display quad wireframe of each subject mesh over the thermal coloring.

  • Matrix multiplication for rotation of UVW coordinates.

  • Used barycentric coordinates to create a wireframe shader.

Headshot of Jacob Jones.

This page is still under construction! Sorry! You can look at more of my stuff on artstation.

You can also check out my Jungle Jim page here, I have some of everything there!

Headshot of Jacob Jones.

Jacob Jones

Game Designer

You can message me through my email using the form below. Or if you rather, you can directly email me at my address.