titlescreen.png

Digi-Dash

Retro Platform Game

Overview

Digi-Dash is an interactive side-scroller that was developed using the Unity engine. This retro-styled game incorporates in-game elements featured in traditional platformers such as collectable items, health system, and dynamic gameplay.

This project is a collaboration with a team of students during a four week game jam in course B IMD 363. In this project, I explored learning how to work with the Unity program in creating a video game.

Team 

1 Project Manager, 2 Visual Artists, and 1 Back-End Developer.

Roles

Back-End Development

Game Design

Tools

Unity

Atom

Time 

Feb 2019 - Mar 2019

background2.png
bigjump.png
desert.png

Inspiration

The main inspirations for this project was from mobile games that included physics based movement and one touch controls. These endless runner games featured very spectacular backgrounds that included basic mechanics making it very easy to play. We tried to achieve in replicating in this genre in the realm of retro-futurism.

tinywings022.png

Tiny Wings

Altos-Odyssey-5.jpg

Alto's Odyssey

Removed Game Content

During the development process, we had to cut out many features we initially wanted to include. 

Movement Physics

We wanted to show all of our in-game features by sketching a paper prototype. However, when doing initial research, it was more complicated to incorporate physics and momentum controls. Instead, we opted in designing flatter levels.

gameover.png
bitcoin.png
paperprototype.jpg

Enemy AI

One goal for the game was to clear through the map before the enemy AI catches up to you. However, programming a sophisticated AI was removed after the first round of play testing because of the inconsistency of the enemy movements.

Untitled_Artwork 3.png
Untitled_Artwork.png

Organic Level Design

To achieve an organic shaped level design, we needed to download a Unity package that allows us to edit curved edges and platforms.

However, when publishing our game to a WebGL platform, we encountered several errors within our project. The package that we downloaded did not properly transfer into the website build properly so we couldn't continue using that plug-in. Instead, we shifted into a more angular shaped level with straight edges. 

bug.jpg

Usability & Play Testing

To ensure our game plays well, we conducted a couple rounds of play testing with at least 25 users in each session. After the play throughs, we recorded their feedback for us analyze on how we could improve each version of the prototype.

Round One

After first round, we decided to give players full control with the movement with the character. Also, we included a rotation mechanic that lets players rotate the vehicle in midair. 

Feedback from Peers:

"Being able to control rotation would be nice. "

"Needs to fix the issue of getting stuck upside down, through rotation ability or something."

Round Two

We eliminated the enemy player and focused the gameplay on correctly landing the vehicle.

Feedback from Peers:

"Rotation was great for when things are going well, but was difficult to use when stuck upside down trying to correct yourself."

"There should be some way to control the vehicle mid-air if rolling over is going to cost the player health."

Code Challenges

Finding the proper way to solve when the player lands on their head was difficult because the jump mechanic was inconsistently working and not allowing players to rotate right side up. The player loses health when if the player is unable to land correctly resulting to a game over. My solution was creating a new box collider and attaching it on top of the character's sprite model that will trigger a new event when colliding the ground layer. The event resets the player's rotation value to zero and the y position 10 pixels higher than current x position so the model won't get stuck on the platforms. This worked out very well and was successful during final round of play testing.

unity.png
Code.jpg

Final Project

Reflection & Key Takeaways

Learning how to develop games is very difficult and time consuming. However, it was really satisfying to see people enjoy playing the game and having fun. When programming the mechanics for the game, I needed to break down each feature and think about how to execute them using code. Overall, this was a fun experience in making a simple game using the Unity engine and look forward to continue using this program for future projects.

Play Digi-Dash!