top of page

 

 

StickShift is a splitscreen arcade-style antigravity futuristic racing game set in a massive cyclinrical track called "The Hollow" where two rivals race for victory in an ability-fueled battle to the finish line!

 

StickShift was built using the Unity 4 Engine over the course of 19 weeks by a team of five VFS students, including (from left to right):

 

Nicholas Jennings - Programmer

 

Matthew Kirby - Vehicle Artist/Animator

 

Dylan Matthews - Environmental Artist

 

Erich Kohlweg - Project Manager/UI Artist/Audio Manager

 

Cameron White - Level Designer

(PC Only - Download ALL files)

The Team

One of our prime focuses from the very start was cultivating a strong culture within our team. Every weekend we did our best to schedule team-bonding activities, such as hiking, rock climbing and barbeques. During preproduction we also participated in a game jam where we developed a wonderfully silly game about Nicolas Cage; this experience gave us a crash course in our respective roles and also allowed us to develop some best practices for working with one another. Through these activities we all grew closer as a group, which made coming in to work on the game a daily joy. Reflecting on the project, we are all very proud of the product that we produced and I personally am extremely grateful for the opportunity to have worked on this team.

My Role

For the role of programmer I was in charge of all gameplay systems, in addition to UI/Menu functionality and overall technical quality. The majority of coding was performed in C#, with smaller supplementary portions being written in JavaScript and C++. While there were many technical hurdles that had to be overcome, those listed below required an additional bit of creativity/iteration.

 

Vehicle Movement Physics:

 

In early prototyping, the player vehicles proved to be incredibly unwieldly, moving sluggishly against the track surface and frequently driving straight through the track and into space. It was clear that the car had to orient it's rotation based on the upward facing normals of the track (tube), but the vehicle's rapid movement made smooth travel extremely difficult. The final vehicle functionality was achieved through a series of spherecasts being cast in front of, underneath, and behind the vehicle. By measuring the closest distance from each spherecast and prioritizing the results, the vehicle is able to rotate towards to the proper upward direction each frame (dictated by it's determined direction of travel), providing smooth, reliable movement.

 

Player Tracking System:

 

Given the 360 degree driving environment, StickShift required a method to track player progress through the track, regardless of their orientation within the tube. Furthermore, this system had to be easily integrated into new tracks to enable the rapid implementation of fully testable environments. The ultimate solution to this challenge was a system that we named the Track Manager. Using the curves that generated the track geometry in Maya, it was easy to generate a line of evenly-spaced simple geometric objects (nodes) that followed the same curve. Using these nodes, the Track Manager drew a line through the center of the track, using a special 'Finish' node as a starting/ending point. By determining the closest point on this line to each player vehicle, it is possible to accurately track player progress throughout the race, regardless of where either player is located. As an added bonus, through simple extrapolation this system is also able to determine the exact distance that the players are from one another.

 

Slipstream Speed Boost:

 

When a speed increase from touching the opposing player's trail was initially suggested, we were disappointed to learn that Unity's built-in Trail Renderer system does not detect collision of any kind. Using the Trail Renderer instead only for visuals, the speed increase of the Slipstream mechanic was achieved through the use of a constantly evolving line of nodes dropped behind each vehicle. Using a rapid time interval, new nodes are laid down and added into the 'top' of an array while the 'bottommost' node is simultaneously cleared. A linecast is then fired between each set of nodes, checking for impact with the opposing vehicle; depending on the nodes that generate the linecast, differing effects are applied to the affected vehicle: farther nodes yield a great increase in speed while closer nodes have a much smaller impact. Once a vehicle is determined to be 'in the stream', a host of effects are initialized that have fully customizable duration and power, allowing for easy tuning and balancing.

 

 

Given more time with this project I would love to have seen more track and playable modes, as we had many ideas that did not make it into the final product due to time restraints. Additionally, I would like to do more experimentation with our ill-fated 'Jet Mode', (a power granted to each player that allowed the vehicles to transform into jets for a short period of time) which was ultimately cut due to time and scope restraints.

 

Below you can find a download link to try out StickShift for yourself! Both controllers and keyboards are supported, and if possible, the game performs best on 'Fantastic' graphics settings. I sincerely hope you love the game - I know I loved making it!

 

(PC Only - Download ALL files)

Trailer

Gallery

bottom of page