Find the Bear is a Racing game against the clock that we made in a team of 5 persons in DDJV using agile methods.
Find the Bear is a Racing game that we made in a team of 5 persons in DDJV using agile methods. We coded the engine of the game from scratch and built the game with it ! :)
If you want to know more about the game you can check our powerpoint here :
In Find the Bear we are playing a dreaming child. However in his dream, not everything is going as wonderfully as we expect ... In fact the
child is trapped into his dream where he has to collect all of his cute Teddy Bear in order to wake up, or he will falls in limbo ...
What's more, he doesn't have enough time for it, so the child (which is represent by the cute cloud :)) will have to voluntary go into nightmare because it is the only way for him to extend his dream duration ! But in the nightmare, everything could kill you !
We wanted our main character to be a child riding a cloud. However we didn't have the time to code the child, so we have a cloud :D
In order to give the feeling of floating, we decided to add vertical oscillations to the movement of the cloud. This was rather tricky as we wanted to be physic based but we wanted to force vertical oscillations also, so we had to make compromises.
We created a median height where we wanted the cloud to be on average. If the cloud is higher, than we applied proportionnaly to the difference to the median height a bottom force to the cloud. And symetrically if we are lower. With this technic we can ensure that the cloud will keep floating and we aren't too hard on forcing the positions of the cloud so that we can still make incredible jump if we fall from an edge ! :)
One issue with that technic is that often we could violently touch the floor, which would break the immersion. To prevent that we add an exponential law to compute the power of the top force when we are lower than the median height. It wasn't perfect but it was OK.
Finaly, the vertical axe was physic based with some forces added to the model, and the horizontal axes were render based in order to give good and responsive feedback to the input of the player :)
Here is a diagram to better understand it :
They are 3 kinds of items :
- the Teddy Bears : you need to catch them all to win the game and escape your dream !
- the Speed Boosts : each time you catch one, for the rest of the game, your speed is increase by half of your starting speed ! :)
- the Time Flasks : when you catch one you get about 20 seconds more to finish the game. Remember that the initial timer is too short for you to gather all Teddy Bears in time, so you NEED Time Flasks !
However, the only way of getting Time Flasks is by going into the Nightmare ! And in the Nightmare you can't catch Teddy Bears anymore. So you have to carefully chose when you are swaping ! What's more, if you chose to go into Nightmare (which you can do whenever you want), you will need to stay into it for about 25 secondes ! And in the Nightmare, every collision (walls, trees, borders) just instantly kills you ! So you better be carefull ! :)
We wanted to represent a child dream. So the map is a flying island in the sky, which is circular. The center of the map is "The Castel" and the exterior is "The Forest" !
We wanted to capitalize on our oscillation effect so we wanted to add a lot of variations to the floor of the map. To achieve that we used Perlin Noise
to simulate variations. When the floor is high, we use a grass texture, when the floor is low we use a sand texture. And in between we interpolate the 2
textures. All of that is directely done on the GPU for gaining time speed.
What's more the Perlin Noise of the map is precalculated offline so that we can generated a random map but still don't lose time at the main loading :)
As the horizontal axes are render based we had to re-code collisions again ... To bypass this issue we implement a functionality that would swap the control of the player from render based to physic based for a short duration when the player collide with something.
We wanted to prevent the player from escaping the flying island, so we add a soft bounce system when the player was too close of the exterior in order to force him coming back.
The frame rate is slow because of the video ^^'