Hello!
I’m Nathanial Benton

You can call me Nate. I’m a software engineer and game developer, with over 15 years of experience across various engines.

About

I pursued an interest in game development since I was four years old. I watched my mother play The Legend of Zelda: A Link to the Past. I was amazed that people created the game’s incredible world, and decided I would become a game developer. By the time I was 12, I was already on my way to self-teaching myself programming video games.

For the last several years, I’ve focused on the Unity engine, with a strong interest in VR development.

I always strive to improve and learn more in the field of programming. In my off time, I have begun learning Unreal Engine and C++ as well as Python to broaden my skillsets. A lot of my hobby projects also involve programming. For example, I ran an automated 24/7 Twitch channel where a robot I built shiny hunted Pokémon.

I love improving workflows to be more efficient with custom toolsets, and designing modular components that are easy for designers to use and achieve their goals.

Projects

HypermnesiaA VR Horror Experience

Hypermnesia is a VR horror experience with emphasis on sound design, lighting, and tension buildup. Originally the project was intended to be a full commercial title. As a result, it's definitely the most comprehensive project in my portfolio.

Due to this project using a lot of custom commercial assets and other legal reasons, the code is available on request, but the repository is private. Please note that the download is 1.62 GB, so you might prefer to watch the full playthrough video.

Highlights:

  • A full A-Z story told, complete with character animations and voice acting.
  • Original soundtrack by Visage's Peter Wicher.
  • Custom created hand-poses for interactable objects.
  • Backpack inventory system.
  • Event driven system, making it easy and flexible for designers to use.

Screenshots

Video Playthrough

EXITFirst Person Puzzle

EXIT is a small escape room game, crammed with a ton of custom programmed features. These features are designed to easily support puzzles, combat, an inventory, item crafting and much more. Designed alongside with this project are several custom toolsets and dozens of reusable flexible components, making it a sort of personal framework. As this framework was designed to be used in future projects of mine, many features exist that aren't used in EXIT, but can be viewed in the code repository.

EXIT uses the High Definition Render Pipeline (HDRP).

Highlights:

  • A rich set of features to support most first person games.
  • Use of Unity Cinemachine and Timeline for cutscenes.
  • Designer friendly custom toolsets allow creating puzzles, items, crafting combos and events quickly and easily.
  • Inheritance and Interfaces are used for a solid foundation for interactable objects and puzzles.
  • Core gameplay system decoupled via Delegates and Events.
  • Most components allow the designer to fire off UnityEvents for flexibility.

Screenshots

Video Playthrough

Destroy the CoreVR Shooter

Destroy the Core is a VR shooter game. The objective is simple: shoot robots and progress through the level by automatically teleporting to the next waypoint! I had a great time learning the XR Interaction Toolkit and exploring more in VR technology.

Highlights:

  • A firm understanding of the Unity XR Interaction Toolkit.
  • Object pooling system.
  • Core gameplay system decoupled via Delegates and Events.
  • The IDamageable interface lays out the foundation for many more damageable behaviors than showcased in the demo.
  • Custom written teleportation system.
  • Purchase new weapons and upgrade existing weapons to do more damage to your robot opposition!
  • Music courtesy of Scattle.

Screenshots

Video Playthrough

RPG DatabaseCustom Toolset

This project is a custom RPG editor, with a simple runtime UI that shows the data populating. Heroes, weapons, armors, spells and more can be configured in this designer focused toolset.

The system is based on ScriptableObjects. At runtime, all of the SO data is used to populate the GameManager class.

Highlights:

  • A strong understanding of custom Unity Editors; third party packages such as Odin were specifically ignored for this project (although I do have a firm understanding of Odin as well!)
  • One database window allows designers to create, and modify: Heroes, Classes, Skills, Level Curves, Weapons, Armors and Starting Party Members.
  • ScriptableObjects are created and stored in the proper folder automatically by the editor. File name generation assures friendliness in source control team environments.
  • Graphics in this package are provided courtesy of FinalBossBlues.

Note: Because this is a Unity toolset and not really a game project, there isn't a direct download, but the repository can be cloned to try the tools.

Screenshots

Demo Video

Platformer2D Demo

This was revisiting one of my very first Unity projects from several years ago. My challenge was to re-create the project within five days, with new features and with code that matches my current skill set. I accomplished the challenge in less than the time I gave myself, and it was quite a reflection on how far I’ve come since I began my Unity journey.

Highlights:

  • Re-usable components allow several different gameplay features to be implemented with no additional code.
  • Object pooling system.
  • Core gameplay system decoupled via Delegates and Events.
  • Custom inspectors and property drawers assure the designer isn’t missing important component configuration.
  • Level unlocking system allows designers to easily specify what levels unlock upon completing a level.
  • Use of inheritance for item pickups allow programmers to efficiently script out quick logic for new pickups.

Screenshots

Video Playthrough

Speedrun TimersVarious Games

As a former hobby, I used to speedrun games from the Resident Evil series. Speedrunning entails a player to beat a game as fast as possible. Most games that are not normally competitive suddenly become competitive with top times being tracked on community-lead leaderboards.

An autosplitter is a plugin that hooks into the popular speedrun timer, LiveSplit. The autosplitter hooks into the game RAM and watches certain memory addresses. When conditions are met, it automatically splits (logs the current time the action happened, i.e grabbing a key) for the player. Splits are used by speedrunners to keep track of what pace they're on compared to their personal best time.

In the Resident Evil speedrun community I'm known for the autosplitters and timers I have written. I have written autosplitters for the following games:

  • Resident Evil HD Remaster
  • Resident Evil 0 HD Remaster
  • Hitman: Blood Money
  • Hotline Miami 2
  • Resident Evil VII: Biohazard
  • Resident Evil 2 (2019)
  • Resident Evil 3 (2020)
  • Resident Evil Village
  • Jubilee

In addition to programming the autosplitter for Resident Evil Village, I also programmed the timer that is the official timing method for all speedruns done on PC. If you've ever seen a speedrun of Resident Evil Village, chances are the runner is using the timer I programmed. The source code for Village's timer and autosplitter can be found here.

Résumé