free css templates

P A C - M A N

ALEX YOO

I N T R O D U C T I O N

PAC-MAN and his ghost enemies have escaped from inside the GameBoy and onto the device's surface.  However, PACMAN must still try to escape the ghosts!

The primary goal for this project was to not only make something that looks pretty cool, but also have some user interaction that involves collisions between the 3D characters or objects.

The base of the "world" that we see is a GameBoy Classic. Essentially, this is now the game's setting for the PAC-MAN game characters to roam around in.

F E A T U R E S

  • BLINN-PHONG LIGHTING - Although we implemented Blinn Phong Lighting in many of our labs, many of the material properties that were used were mostly presets and taken from the base code that was given.  For the GameBoy mesh that I luckily found online, most of the physical parts were not separated by shape; therefore the material properties could not be isolated onto each shape.  To fix this issue, I edited the .obj file and isolate each shape that shared material properties.  Then I created each material property according to the physical part.  I ended up with 15 material properties total.
  • COLLISIONS - In the PAC-MAN game, if PAC-MAN collides with any of the ghosts, he dies and loses a life.  In order to have this be a feature, I had to figure out how to have each mesh (PAC-MAN + 4 ghosts) know where each other are in relation to the world.  To do this, I had each mesh have a position vector (ex: <pacmanPos.x, pacmanPos.z>) which was updated everytime it was rendered.  Within each render call, I check if PAC-MAN was in collision with any one of the ghosts and everytime there is a collision, the game exits.

W A S D  /  Scroll

The WASD keys will allow the user to explore the world forward, left, backward, and right, respectively.  Scrolling will allow the user to rotate the views.

Q E O L

The QEOL keys will allow the user to move the light source left, right, up and down, respectively. 

Arrows

The arrow keys will move PAC-MAN in the direction of each arrow key.