For our final project in ITP_380 (VideoGame Programming), Tanya Huang, Isaac Steele and I created a first-person horror-themed Pacman game using C# and the Microsoft XNA libraries. The idea came about during our first day of working together; Tanya wanted to make a horror game and I said what horrified me as a kid was playing maze games in which something is trying to chase you down. Isaac suggested we use Pacman as a starting model, but reinvent it as a first person horror game.
Our main goal in the project was to pull off the “horror” aspect through lighting, sound and model design. We wanted the game to remind the user of Pacman, but still be a new game to play. We used the same map and characters, but remodelled the map to make it more difficult and easier to get lost and modelled the characters in 3D. We also used sounds from the original game and played with the pitch and tempo to make them eerily familiar yet initially unrecognizable. We tweaked the lighting until we had just the right level of light to see but still be scary, and gave the maze a bloody floorboard.
During the project, I worked on enemy AI. Isaac (who created the map) and I used a grid separate from the world to help with pellet placement, collision detection, and targeting. This required a special algorithm to convert between the grid (with its zero point in the top-left corner) and the world (with its zero point in the center). In AI programming I wanted to be true to the original game (I used the Pacman Dossier as a reference), but I didn’t want to overwhelm the player. Since in the original the player can see the entire map and in ours the player has a greater potential to get lost, we had to nerf the ghosts by removing one and decreasing their speed. We playtested the games with others to make sure the game was always scary, but possible to defeat.
Near the end of the project, Isaac took on the role of lead debugger and Tanya worked on models while I concentrated more on asthetics like sound and lighting. It was important to me to make sure the asthetics contributed to the overall “horror” theme while still connecting to the original. For instance, as a ghost approaches you, you will hear a warning growl from the direction of the ghost. Upon death, Pac-Man will be teleported to his starting location with a bright flash as the original Pac-Man death trill is played.
You can download a copy of the game here.*
Controls: WASD to move, right/left arrow keys to quickturn 90 degrees. The object of the game is to collect all 159 pellets while avoiding the ghosts.
*- Note: In order to run the game you will have to have Windows Installer 31., Microsoft XNA Framework Redistributable 3.0/4.0, and NET Franework 3.5 installed on your computer. For help downloading everything, please view the readme file first after downloading the zip file.
The original Pac-Man served as inspiration for art and modeling. The code is original work of Tanya Huang, Katie Powell and Isaac Steele. The opening music is the original Pac-Man opening, heavily distorted. The background music is an excerpt from Nightmare Ambience by Joshua Liddle. The ghosts’ growls are from a sound effects collection by Madacy Entertainment. The death theme is from the original Pac-Man.