Swingshot is a four-week prototype made by me and 4 other game developers. Its fundamental premise is swinging around with a grapple gun to fly through objective rings.
If the HTML build isn't running well on your PC try downloading the windows build on it's itch.io page
My Contributions
Implemented and designed grapple movement
As the solo software engineer, I was tasked with designing and implementing the player movement systems. This changed some throughout development, but our overall goal was to make sure that movement felt fast and fluid. There were two ways players could grapple, swinging and pulling. Swinging was the normal fire, and pulling was the alternate fire that could only be used on objects beneath the player. I implemented pulling to make landing on surfaces easier, which was something we had complaints with in our initial prototype.

Pulling Downward

Swinging
Created an aim assist functionality
In our initial prototype, one of the biggest pieces of feedback was that it was hard to aim on thin objects and while moving fast. Our solution was to implement an aim assist feature. I accomplished this by performing a Boxcast which would detect areas around the players’ aim path. Along with this, we also noted that player were having trouble knowing when to grapple, so we added a sphere to show where players were grappling onto.

Aim Assist

Aim Spheres
Handled graphics settings and post processing
Since we were in 3D project, I took note that we needed to optimize our graphics settings and to render shadows in higher resolutions. I also added post processing effects to give our game the final touches we needed. You never know how great chromatic aberration is until you use it!!!!

Shadows before and after

Post-Processing before and after
Collaborated and assisted team members in production
Other team members often came to me when they were stuck on various tasks. One specific problem was our other game designer who wasn't familiar with Unity wanted to implement a speed lines particle effect. I helped walk him through the implementation on how to get the speed of the player and then from that calling a function to activate the speed lines effect. Another example was our Sound designer wanted to have a wind sound play while flying through the air. I helped him implement a script to smoothly increase/decrease the wind sound based on the players speed. Lastly, I assisted our level designers by implementing a sensitivity setting. They were having trouble testing the game because their mouse sensitivity felt too high for them so I decided I would make sensitivity settings a high priority.
Created shaders using shader graph
Bland objects are never fun in games so I added a few simple shader effects in the game. First, I noticed that our aim spheres were boring when they were a simple color so I added a Fresnel effect to them. I feel it helped them stand out more against the environment. Second, I created a glowing shader for the rings to make them look cooler and to seem more enticing. Lastly, I worked with another member on our team to implement the acid shader.

Before and After Aim Sphere Shader
Glow Shader

Acid Shader
Modified the game to function with WebGL
Converting projects between different target platforms is often difficult in Unity. This is especially true for WebGL which doesn't support a good amount of Unity's features. While trying to get a solid web build working, I had to tackle multiple bugs but the most difficult was a visual glitch where objects were flickering in and out. After a lot of research, I eventually narrowed down the problem to the Camera's clipping distance and got a successful build up for my portfolio.

WebGL Visual Clipping Bug that I fixed