office Conflict Resolution

Overview

  • Software: Unity, Blender

  • Languages: C#

  • Platforms: PC

  • Role:
    Programmer,
    View-Model Animator

Office Conflict Resolution is a First Person Shooter where the players are using their imagination in a child like way to shoot each other with their hands and play king of the hill. Select your lobby, customize your character, and compete to be the champion of the office. The goal of the project was to create a simple shooter inspired by an old xbox commercial where people were using their imagination to fight.

The game developed for the Microsoft Dream.Build.Play 2017 Challenge. With a team of 2 other developers, we were challenged to create a game leveraging Azure Cloud Services. Over the course of a month, we created a simple shooter game that leveraged Azure to store account data and statistics.

The game was released on the Microsoft store January 2018.

Character Customization

I created a simple character customization system used by the players of the game. When the player changes the skin, it enables and disables hidden skin objects on the player rig. Due to the limited selection of skin options, this was a quicker option than trying to stitch the skin onto the player at runtime. When the game runs, the extra skin gameobjects are deleted off the player.

A skin ID is sent across the network on load to sync all of the players in the game with the proper skins. In same the fashion, all of the extra skin objects are deleted.

View-Model Animations

I created and implemented all of the view-model animations for the application. The challenge was trying to create reload and shooting animations without actually having a firearm. With the pistol, it was relatively easy to fake a reload animation. When it came to the machine gun, it was a bit awkward to fake a reload animation so I instead opted to create a hand cramping animation.

The animations were created in Blender and managed through a simple mecanim state-machine. Aiming down the "sights" creates a reticle that enabled more accurate aim with the animations moving the thumbs out of the way.

Sounds

I was in charge of the code and implementation of the audio. In order to sell the idea that you were pretending to shoot guns, we had the characters make gun sounds while they were shooting at each other.

To create variety and to pull this off, we recorded ourselves saying "bang", making reloading sounds, and pretending to have hand cramps(For machine gun reloads). I implemented the audio using simple one-shot audio calls and I randomized the pitch of every gunshot to try and reduce the monotone nature of the sounds. I used simple, almost cartoonish hit marker sounds to help players know when they struck the opponent with their shots without taking away from the "Pretend" shooting vibe.

Pistol Masculine
Machine Gun Masculine
Pistol Feminine
Machine Gun Feminine

Ragdoll

I implemented ragdoll deaths in the game in place of animations. To accomplish this, I leveraged the Unity ragdoll system and enable the functionality once a player dies. This simply required me to create colliders on key bones to ensure the body reacted properly when ragdolling. To reduce network calls, all ragdoll deaths are performed locally as they don't impact gameplay once they die. A network call is sent when a player dies to enable the ragdoll of the client players.