Ryan Verdon's Winter 2012 Final Project

Snake Simulation

Project Description

My project is a similar idea as the old snake games. In which as time goes on the snake grows larger. The snake is destroyed if it goes outside of the playing field or hits one of the objects inside the playing field. Unlike the original snake game my snake moves around randomly and can crossover on itself.

Goals

My original goal was to have a snake interacting with some enviorments. My attempted adventurous goal was to use skinning to make the snake not look as sad as it does without skinning. Unfortunately, I was unable to get skinning working so as of right now the snake is a series of texture mapped spheres.

Project details

* Snake is a series of texture mapped spheres. Specificlly a snake with fish scales. :)
* Board resets if the snake collides with an object or goes off the board. This means the snake is reset to having a length of 1 and the objects in the playing field are moved around to random spots.
* Objects in the field use per pixel shading while the board uses per vertex shading.
* Fully functional pitch & yaw camera with zooming and strafing.


User manual

To build my project:
on linux: make or make linux
on mac: make mac

To run my project:
./a.out

Controls:
w - Move the camera forward
s - Move the camera backwards
a - Strafe left
d - Strafe right
x - Reset the board (Snake length is set back to 1 and the objects on the board move)
r - Resets the camera and the board
q - Quits


Would like to have gamified the project.

Right now the snake does its own random thing. It would be cool if the user controlled the snake movement and could achieve highscores for having the largest snake.

Pictures



Picture of the texture of fish scales on the snake.




Picture of the snake starting out.




Picture of the snake after it has grown for a while.


References

http://nehe.gamedev.net/ Lessons 1-40