Projects / Viper
College Final Year Project
Viper is the result of many months of hard work researching, designing, planning, coding, creating assets, testing and report writing. The project was created for the final year personal project of my BTEC Computer Science diploma; it highlighted all the skills I had accumulated over the course.
Feature List
- Map editor with load and save support
- Supports up to 4 players
- Competitive artificial intelligence with difficulty adjustment
- High and low resolution modes of gameplay
- Game sound effects for sound cards and pc speakers
- Nine fun in game music loops
- In game pause support
- Different interesting pickups
- Settings screen for altering game play
Skills gained/developed
- Research and analytical skills
- Design skills
- Skills with artificial intelligence
- Asset creation
- GUI and game input handling skills
- Problem solving and programming experience with C
- Report writing
- Testing and bug fixing skills
- Evaluation skills
- Project management skills
Although Viper is now quite dated, missing features and contains a number of bugs; considering the experience I had, the time constraints given, Viper well deserved the distinction mark it was given.
Trivia
- The AI in Viper uses a shortest path algorithm in conjunction with predictive space checking.
- The AI turned out to be so good at the game I had to add artificial delays into the reaction speed of its movement.
- Perfect snake AI requires a vastly more complicated algorithm than the one I used; it is possible to kill the AI at will by forcing it down a one way channel, human players would see through this ruse.
- Map files loaded in the game are stored as simple text files.
- A number of features in the game can be changed including the map file played by command line arguments.
- When borders aren’t present at opposing sides of the map, it is possible to send your snake through one side and out the other!
- Early versions of the game included interesting pickups like being able to eat the tail of other snakes for a short period of time. However, I ended up dropping the earlier more exotic pickups due to the cost of bugs.
- Viper is available in a special low resolution mode, the effort involved seems crazy now but at the time the hardware performance was meant the mode was a godsend to users with slower machines.