TAILS OF WAR
ROLE
UI/UX Programmer and QA Member
DESCRIPTION
After developing Cat-astrophe, I landed a position at WolverineSoft, which is the extremely talented student-run game studio at the University of Michigan. Tails of War was my first project with the studio. The game is a turn-based, online, tactical strategy game. By the time I had joined we had an extremely basic prototype for the turn system and by the end we had a finished product! For the online we used Photon, I got experience working with that through creating UI which worked between both players simultaneously. I was specifically assigned to the quality assurance team where we both worked on programming tasks but focused on solving bugs.
My specific squad was the UI/UX squad where we worked on a lot of menus and HUD elements. I specifically implemented a lot of the HUD including the coin counters and the timers for each player. We also learned about the Steam API in regards to achievement tracking and matchmaking. The team size was about 50 with I would say 10 of them being programmers. I learned using Git through Bitbucket/Sourcetree, Scrum and agile development using Jira for tasks, Figma for UI assets, as well as Confluence for documentation. At the end of the semester we showcased the game at the UM-EMU showcase and then released on Steam which you can play now!

TIMER LOGIC


This is the biggest and nastiest thing I had to work on during this project. I was assigned to work on a turn timer with 3 settings, no timer, chess timer, and turn timer. The turn and no timer settings were quite trivial, at least the logic of them; however, the chess timer was a different beast entirely. It required that I keep track of a timer consistently throughout every turn which stops and starts at the end and beginning of your turn. This doesn't sound too bad until I had to make the UI for both timers be present at all times on both player's screens.
As someone with very little experience in network programming I had a very difficult time understanding and trying to learn calls and sending info over Photon. It didn't end up making it into the game as I simply couldn't get it to work. I think it was a very good learning experience, I learned a lot trying to get it to work, but my time could have been much better spent on something else productivity wise. I learned very quickly to ask for help and be okay not knowing everything. We are all here to learn after all.
ACTION HUD
One of the smaller tasks I worked on was implementing a new Action HUD for choosing what to do with a given unit. It involved putting new UI assets in, which was similar to most of my tasks on this project, as well as programming the functionality and accounting for possible edge cases.
Bugs to check for included opening the HUD after your turn is over, champions which had an extra special action, and sizing/positioning the HUD depending on the camera. That last bug was quite difficult as the camera position was very player dependent and could be way off depending on how close the camera was to the edge of the screen. The whole UI department spent a long time finding the correct offset and how to adjust it on the fly.
Something I learned on this task was not to focus too much on the specifics of the asset implementation/design and instead get the base design to work. Assets changed quite frequently as the game progressed and I found myself editing the same things over and over again causing new bugs. Had I just made the programming design work with any assets it would have been easier in general.
