Studio Project - Team Dream Walkers
A neon-synth racing survival game to go fast while avoiding obstacles.
Helped out with programming support and level design.
Project developed in 3 months until initial release on mobile devices.
You Will Crash was a game project that targeted mobile game market thanks to an easy pick up and play experience. I joined Team Dream Walkers as part of the Indie Game Academy Level 3 program, and most of the team consisted of programmers with varied skills along with a mix of art, audio, and project management. During my time on the project, I provided small yet helpful contributions to programming support, game design brainstorming, and level design. Making tracks felt easy thanks to a senior engineer that provided the entire core gameplay experience and track editor to put greater focus on content design.
Regular Expression for Saving Tracks
My most significant contribution, programming wise, was providing a regular expression that requires track files to be saved within the track editor. The track must be named with only valid alphanumeric characters so that any team member of the project can use the track files onto the scenes to then decorate the track with obstacles and artistic flair. The track editor, as shown in the video does have a name to put in, and when the designer clicks on the save button, the regular expression algorithm takes care of changing the string to a fitting name and then put it under the resources folder for accessing track files.
Return Valid Track Name - Regular Expression
Collaborating on Driver AI Algorithm through Game Design
While I want to contribute with changing and adding more code on the game project, I must always respect the rules to not change anyone's code without given permission. With the Driver AI, which makes a dynamic moving obstacle like cars on traffic, the senior programmer made the algorithm, and I was not allowed to edit the code. However, I read the code and gave out suggestions that resulted in a much better algorithm.
When I read the code, during the early development stage, the driver AI had very solid rules with some refinement later on.
How the Driver AI system works:
The AI Driver is an enemy entity
They shift one lane towards the left or right
If the entity as at the edge, lane change away from the edge
The AI cars will lane change through periodic timing, detecting an obstacle, or randomly evade player
The Driver AI Algorithm before the change
If entity is on right side, move towards the left
If entity is on the left side, move towards the right
If the entity is at the center, do not change lanes
The algorithm before the change irked me because there was a predictable pattern that all enemy cars will move towards the center, and that would make the gameplay far less challenging and stale since players could easily exploit that behavior, even with the track design having enough obstacles on the road. I brought this issue to the team meeting and suggested that the cars should randomly change lanes to the left or right to make them unpredictable and keep the action tense essential for You Will Crash. Afterwards, the programmer behind the Driver AI took the feedback and improved the algorithm to increase the challenge of enemy driver entities.
The Driver AI Algorithm after the change
Do a random number between 0 and 100
If less than 50 - left side check
If left lane change allowed, then left lane change
else right lane change
else if 50 or greater, - check right side
If right lane change allowed, then right lane change
else left lane change
With the driver enemy having unpredictable lane changes, the game is more challenging with the random element balanced by the static barricade obstacle that stays in place, which level designers must manually place them on the track.
Designing Tracks with rules for most fun and content
The majority of the time spent on the project was designing tracks to showcase a variety of content with a reasonable difficulty curve. Thanks to our senior engineer quickly putting the core gameplay experience and the track editor early on, we focused on level design throughout the timespan, providing immense advantage for play test sessions and overall polish.
When designing tracks, we had to abide by the following rules as the game project evolved:
Must survive at least 3 laps on base tracks while challenge tracks require 2 survival laps
In a 3D game, always have suspension of disbelief
there cannot be any sign of clipping (see through 3d models unintentionally)
The 2d sprites on the plan should not be seen going flat and must blend in with 3D world
Theme should always be neon synth wave, and artistic creativity is encouraged
Cannot make barricades longer than one lane nor be too close to each other
The enemy AI drivers need to have enough space to make such turns
A good design trick with barricades is to have checkerboard patterns to allow weaving
Player should always have a chance to avoid barricades, especially with the unpredictable enemy driver AI
The track length and tools should be considered based on difficulty
Easy tracks should have short length to allow fast laps with little to no road tricks
Moderate tracks should have moderate length and have good amount of tricks and balance out with straight tracks
Hard tracks can be as long and have many tricks as desired, but cannot be too long due to constraints of mobile gameplay design
My Levels
Cross Road
Designed level that teaches the player various techniques at once:
Weaving barricades
Powerups between barricades - risk vs reward
Speed boost spree sections - adding thrill of going fast
The level emphasizes gradual introduction to weaving, with first having barricade rows that can stay, and then alternating lanes in long parts, and then the last part that expects faster lane changing. Lane changing is essential for mastering survival and aiming for the fastest speed possible, especially with increasing traffic.
Blu Red Sun
Designed level with teaching the player about the following:
Road humps - used to create intensity and tease challenging places to get powerups
Lane splitters - Makes player decide on which path to take: wider road with less powerups or narrow road with more powerups and risk
I wanted to make this level have blue background and red sun because blue and red are my favorite colors. As this level is more challenging than beginner set, showing the lane splitting is an essential part of decision making between a wide road with less powerups, or a narrow road with more powerups. The difference between having a wide road and a narrow road is immense with wider roads offer more flexibility to avoid incoming obstacles while narrow roads offer more powerups, but require weaving through obstacles skillfully. There are two parts of the track that the road splits into three paths, with the left and right side having two lanes and the middle having three lanes. The three way splits are the most challenging and tense parts, but they are often brief enough to break up the monotony of having only one full road. With replaying multiple laps, the player should be incentivized to study the maps and remember which route to get the most powerups early game before opting to take the wider road to increase survival chances against oncoming cars.
Turbo Hex
I wanted to make a level that gives off a feeling of seeing the damage from under the various hump bridges, and then when the player gets to see underneath the bridges: massive car wrecks including police cars. To make that work, I utilized the three hump split bridges right next to each other, with the first one being the middle and then the left and right side being crossed over later on. Each time the player goes through the split hump bridge, they encounter a different arrangement of barricades and powerups to keep the driving tense.
Synth Spin (Red Blu Moon)
Because I made a level with blue sky and red sun, why not make one with a red sky and blue moon. With the moon instead of the sun, that signals the levels will be harder compared to the regular ones. I like having looping track pieces that allow jumps and humps to pass through them smoothly without clipping. To have the theme of red and blue, I have the red be the sky, ground, and pink mountains while the blue was used for the moon, water lagoons, and trees.