An agility focused, rocket propelled, speed running game.

Play!Download the game from Steam


TeamThe team behind it all

Dalton Nell Lead Engineer

Engineer Connor Douglas

Domas Piragas Engineer

Engineer Monish Gupta

Joey Despain Engineer

Engineer Cameron Jackson

John Radford Lead Artist

Artist Daniel Richman

Micheal Nash Artist

Artist Daniel Peterson

Kolton Eichers Artist

Artist Will Boyce

Danny Diaz Artist

Artist Zachary Gainer

Isaac Smith Artist

Luis Nava Producer

WorkMy participation on the game

Although my official title was engineer on Kickshot, I wore many different hats throughout the development process from desiging UI/UX to modelling environment art. Here are some of the highlights of the sections I worked on and a little insight into my thought process when creating the assets. Be sure to click on the images to see the full gallery.

UI/UX Design and Implementation

Through an interative collaborative process, I developed the title, world select, and individual level select screens. In accordance with our project specs I kept each screen as minimal as possible separating complexity into individual screens. To maintain consistency, every clickable element highlights/hovers with the same color scheme and animations. The entire multi-screen setup was contained in one Unity scene and transitions were implemented using a cubic easing function to interpolate between camera positions.

Click on the image the right to see a gallery of all screens created.

Environment Art Modelling and Scene Construction

Inspired by minimalist art styles like Cluster Truck and The Witness, our team decided to create the world of Kickshot in their image by reducing all unnecessary details. That choice allowed for increased readability at high speeds so players wouldn't have too hard a time with the grappling mechanics. To supplement the reduced details, all paths to complete the levels are outlined by black stones to guide the player when lost. Albeit unneeded on such a simplistic game, I optimized the assets by making the rocks and grassy models use the same material only with differing UV maps.

FX GLSL Shaders and Effects

While the islands themselves were pretty, they were also very static. To solve this I decided to add waterfalls: a common sight in floating islands. The effect is achieved using several layers of meshes adding components of the waterfall. The script itself is rather simple, just a scrolling UV space for the blue background, while the foam is a little more interesting. The foam is achieved by sampling a perlin noise texture and discarding any fragments within a certain range. This range is tunable on the asset to allow for multiple scales of waterfall.

Waterfall Shader

      		void surf (Input IN, inout SurfaceOutputStandard o) {
              //Get proper UV coordinates from model
              float2 dispUV = IN.uv_MainTex;

              //Displace UV coord using _Time
              dispUV.x += _Time * _USpeed;
              dispUV.y += _Time * _VSpeed;

              //Sample and return proper color
        			fixed4 c = tex2D (_MainTex, dispUV) * _Color;
        			o.Albedo = c.rgb;
        			o.Alpha = tex2D(_AlphaTex, dispUV).r;

Waterfall Foam Shader

      		void surf (Input IN, inout SurfaceOutputStandard o) {
              //Sample proper UV coordinates
              float2 dispUV = IN.uv_MainTex;

              //Displace UV coords by _Time for scrolling effect
              dispUV.x += _Time.r * _USpeed;
              dispUV.y += _Time.r * _VSpeed;

              //Sample noise texture
        			float4 c = tex2D (_MainTex, dispUV);

              //Clamp return value and use full alpha for open spots
              half ret = clamp((c.r - _AlphaCutoff) * 100.0, 0, 1);
        			o.Albedo = _Color.rgb;
        			o.Alpha = ret;

AccoladesAwards and recognitions

Microsoft Store

Invited to an indie showcase in the local Microsoft Store.


Invited to EAE Day, an end of the semester game showcase for the EAE program.

SLC Gaming Con

Showcased in the Microsoft booth at the Salt Lake City Gaming Con (2018).