top of page

Code Review, Mentoring, & Beginnings of an Editor

Writer: Liam HealeyLiam Healey

Clockwork Sword

Code Review

This week our team had finally gotten through most of the organization, task management, and tangled dependencies which meant that the core engineering team (the team dedicated to refactoring and building tools) was able to start coding. This also meant that the first pull requests were created, and thus as engineering lead, it was my job to review them. I put over an hour into each review and provided thorough feedback on things ranging from simple style guide violations to task miscommunications, and architectural suggestions (like moving code to other classes).


These types of reviews are unsustainable, as once the whole programming team is going I won't have time to do such in-depth reviews, but I wanted to be extremely thorough early on for two reasons. One is to engrain the style guide and my expectations for code quality. The other is that for many on the team, this is their 3rd or 4th project and their first using Unity, so a big part of my review is to teach best practices, warn about engine quirks, and point out engine-provided utilities.



Mentoring

As I had mentioned, several of the programmers were new to Unity and relatively new to game dev as a whole, so I also spent several hours this week in voice calls directly mentoring teammates. These calls (and text conversions) ranged from overviews of how Unity works (what game objects, transform, and components all are and how they relate) to helping them architect their systems in Unity-friendly ways.



State Machine Editor

At the end of the week, I had a free day to start on my tasks for the project. One such task is to create a custom visual editor for the enemy state machines being created by another programmer. The goal of this task was to make it super easy for designers to visually create enemy state machines, as Unity's built-in state machines & editors are far too complex and would require designers to learn the whole Unity visual scripting language.


Progress was slow as the most I had ever interacted with Unity's editor customization was in the form of simple property drawers. The biggest time sync was related to how .uss files would only partially apply their style when applied via the UI builder, and instead I had to disconnect the style from the UI builder and apply it via code.


I was able to get a pannable/zoomable grid area with nodes appearing for each state in the state machine that could be moved around, and their positions saved/loaded.


Comments


bottom of page