Finding Coffin

Engine : Custom Engine

Language: C++

Development Time : 3 months (March 2016 ~ May2016

Team name: Edge of Cliff

High Concept : 2D, Running Game

Introduction

Our journey completing the game ‘Finding Coffin’ was a great experience for each of our team members. It was the first time using a Engine that not fully supporting us. However, we made this up. We first selected the form of our game inspired by the game name ‘Geometry Dash’. We started thinking up basic stuffs like graphic set-ups and the structure of the game. We thought that this was a good idea because run games had simple physics and less to worry. The concept of the game, which was a mummy who desires to find his coffin came out just discussing together. This concept lead to everything, especially the graphic set-ups which was the desert and inside a pyramid. Later, we had to abandon many stuffs we planned for. Bird mummies, enemy bats were those kind of things we abandoned due to time limitations. Whatsoever, we have come out a 2-Dimension running game which you have to avoid every hazards and obstacles you face by jumping and sliding

Development Team

Our team name ‘Edge of the Cliff’ came out when we recognized our situation. We were worried but also determined to win through this tight situation. Edge of the cliff was the situation we thought we were at but also, people tend to demonstrate magnificently when things get tougher. This is why we came out with this team name which shows our determination. Our determined team consist with three awesome developers, which are Seungeun Ji the Producer, Wonjae Jung the Lead Designer and Jiwon Jung the Technical Director.

Tools

During the development, we used many useful tools. First of all, We used visual studios to code everything and run our projects. For our art assets, we used Microsoft Powerpoint and pain.net. For our sound implementation, we used FMOD. We also used SVN to share our codes and other stuffs for our project. For making our game video, we used OBS for recording and Movie Maker to edit it. Last, we used text files to implement File I/O.

Art of main character

I love rounding things and the game’s fun is important and character images have a big portion which makes the game fun. We designed the main character cute as possible to make players encounter our game easily. For this project, we designed our character from Microsoft PowerPoint. PowerPoint had many interesting effect like Neon effect. We could make interesting character to make our animation smooth and polished. We will be continuing this kind of art quality at our future projects if needed

FeedBack

As ‘Finding Coffin’ is easy to play and able to finish earlier than player thought, it was easy to take lots of instant feedback. For example, in  the open playtest, other games in GAM150KR course were usually played for more than 10 minutes. However, ‘Finding Coffin’ was played for 10 seconds ~ 10 minutes. Moreover, even player played short times, he or she tried again because they do not want to give up in short times. As a result, more than 50 people took our survey and most of them played ‘Finding Coffin’ more than twice. If team ‘Edge of the Cliff’ was not diligent about care these useful survey result, we may not put this in ‘What went right’. We tried to apply those results in the game so that usually, half of what changed and fixed between milestone was result of player’s opinion

Procedurally generated map

We used the random function from the ‘Warp Engine’. From this, we assigned each patterns a value and we made these patterns appear random based on the score. As the score increases, we made hard patterns appear and more and more. We thought we made a great map generation. If we have enough map patterns, our game never ends unless you find the coffin. It took a while to make this procedurally generated map but it was worthless. Instead of hardcoding every patterns, we can just set patterns.

Division of Work

Looking back at our journey through developing ‘Finding Coffin’, I think we worked well at what we were given. We didn’t have any conflicts while making the game. We also had this balance of work while making the game. Each of us did enormous amount of job and us were satisfied about our team. Our team did well without fighting or having conflicts. We can use this experience to later work better at working on team projects in the future.

Appropriate Sound effects

I think choosing an appropriate sound effect was one of the hard things to do. We had lots of sounds but choosing the right sound was a different story. However, we searched and found several sounds and eventually matched the exact image of an art of our character and background sound which gave a high tension to players because it was a running game. Also, other sound effect matched reasonably at each situation like jumping, sliding and dying.

Collision

First of all we had hard coding so all of collision is just position.  Although we made box collision but we didn’t make triangle collision. So, sometimes player feel like angry because collision looks bad. We didn’t use different value on spike. If box position low than 0, box’s changing to spike. Next time we’ll make the different value so it could be different collision. 

Player Control

At the very first time of project, technical director tried to apply several physics theorem. However, most of attempt went fail. Several magic numbers were nice but when technical director change those numbers a little bit, character moved very differently unlike change of value. As a result, technical director used ‘time’ value to prevent double jump, and make character ‘looks like’ jump affected by gravity. From next project, technical director should study more about adapting physical theorem to computer programming.

Obstacles

Obstacles are basically formed by points, which were stored in a text file. We used File I/O to implement our obstacles. Obstacle patterns appears ahead when the character passes a particular position. We stored these patterns in a array to reduce  the memory and easily erase when the patterns are passed. However this caused a little gap between two patterns. After you pass one pattern, another pattern comes out which made a little time with no obstacles. We wanted to make patterns continuously come out without any gap but we couldn’t realization at our game.

Coding quality

Because we had to code everything in the game, lots of codings were needed. The problem is that if other person sees our code, they might have some difficult time understanding the code. Even between our team, we had some hard time understanding and fixing each other’s code even though we had comments. Our organization of our code was a little mess. We crunched most of our code on one cpp file which was hard to organize. There were also things we couldn’t do due to this messy code qualies. In the future, we learned the importance of organization of our code.

Particle

Our particle system is divided into two parts. The first one is the tail particle which is a particle that follows the character. Next is a particle system that explodes when the score reaches a certain amount. The tail particle was fine but the explosion particle went wrong as we thought. It was hard to calculate COS, SIN for the angle to explode. We wanted a cooler effect rather than just particles appear and disappear. We also wanted a particle effect that looks like snowing on the background but realization it was hard due to lack of time and the memory we had.  Next time, we will develop more on making a cooler particle effect like shrinking effect or rotation of each particle while taking less memory.

© 2019 By Wonjae Jung