SOLVING PROBLEMS WITH DESIGN AND TECHNOLOGY
SOLVING PROBLEMS WITH DESIGN AND TECHNOLOGY
SOLVING PROBLEMS WITH DESIGN AND TECHNOLOGY
Hello, my name is Christian Ignacio and I'm a UX Designer based in Seattle, WA.
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
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.
Tiny Wings
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.
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.
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.
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.
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.