Steam Link: https://store.steampowered.com/app/802960/Oracle_Threads_of_Fate/
Project Dates: June 2017 - April 2018
Utilizing: Unity 5
Team Size: 12
Summary: Oracle: Thread of Fate is a tactics role playing game. The initial concept for the game came out of a personal failing of mine: I am very bad at looking ahead in games like chess. So, what if I could actually see the future? Oracle lets the player use the main character's powers, the titular Oracle of Delphi, to see into the future, showing the enemy's moves ahead of time, or seeing success or failure of other unit's actions on the field. Faced with overwhelming odds, the game is primarily about information as a mechanic, as the player is forced to use their knowledge of the future to win battles. The game includes a full campaign map and story, randomized battles, loot, shops and equipment, and 5 playable characters with unique abilities and progression. The game was released on Steam in April 2018.
My Role: I am responsible for the initial conception and pitch for the project, and served as a Technical Designer during Preproduction and the Programming Lead during Production. On a personal basis, I have:
- Completed the initial pitch document, detailing the future sight mechanic which allows the player to spend resources to see AI moves
- Created a prototype to demonstrate core mechanics, including AI, turn based tactical RPG battle mechanics, core game and victory loop, and the core 'future sight' mechanic
- Recruited a team of 12 and developed a production schedule with other leads
- Led and managed the programming team, pointing and scheduling tasks
- Programmed production tools for content generation, including a 3D tile based level editor and encounter builder tool inside Unity and a unit builder that accepts Excel sheet input
- Developed an AI that uses weighted breadth first search algorithms to determine optimal positioning, pathfinding, and actions, and utilizes Command pattern to store moves for later use with future sight
- Programmed animation, effect, and audio managers that sync with each other
- Used factory pattern to program unit and board dynamic spawning from simple data files, cutting file size for world assets
- Polished UI for target resolutions
- Bugfixed and supported the game through the publishing process with Steam, creating the final build and ensuring it was free of critical bugs
Post-Mortem: Oracle: Threads of Fate is one of the first passion projects I have been able to lead through the full production cycle, coming up with the idea, proving it, then seeing it through to the end with fellow teammates. It is also the first published game I've made, and the first time I've led a programming team that didn't just include me. Pre-production was very strong, because me and my first teammate, the Design Lead, had a very strong vision for the game and we were able to judge our scope very well, erring on the side of caution. We actually hit every element we outlined in our scope goals, which was a first for me. This project taught me the value of production tools, and how necessary they are for large scale content generation, even if they are initially time consuming to create. However, difficulties arose in post production, and I can say I've learned a lot from them: Due to lack of time and QA, code reviews were conducted through team members showing their features to the rest of the team directly rather than reviewing the code it was based on individually. In this process, many bugs slipped by, and when the team scaled down to a skeleton crew to manage publishing the game, many critical bugs were found that previously weren't apparent; item duplication, crashes, save incompatibility, etc. It took a lot of dedicated work to clean up those bugs, and publishing was delayed by 2 months as a result. These issues could have been rectified by a more thorough examination of code and features before adding them to the game, and having more dedicated staff to that process. Ultimately, however, the game was a success, and it is a project I am enormously proud of.