Maxim Robeyst

Engine\Gameplay Programmer

Big Shots

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.

Gameplay

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.

Networking Systems

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.

Optimization

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

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.

Platform Manager

"Big Shots" targeted multiple platforms, including Quest, PC, and PlayStation. This allowed us to leverage the capabilities of PC and PlayStation while managing costs for Quest 2. For PlayStation and PC, we aimed to implement real-time shadows for our enemies and mechs, which was not feasible on Quest. The Platform Manager tool enabled us to configure all lighting from any screen and bake lightmaps for the target platform using Bakery. Each platform had its own settings, allowing us to specify the lightmap type (direct, indirect, etc.) and adjust lightmap quality.

Cheat menu

During development, we needed a way to accelerate the game or test specific features. To address this, I created the Cheat Menu, which could be used in editor and in game. This system was designed to be intuitive, enabling other developers to add cheats effortlessly. The system allowed calling certain cheats with parameters in-game. For instance, to test a specific upgrade, developers simply needed to activate the cheat, and a comprehensive list of available upgrades would appear for testing.

Perfect object placer

Another tool I developed was the Perfect Object Placer. Unlike traditional methods that use physics raycasts to place objects in a scene, this tool utilized the available mesh data to ensure objects were placed perfectly on the ground.

What I learned

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.