top of page
A competitive VR game where players face off in the wackiest snowball fight of their lives.
Won the Audience Award at the 2019 Champlain Games Festival
Won Third Place at RPI GameFest 2019
Gameplay Trailer and Development Information
Team Size: 12
Tools: Unity 3D, C#, Adobe Suite, Google Suite
Development Time: ~3 Months (Mid-January - Early May 2019)
Individual: 94 hours
Total: 955.5 hours
Platform: PC, Oculus Rift
Note: Music in the trailer is by Aiden O'Connor; Trailer created by Chris McCammon
Snowball Showdown is a wacky, over-the-top, and competitive VR game in which two players challenge each other to the wildest snowball fight of their lives. Gameplay is designed to be fast-paced, with an emphasis on short-but-chaotic matches. Players build their snowballs by hand, which they can then combine with various items to make the snowballs produce strange or downright dangerous effects. Some examples include fusing in a grenade to make the snowball into a well-hidden explosive, or adding an acorn to make it sprout into a tree on contact with the ground. By emphasizing Snowball Showdown's bizarre and frantic nature, we hope to engage and excite players as they face off against their friends and loved ones.
Fast-paced, first-person VR game with an emphasis on PvP gameplay
Fully networked VR multiplayer
Player ability to create their own snowballs by bending down and making a scooping motion
Player ability to combine items with their snowballs to give the snowballs new effects
Core Systems Design
Role and Initial Design Process
When we began working on Snowball Showdown, my team's goal was to create a game that perfectly captured the fun, exciting, and profoundly childish world of snowball fights. We knew that we wanted to create a virtual reality game going into this project, and the process of creating snowballs by bending over and making a scooping motion fit that idea perfectly. From there, we considered other ways we could make the game play off that childhood fantasy. This led us to the idea of letting players combine various objects with their snowballs to make them perform different effects.
Early in development, we focused mostly on creating "dangerous" items (such as rocks and grenades) rather than "bizarre" ones, since their effects were easier to understand and implement in-game. As we progressed forward with development and acquired a larger team, however, we decided to pivot more towards the "bizarre" side of the spectrum. This is because we realized that weirder effects were a better fit for the fantasy we were trying to capture in-game. That said, we still decided to keep most of the original items (such as the grenades) since they were still fairly over-the-top.
An early screenshot from development, which shows the process of combining a grenade with a snowball to create an explosive snowball. Other items at the time included rocks, knives, and cats.
Shortly after we developed this core system and began working on the first prototype, I realized we could make the gameplay even more frantic and exciting if we allowed players to merge snowballs together. This would let them create chimeric snowballs filled with a variety of items - such as one with multiple rocks or one with a rock and a grenade -, which would all spill out and perform their effects on contact with the opponent or the ground. Thanks to this new system, players were now able to engage in two unique playstyles. They could either assail their foe with a barrage of smaller, weaker projectiles to gradually reduce their health; or they could strike them less frequently with larger, more powerful projectiles to deplete massive chunks of their health at a time.
The snowball-combining process. Upon merging two snowballs together, they turn into a much larger snowball containing any items from both.
Balancing and Iteration Process
In order to keep the game balanced and engaging, we employed several measures. First, we implemented a mechanic where players can catch enemy snowballs out of the air. After catching a snowball, players can then treat it as one of their own, allowing them to fuse it into a preexisting snowball, sacrifice it for an item, or simply throw it back at their opponent to deal more damage.
This mechanic served two major purposes. First, it gave players a way to defend themselves from particularly large snowballs, which can be incredibly difficult - if not outright impossible - to dodge. Second, it allowed us to make the game even more engaging and frantic for skilled players (including those who were experienced with other fast-paced VR games like Beat Saber), who could throw one or more snowballs back-and-forth several times before somebody finally took damage. This also meant that players sometimes had to choose between trying to catch one of their opponent's snowballs and building a new one. This forced them to think quickly, which added to the fast-paced decision-making present in Snowball Showdown.
One player catching the other's snowball in midair.
Another measure involved implementing a system where snowballs slowly "melt" if a player does not touch them for a certain amount of time. This was meant to punish players for hoarding too many snowballs at once, since doing so heavily slowed down the gameplay and made it less interesting for either side. However, since we wanted players to be able to create and fuse multiple snowballs at a time, we decided not to make the timer extremely strict.
Lastly, and most importantly, we decided to randomize the item-spawning process. To do this, we developed the snowblower system. The snowblower is an object that appears on the side of each player's snow fort. Players can place one snowball into the snowblower to make it spawn a random item, which they can then combine with a different snowball to receive its effect. This made the gameplay more chaotic and allowed us to develop items with various strengths and abilities, since players cannot guarantee which item they will receive from the snowblower.
The player's snow fort, as pictured from above. Note that the snowblower is positioned to the player's left.
Another important feature of the snowblower is its position. Because the snowblower is placed on each player's left (and because the button to open it is in the back-left corner of the fort), players must temporarily turn away from their opponent to use it. This helped us balance the catching mechanic mentioned above; if players want to use any items, they need to activate the snowblower, which once again prevents them from catching their opponent's throws. Instead, they have to quickly place a snowball in while still keeping an eye on their enemy.
These mechanics and attempts at balancing Snowball Showdown's core systems ultimately proved very successful. During test sessions, testers were constantly engaged and interested in the gameplay, and they deftly used the above systems in an attempt to overwhelm their opponents. Additionally, when our team brought Snowball Showdown to the 2019 Champlain Games Festival and to RPI GameFest 2019, attendees swarmed our booth and seemed extremely excited while playing it. As such, thanks to our strong cooperation, iteration, and constant balancing work throughout development, we were able to create a game that many people found interesting and exciting.
Technical Design Work
Role and Work
In addition to general systems design work, I did plenty of programming during my time with Snowball Showdown. This included implementing various managers, particle effects, trail renderers, and other pieces of visual polish to help make the gameplay clearer and more engaging. Some of my programming work - the aforementioned particle systems - also involved utilizing the Photon Unity Networking (PUN) plugin, which we used to create the multiplayer experience that formed the game's backbone.
Some of the visual effects I implemented in-game. (Top-left) A snowball exploding on contact with a player character. (Top-right) Particles that appear whenever a player successfully creates a snowball. (Bottom) Trails on a player's hands that appear when they are in the process of scooping a snowball.
I approached the process of implementing this code with the intention of making it as accessible as possible, since much of it - especially the particle effects - would need to work while being called from multiple scripts throughout the program. I also heavily commented it when necessary and tried to keep it concise. In doing so, I tried to keep my code neat, clean, and easy for my teammates to use. This ultimately proved successful, as most of my scripts worked as intended, and they very rarely caused problems for my teammates throughout development.
Some of the code I wrote for the visual effects manager, which instantiates particle effects at a set size and location based on passed-in values. This allows certain objects - such as snowballs - to produce particles that scale according to their size. Click on the code to read it in a new window.
Meet the Team
Lead Designer, Product Owner
Systems Designer, Technical Designer
Systems Designer, Technical Designer
* Joined to help continue production after May 2019
bottom of page