Producer & Programmer
Sanguine Soul is a First-Person Action Adventure Game with ability focused combat that encourages the player to always be moving forward. Created in Unreal Engine 4.
During this project I planned, organized, and tracked the development of a complete and cohesive game in Unreal Engine 4 for release on Steam. Our team consisted of 13 people: 1 Producer, 4 designers, 5 artists, and 3 programmers.
In addition to my duties as a producer, I programmed significant features for the game and helped solve assorted problems that arose during production. I often moved my focus to different teams depending on what roadblocks and important issues the project was facing at the time.
Producer Contributions
Managed the scope of the project by creating and maintaining a Project Backlog for all features and tasks to complete the project across all teams.
Generated and maintained Project Backlog, Gantt Chart, and Burndown documents.
Co-created the Game Design Document and Art Style Guide.
Created user focused Team Member Contribution Charts that tracked tasks, hour contributions, and efficiency of team members.
Set up and managed Git Version Control for the project.
Led team wide Agile Planning and Review Meetings every week.
Trained team members in using C++, Unreal Engine 4, and Version Control Software
Helped manage the Art Direction of the project so that assets were cohesive and consistent throughout the game.
Planned Game Mechanics and Gameplay Experience with the design team at the onset of the project.
Planned and Edited the Marketing Trailer.
Programmer Contributions
Assisted in developing the Ability Component Framework which was heavily leveraged by the player character and all enemies.
Created Ability Pickup System which allowed the player to acquire new abilities.
Created Enemy Weakpoint System that allowed the player to regain lost resources and was a core component of the combat loop.
Created Enemy Spawner System for room encounters and in Engine Tools to assist in level design.
Assisted material artists with Dynamic Material implementations for enemy spawn and death VFX.
Created GameMode Progress Tracking system.
Producing & Documentation
The main piece of documentation I worked on was the Project Backlog. I maintained this document constantly and adjusted items within it as the project's needs changed. By keeping a well-maintained Project Backlog, I was able to plan features well in advance, protect against potential risks, and help the team complete tasks efficiently. I also used this backlog to create a Gantt Chart for tracking progress and maintaining the project schedule.
In conjunction with the Art Director and Creative Director, we created the Game Design Document and Art Style Guide as reference documents that were used throughout the project. These documents were updated as the game evolved and our goals more defined.
To help track tasks more effectively I created Team Member Contribution Charts that logged weekly hours as well as total project hours by task. This helped team members track their work quotas and allowed for better task estimates as the project went on. These charts were critical in allowing me to track the project’s rate of progress and for creating a reference Burndown Chart.
Over the course of production our first level became behind schedule and the level designer for that level unfortunately had to leave the team. The first level was a critical part of our project that tutorialized many important mechanics and needed to be included in the final game. Working with the other team leads I worked out a solution which repurposed our vertical slice presentation level into the first level of our game as well as restructuring the project schedule and goals to accommodate losing a team member. This adjustment ended creating a very successful final product which accomplished the needs of the first level and the project.
Agile Development
At the beginning of every week, I led Sprint Planning meetings. During these meetings, I assigned important tasks, reviewed task boards, and assisted with the creation of feature groups for features that required the collaboration of multiple developer skill sets. These meetings ensured all team members were on the same page and facilitated collaboration on game features.
To prepare for Sprint Planning meetings, I reviewed the project backlog and feature roadmap to plan which key tasks would need to be assigned. I also reviewed the long-term project plan for what sprint goals needed to be met or adjusted.
At the end of every week, I led Sprint Review meetings. During these meetings, I would ask the team for feedback about what went well during this sprint and what could be improved. This is also when team members could show off their work to the whole team and get team wide feedback for their work.
Feature Development
I was involved through every stage of development for several features. Throughout the project I contributed to work on the design of the game’s core mechanics and overall game design. The following is a list of some of the core features of the game I programmed or assisted with.
The Ability Component Framework allowed the player to unlock and upgrade abilities throughout the game. The player had three ability slots that where new abilities could be unlocked and then further upgraded by finding the corresponding hidden pickups through the Ability Pickup System. This system was also leveraged for the enemy characters in the game for their attacking moves.
The Enemy Weakpoint System allowed for target weakpoints to be placed on enemy character meshes that the player could shoot at to regain mana. This was an important part of the combat loop which encouraged forward focused combat.
The Enemy Spawner System dynamically spawned enemies for room encounters. I also created tools for level designers to craft encounters to their needs and make level design workflow more efficient.
Version Control
At the onset of the project, I set up a Git repository via Amazon AWS. I then created documentation and a tutorial video detailing how to set up and use Perforce with Unreal Engine 4. I also did a live demonstration for all team members where they could ask questions and try to troubleshoot any issues they were having. Throughout the project I managed the version control and would resolve major conflicts or technical difficulties related to version control.