90 Days Of Overwatch

The Problem

Recreate the original characters of Overwatch for 45 days in Unity, and then design and implement 4 newer characters.

The Process

 Team Size: 1 (Personal Project)     Role(s): Programmer, Designer     Engine: Unity3D     Platform: PC

I have been an Overwatch fan for a long time. I have played hundreds of hours in it, and Blizzard is one of my dream companies to work at. There’s something about Overwatch, that just drives me towards that game every time. As I was also taking Jesse Schell’s game design class at that time, I thought to myself, why not take the game I love, and try to break down the existing heroes, and maybe even try to come up with new heroes? This would be a good design exercise as I will be dissecting the different powers of these heroes that make them heroes. Additionally, it would also be a great test for my Unity programming skills.

However, I realized that putting a time limit on the project was really stressing me out. I started off by making a spreadsheet. I listed all the characters and their attributes in there. For all the things I have already implemented, I marked them green.



I had a lot of fun making Tracer. However, due to other responsibilities, I could not finish prototyping her for at least 3 days. That’s when I actually got rid of the time-frame. I figured it would be good to have soft deadlines for individual characters, instead of having a hard deadline for the entire project. However, that, plus since I was working on Project Hot Metal, it became impossible to dedicate time to it.

I revived the project in June, during my summer internship, as the workload was not as heavy at the beginning. I began tweeting my progress to see what people think about it, and it was received well. I would post videos of the game-play.




I started off with Tracer because she was my favorite character to play with. I gathered her stats and abilities through my spreadsheet and began programming in Unity. For her guns, I used raycasting with line rendering, as they were hit-scan. I had to tweak her blink a lot, as simply translating would make her go through walls. The most fun I had was while programming her recall. I used Stack in order to store her transforms, and then after pressing recall, I would just pop the transforms, and it would look like she’s reversing back in time. Then I made her Pulse Bomb, which is an AOE weapon. I added some particle effects to visualize the area, and just to make it look cool.



I made two versions of Soldier 76. The first one fired projectile instead of hit-scan because I decided to remember from my memory (bad idea). Then I actually turned the game on and realized that it is actually hit-scan. I made his famous Pulse Rifle. I love the simplicity in it. His sprint was the easiest to make. I used the logic that I had incorrectly used for his Pulse Rifle, to his Helix Shots, because they were definitely projectile. I reused the particle effects from Tracer’s Pulse Bomb to show the AOE of the Helix Shots. However, the most fun I had with Soldier was programming his Tactical Visor. I spent a lot of time to program it efficiently. First I made a function that returned which enemy was closest to me, and then I converted world space to screen space, and moved my raycast target from middle of the screen to that point on the screen.



I didn’t have to make a lot of new things, however, most of the fun in Widowmaker’s character is the feel. I made most of the tools in one day, but they just did not feel right so I had to reiterate until they felt crisp. The most fun I had was with the grapple hook. I had to find the perfect number. Even a slight change in that number would make it feel bad. For her “wall-hack” ultimate, I created a new camera that only rendered the enemies. So, I just toggled it on and off for the ultimate. For her sniper zoom-in. I just decreased the field of view. For her venom gas, I made some particle effects.


However, that was the end of 90 Days Of Overwatch. I was spending a sizeable amount of time in a day on it, and I felt like it was not going anywhere. Also, coincidentally, Overwatch had just announced their Workshop mode, where you can wire your own logic. When that came out, my project felt redundant and that gave me more reasons to not work on it.