Introduction

Kirby's on an adventure to satisfy his sweet tooth, but aggressive Waddledees who attack outsiders upon meeting are in his way! Avoid getting beaten with a spear by the Waddledees and consume as much ice cream as it takes to satisfy you!

Controls

Features

Collision Detection

Collision Detection was done by bounding spheres--calculating the distance between Kirby and the other models and seeing if it is less than the sum of their bounding sphere's radius. Kirby is also unable to walk out of the ground plane.

Colliding with the WaddleDees

On collision with the WaddleDees, Kirby gets hit by the spear they're holding and that makes him shrink by a small scale. The bounding sphere is adjusted accordingly to his scale. Once Kirby gets to a size where he can't be seen, then all the movement in the game will be stopped, signaling that the game is over and you have lost.

Colliding with the Ice Creams

On collision with the ice creams, Kirby increases in size by a small scale. The bounding sphere is adjusted accordingly to his scale. Each time Kirby "eats" an ice cream, that ice cream will disappear, and a new one replacing that would be randomly generated at another location. Once Kirby gets to a certain size (aka when he's full/done eating sweets for the day), then all the movement in the game will also be stopped, signaling that the game is over and you have won.

Camera Control

I fixed the camera to allow a visible view of the plane, and because Kirby can get pretty big or really small, I made it so that the camera can zoom in and out. This camera implementation allowed for an increase in fun and difficulty as the player has to concentrate on maneuvering Kirby through the enemies, and moving and zooming in/out of the camera at the same time so that he/she can see Kirby, the surrounding enemies, and the ice creams.

Basic AI

The way I did the random movement of the WaddleDees was to have them follow along a vector to a randomly generated target location, and when they have reached that destination, a new target location would be randomly generated. They don't exactly face towards the location they're going to and do sharp turns when they have a new destination, but let's just say it's a feature because isn't it more exciting if you don't know when and where they're going to be coming from?

Lesson Learned

I started out unsure of how to get the models to do more than what we have just been doing--setting the scene and just applying simple transformations to it. Doing this game allowed me to get a better understanding on how to further manipulate the models in the scene. The basic foundation was keeping track of the current locations of each models at each iteration, and using that information to calculate the other things I wanted to do.

Resources