Joe Rizzo

Home

splash image
Released:
May 2023


Studio:
Vortex Games


Platforms:
Windows
Linux
Mac [Unreleased]


Time:
Jun 2020 - Present


Tools:
Unity
C#


Area of Focus:
Refactors
System Design & Implementation
Mac & Linux Support
UI Implementation
Controller Compatibility
Project Contribution Summary

During my time as a developer at Vortex Games, specifically on Rushdown Revolt, my journey began as an avid player who recognized the demand for native GameCube controller support. Motivated by this observation, I took the initiative to research and successfully developed a proof of concept for implementing said controller support. Impressed by my proposal, the CEO welcomed me to the team, entrusting me with the responsibility of leading the implementation of this much-needed feature.

As my passion for growth and self-improvement persisted, I actively sought out opportunities to expand my skill set. I eagerly took on various roles and taught myself the necessary skills to excel in each one. This determination led me to explore overall controller compatibility, and over time, I evolved into the role of Head of UI Implementation which I eventually handed off to pursue other roles in the company.

Despite my progress, the desire to continually learn and contribute more drove me forward. I soon became Development Lead and joined the leadership team, embracing greater responsibilities. This allowed me to mentor and guide new developers while taking full ownership of designing and implementing new systems as well as leading refactoring efforts.

Throughout my tenure at Vortex Games, my commitment to personal growth, initiative-taking, and leadership has allowed me to make significant contributions to Rushdown Revolt, while also fostering a collaborative and supportive environment for fellow developers.



Controllers

Initially, I was brought on to add support for Nintendo’s official GameCube adapter to the game. Starting at the beginning of June, it took less than a week to have a fully working implementation in the game. Using LibUSB.net in combination with Rushdown Revolt’s preexisting input manager inControl, I built an interpretation layer that would take the data read from the adapter and convert it into something that Incontrol could process. This resulted in more responsive inputs for players who used GameCube controllers as it meant that they would not need to use third-party software such as Vjoy to sit in between the game and their inputs.

The research and implementation were based on the work I previously had done on the “GameCube Genie” set of programs, more information can be found here.
[LINK TO PROJECT]


UI

With my controller support tasks finished and an upcoming Kickstarter I was eager to help out in any way that I could. At this point, I still had not been working in Unity for much time so I decided that I should first attempt to pick up some new skills. I decided that I would be a good fit to work on UI seeing as there had been a recent vacancy for the UI implementation role and my prior experience with Photoshop. I collaborated with the art director to take the UI design of the game away from what it was in Icons: Combat Arena and bring it more in line with his vision. My goal was to make the most impact while learning as much as I could as quickly as I could so I set out to update the most interacted with UI. The main menu, character selection screen, and in-match UI were all on my list of high-impact UI to be implemented.


Modding & UGC

One of my many assignments as Development Lead was to implement a modding pipeline starting with user-created skins. Using Unity’s Addressable system I created publicly available editors and templates to get players started with creating their own skins. The tooling I developed allows players to import new textures and models all while still allowing these mods to be played online without affecting the other player or the quality of the connection

Modding tool Github repo


Backend & Live Service Work

I managed a majority of the backend and live service features for Rushdown Revolt.

  • Oversaw and managed the release of several in-game items
  • Oversaw and managed the majority of content patch releases
  • Maintained and implemented features such as login bonuses, in-game events, telemetry, friends list, in-game chat, matchmaking, and more
  • Tracked down and squashed bugs related to backend performance and stability

Refactors: Backend object mapping paradigm for in-game and web-store items

Before my time on the team, in-game items were mapped in the backend using two different identifiers. The name of the item would be used in-game as the id, and for the web store, the GUID generated by Playfab (later Accelbyte) would be used. This caused several issues, mainly confusion when there was communication between the web and game developers and it caused massive headaches when it came to changing the name of certain items which happened frequently due to the non-concrete nature of the game's lore at the time.
To remedy this I completely overhauled the in-game system to match that of the more robust web store. Now using this new mapping paradigm, I also took the time to create Unity tooling that would automatically create a representation of in-game items in the backend. This further streamlined the process of adding skins, emotes, and other in-game items.


Refactors: Asset Loading

While Icons: Combat Arena was in development the standard for non-code assets were Unity’s Asset Bundles. However, the way in which they were implemented meant that any time a new skin was added or any aspect of a skin was changed the bundle would be rebuilt which would add several minutes to a build. With the ramping up of our art team and impending addition of character redesigns and premium skins, I sought to not only make the system much quicker for the builds but also much more user-friendly. I accomplished this by fully switching the skin-loading pipeline over to Unity’s new Addressable system. The loading of skins through Addressable not only meant that in the editor changed to skins would be instantaneous, unlike before, but it also meant that we could now asynchronously load in these assets meaning that there would no longer be a noticeable hitch in the game’s rendering when quickly switching skins.


Lead multiplatform initiative - Mac OS, Linux, etc

Throughout my time at Vortex Games, one of the tasks that I was most excited about was working on porting the game to other platforms. Initially, I helped strictly with debugging and providing minor support for getting the Linux port up and running but I quickly inherited the ownership of the multiplatform initiative. This meant not only was I fully in charge of maintaining our Linux port which we had released but I also took full ownership of our unreleased Mac OS port which was set to release with our 1.0 launch in May of 2023. However, due to a massive shift in our rendering pipeline and a large reduction in our staff, my priorities were shifted to implement several live service features.
Post-release, we were on track to start development for Playstation and Xbox ports of the game with crossplay. However, due to the lack of funding, as mentioned before, we were unable to see this initiative through to the end.


Tooling: Streamlining UI implementation

During my time as the Head of UI Implementation, I hired and onboarded two new developers. Part of my onboarding process was to take some time with these new developers and observe them implementing some of our upcoming UI. I took notes of any pain points they had dealing with the somewhat archaic system still left over from the original developers of Icons: Combat Arena. Armed with the notes I had taken and the suggestions given to me by the two developers, I built new components, reworked old tools and systems, and created documentation for all the changes that were made. After going over these changes with the two developers I setup up another “UI Jam,” as I had named it and I observed a noticeable increase in efficiency. The changes were easier to understand for developers new to the code base and allowed for quick implementation of more UI.