Big shots is a CO-OP VR Roguelike that released on Steam, Quest and Playstation VR2. my primary focus revolved around gameplay programming, while also taking on crucial responsibilities for networking and optimization systems.
A pivotal aspect of the game's success was its weapons and upgrade systems. I was responsible for creating all four weapons featured in the game and designing the majority of the upgrades. It was crucial to ensure that all upgrades, especially those altering weapon behavior, were compatible with other complex upgrades. Ensuring a seamless gameplay experience for all players was paramount, which required networking these systems. This integration eliminated disconnects between players, enhancing cooperative play and significantly contributing to the overall enjoyment of the game.
In "Big Shots," a cooperative roguelike shooter, the gameplay dynamic demanded a significant number of projectiles to be active and updated simultaneously. However, our initial solution lacked networking capabilities, leading to desynchronization issues where projectiles for each player could be in entirely different positions. Furthermore, introducing a grenade launcher with bouncing projectiles posed a significant challenge within our non-networked system. Recognizing the necessity for synchronized gameplay experiences, I opted to implement a networked projectile system. This new system utilized buffers filled with data about our projectiles, ensuring that both players now experienced synchronized projectile movements. This enhancement not only resolved synchronization issues but also laid the groundwork for implementing more complex projectile mechanics in the future.
One of the challenges I faced while developing our game for the Quest 2 was the performance cost of using skinned mesh renderers in Unity, which limited our ability to display multiple enemies efficiently. To address this, I proposed and developed a custom skinning shader that could transform enemy meshes. I designed this shader to batch the transformations and utilized Unity's Job System to transfer bone data to the shader. My solution was crucial in optimizing the game for the Quest 2, enabling us to achieve our performance target of 72 FPS.
In addition to optimizing the GPU, I also improved system efficiency in the code by enhancing memory management and optimizing costly functions that ran during updates, including Unity's resource-intensive UI updates.
tools where a big part of the development of big shots and i was responible for making some of the important ones that were essiential to shipping the game.
This project marks my first commercially released game, developed as part of a talented team. I am extremely proud of what we accomplished together. Throughout the development process, I gained valuable experience in networking using Photon Fusion and collaborating effectively with programmers, designers, and artists. Additionally, I honed my skills in system architecture, C#, and Unity programming. This project not only enhanced my technical abilities but also strengthened my ability to work cohesively within a multidisciplinary team.