Skip to content

The Vision Statement

Ibrahim Hussein edited this page May 10, 2016 · 1 revision

Snakes Game

Executive Summary

This project was proposed with the motivation of bringing back the game snakes which used to be a very popular game over a decade ago. The goal is to develop a simple application where a player navigates a snake within a confined grid. This project would be done over the course of five weeks and would aim to deliver a working game at the end of this duration.

High Level Architecture

The core model for this project will be developed using the .net Framework, the SwinGame API will be used for rendering the GUI. C sharp was chosen as the preferred language since the development team was most familiar with it. OpenTK was proposed to be used as a graphics library but due to some team members unfamiliarity it was dropped.

Project Scope and Requirements

Initial scope

The game is played by one player, who has the objective of obtaining the highest score possible. The player is in control of a snake which is constantly moving around a square field of cells. At any time, the snake moves in one of the 4 directions, parallel to a side of the square, and the player can change the direction using the 4 arrow keys of the keyboard. If the snake crashes into a side, or into itself, then it is dead, and the game stops. A fruit will appear in one of the cells, when the head of the snake hits it, the snake grows longer. Once eaten another fruit will appear at a different cell. Players score will also be shown during gameplay.

Requirements

  • A player shall be able to choose difficulties(speed) before beginning the game
  • A player shall be able to pause and resume a game
  • Player shall navigate a snake within a grid
  • Food shall appear at a random location on grid
  • Snake shall grow by length when it consumes food
  • Player score shall increase when food is consumed based on difficulty
  • Game shall provide separate difficulty scores for each difficulty
  • Game shall end when snake eats collides with itself or a boundary on the grid
  • Grid shall have obstacles which the snake must avoid(extension)

Initial Class Diagram

Class Diagram

Release Plan

This project will consist of two iterations

  • Iteration 1 from 20th April to 4th May
  • Iteration 2 from 4th May to 18th May Each iteration would deliver a working version of the game.

Assumptions

Since our target group is mainly 10-20yo it is assumed they have a basic knowledge on operating a personal computer. The game will be developed based on these assumptions.

Software Development Process

This project will be developed following the disciplined agile development process. This application would be developed over multiple iterations. The product owner for this project would be Ibrahim and the development team composes of Jake, Andreas and Ruby. Trello will be used for project management and slack as a communication tool.