Experienced Software Engineer with a passion for delivering high-quality interactive entertainment experiences. Skilled in collaborative efforts, game design, C++, and console development.
The role-playing game genre holds a special place in my heart, so when the opportunity arose to work for one of the industry's leading developers of the genre (and on a brand-new IP, to boot) I knew I just had to take it.
The bulk of my time at Obsidian has mainly been focused on developing AI features (such as behaviors and navigation) and some more player-facing gameplay systems that I can't quite go into detail about at this moment. However, I've also had the opportunity to branch out and work on other miscellaneous systems such as save/load, dynamic time of day, audio/music, conversations, and character VO.
A great majority of this work was done in C++, and this marked my first real experience working with the Unreal Engine.Titles
- The Outer Worlds 2 (Release Date TBA, PC / Xbox Series X|S)
- The Outer Worlds (2019, PC / PlayStation 4 / Xbox One)
Tiburon is where I started my professional video game development career. Over the course of several years I had the privilege of working with multiple talented individuals for one of the most recognizable companies in gaming on a famous AAA gaming franchise (Madden NFL) all while utilizing some of the best technologies in the field.
While working on the Madden franchise, I was a part of the presentation team. The presentation team was responsible for creating and maintaining the systems that drive what is shown to the user between the individual gameplay moments (for example, cutscenes/animations and the systems that drive the logic for which ones should be played and when). However, in addition to that I had the opportunity to work on a variety of other tasks and features, include updating how clouds render, refactoring/porting Create-A-Coach functionality from the NCAA franchise, architecting systems to render and control sidelines/crowd for (then) next-generation consoles, and extending existing toolsets to allow design to script portions of gameplay to author a more narrative-based experience. I also saw my responsibilities grow from being just an individual contributor to leading small multi-disciplinary teams on some of the previously-mentioned features and serving as a mentor for newer engineering hires. A great majority of work was done in C++ with some C# sprinkled in for developing designer-facing tools.Titles
- Madden NFL 18 (2017, PlayStation 4 / Xbox One)
- Madden NFL 17 (2016, PlayStation 4 / Xbox One)
- Madden NFL 16 (2015, PlayStation 4 / Xbox One)
- Madden NFL 15 (2014, PlayStation 4 / Xbox One)
- Madden NFL 25 (2013, PlayStation 4 / Xbox One)
- Madden NFL 13 (2012, PlayStation 3 / Xbox 360)
Rot In A Porcelain Dream is a title being developed by Yamo Studios -- an indie team started by two very talented former classmates from Florida Interactive Entertainment Academy (FIEA). For this project, I served as a temporary software engineering consultant brought on to both help push a prototype version through to completion and provide a solid foundation that the team could build upon when making the eventual shift into production (and beyond). A somewhat-representative gameplay 'core' was in place when I started, however there were a few missing pieces that I helped provide -- such as general game loop flow (including menus, pausing, etc), player traversal improvements, AI, UI, audio, save/load support, conversations, in-game cinematics, and various other presentation elements. Additionally, I proposed and implemented several workflow improvements to reduce reliance on heavily code-driven solutions in order to reduce iteration time for developing various features. On top of improving the current state of the game, I served as a mentor for a designer aspiring to become an engineer by providing technical insight and guidance in areas of code architecture, refactoring techniques, and debugging. All work for this project was done in C#. The game is being implemented using the Unity Engine.
I am honored to have been trusted with helping shape many core parts of this game, continually impressed with what the team has been able to accomplish (before, during, and after my time with them), and anxiously awaiting its release!
Autotron is a pet project that I started because of my interest in AI. Heavily influenced by similar projects like MarI/O, it seeks to create a neural network that can competently play Robotron: 2084 (one of my favorite games). For this project I had to extend the open source Multiple Arcade Machine Emulator (MAME)'s existing LUA scripting functionality to provide additional hooks that would assist with evaluating AI performances. Then I used MAME's Lua scripting to create a neural net loading mechanism and a means for letting these neural nets interface with Robotron: 2084. Finally, I wrote a C# program to tie everything together by generating neural networks, feeding them to MAME (and the Lua scripts), and breeding them using a custom implementation of the NeuroEvolution of Augmenting Topologies (NEAT) genetic algorithm.
This is still very much a work in progress. The core implementation has essentially been completed (save for any bugs and minor improvements), now it's just a matter of seeing if the neural net can figure it all out!
Scarfell is a student capstone project built using the Vision Engine and completed as a part of the curriculum at Florida Interactive Entertainment Academy (FIEA). It was developed over a span of six months with a multi-discipline team consisting of nineteen fellow students. As an engineer on the team, I implemented an AI system influenced by Left 4 Dead's Director AI system, including a tool/engine plugin to interface and script its behavior. Most of the code written for this was C++ with a little C# needed for designer-facing toolsets.
This project was my first major collaborative effort in the field of video game software development. As such, it served to provide me with many valuable lessons on collaborative work and a strong desire to continue working in the field.