Global Game Jam 2019
This year I have attended my first ever game jam organized by ATOM Teknokent (Animasyon Teknolojileri ve Oyun Geliştirme Merkezi) in Ankara.
I invited my friends who I kept in touch with from the Game Development Pipeline lecture at METU Informatics Institute to the jam. We have quickly decided to form a team together. This years theme was “What home means to you”. After some brainstorming, we have decided our game idea. While I and Kerem tackled the scripting, Uğur worked on level design, some 3D modeling and artwork of the game. After 48 hours of the intense development period, we proudly present our game, Night Cab in the Buluba Town!
With the rise of the new “drink” Buluba, whole town is filled with drunk customers and they are ready to pay to go home. As a silent night cab driver, you are in duty as always with your old trusted ride. Follow the red compass, pick up the customers, bring as many as you can to their home. But be fast! The timer is ticking and the sun is rising, your shift won’t be for long.
Even though we haven’t come up with a revolutionary game idea, we managed to finish our game from top to bottom, including the sounds, game level, UI, interesting driving mechanics, and lighting. Members of our team had different areas of interest and we tried to focus as much as we can on these areas. Uğur did what he is best at, designed the levels and created our infamous taxi model. Kerem worked extensively on driving mechanics and UI. I wanted to work on graphics and delve into shader programming. Unfortunately, time limitations prevented that. I have taken the role of putting different pieces my friends have prepared into a whole, coded the GameManager script, worked on optimization and deciding on the lighting strategy of our scene. The knowledge I gained while working on my other project, Rise of the Square Pyramid helped me a ton on this.
Before we settled on the calm seaside Bluba Town level design we also experimented different level designs. I wanted to experiment on the idea of creating a very small planet where the game takes place at the inner surface of the sphere. This way rather than using any guidance the player could just “look up” to see the opposite side of the planet and see his next destination. Unfortunately, creating a level inside a small sphere world was quite problematic, to say the least. Scaling and the rotations of the buildings on the surface were hard the manage and even though we managed to keep the taxi on the surface, designing a fun level layout was very time-consuming.
Finally, I have worked on creating a dynamic day and night cycle. I have chosen a sunless skybox, we have designed the level in such a way so that “sun” could not be seen. Since the game started during the sunset (when our taxi drivers shift starts) and the game mostly took place during the night, this didn’t pose any problem. I have implemented DynamicSunSc script which changed the rotation of the sun from sunset to sunrise in a period we defined. To support the idea that the time of day was changing, I have also modified the skybox tint in this script. I used AnimationCurves and Color Gradients so that I could easily experiment with different sunset and sunrise speeds and colors.
void Update()
{
if (isPlaying)
{
counter += Time.deltaTime;
if (counter < gameTime)
{
currentExpo = exposureCurve.Evaluate(counter / gameTime);
RenderSettings.skybox.SetFloat("_Exposure", currentExpo);
currentColor = skyColorGrad.Evaluate(counter / gameTime);
RenderSettings.skybox.SetColor("_Tint", currentColor);
transform.Rotate(Vector3.right * (totalRotation / gameTime) * Time.deltaTime);
}
}
}
Overall it was a very fun and challenging experience. I met with many good developers but even greater people.