My Contributions

Behavior Tree Tool

Screenshot
                    of the Behavior Tree Editor

The Unity Behavior Tree Tool is a full behavior tree implementation built in Unity complete with a in-editor GUI built with Unity's UI Toolkit and GraphView. My main motivation to make this was to aid in the development of Sandborne. It was instrumental in us implementing the two multi-staged boss fights, Screwman and Batteryman in the tight three-month timeline that we were working with.

Boss Fights

One of the main highlights of Sandborne are the two multi-stage boss fights, Screwman and Batteryman. I took the lead on the implementation where I built the Boss Controllers, Boss AI, and hooked together level scripting to trigger the bosses. The boss fights were a massive feat for us to complete across the board, in engineering, art, and design. They proved to be a big attraction for players and received praise for their complex and engaging mechanics.

Level Scripting

Screenshot showing the tutorial pop ups around Sandborne

Sandborne received lots of positive feedback around its onboarding and tutorialization. The level scripting was fundamental to that success. I worked on tutorial markers, the journals system, and the checkpoints. We gradually developed these features between playtests as we received more feedback on how to better guide the player through the game. I saw better feedback each time we iterated on these systems.

Dynamic Controller UI

One of our main concerns for Sandborne was making sure it was accessible to both keyboard-mouse and controllers players. One of the steps we took to accomplish this was building a dynamic controls UI system to go hand in hand with our tutorialization. This system dynamically switches the controller glyphs based on the player's device.

Damage Indicators

One of our main struggles through the development of Sandborne was figuring out how to effectively communicate when the player was taking damage. This was achieved through adding various sound, diegetic, and visual cues. I worked on the visual cues in the form of damage indicators and a health bar. These indicators proved to be very helpful in communicating damage to the player and we saw a significant improvement in player reaction once they were implemented.

Boss Indicators

Another struggle we faced in Sandborne's development was the player losing sight of the boss they were facing. We didn't want to add a boss lock-on system because this would clash with the claw mechanic we had in place. Instead, I opted for boss indicators that show when the boss exits your field of view. This allowed the player a general sense of where the boss is without having to look directly at them.

Toon Shader

Screenshot showcasing the toon shader I developed

Our artists were already tasked with a lot of work and we wanted to build a more cartoony aesthetic on top of it all. I offered to relieve them of some work off their hands and practice my shader skills by building a toon shader for the environmental elements. This was the first toon shader I ever made in a Unity's Universal Render Pipeline. It's seen best here.

Force Field Shader

The force field shader is almost a pet project that I got to shoehorn into Sandborne. I wanted to experiment with shaders more and I had the perfect opportunity when we needed to make force fields. It took more load off our artists and allowed me to experiment with shader graph and the Universal Render Pipeline.

Release Engineer

Screenshot
                    showing the consistent releases of Sandborne

I was tasked with being the release engineer of Sandborne in order to maintain our fever pace and ensure we had a deliverable each week. We were expected to execute on 1-week sprints and deliver builds for biweekly playtests. I maintained this through a well designed release pipeline and weekly content locks. This allowed us to stay accountable and consistent to our goals. This process also allowed us to reach our goal of shipping onto Web, Windows, and MacOS.

Batteryman

At the very end of our timeline came Batteryman. It was the final boss of the game and one of the last things we finished. Batteryman was the culmination of everything here and it showed in the final product. Batteryman was designed at the start, but the implementation had yet to come. We were able to complete it in little over a week, from art to engineering to final implementation. I built Batteryman's AI, boss controller, level scripting around it, and its attacks. I even made the shader for the laser seen here by iterating on the force field shader.