Requirements
Platform
- Build game for web browsers using JavaScript/CutJS.
- Port to mobile devices (Android and iOS).
Technical Specifications
- Game must consume at most 250MiB of memory
Game Design
- Game will serve as a framework for block puzzle games (e.g. Bejeweled)
- Game is divided into several classes
- Shell/piece
- has no methods only attributes.
- has attributes
- color
- intensity
- special
- type
- associative class
- atomic unit
- Board
- 2D array of shells/pieces
- has methods
get(row, col)
set(row, col, x)
- has attributes
- grid
- configuration
- allowedColor
- allowedMagnitude
- allowedSpecial
- allowedType
- width
- height
- has getters for all these attributes
- Game Type
- controls board
- acts as an interface to a player
- exposes certain operations
- has methods
selectShell(row,column)
makeBoard()
getBoard()
- Player
- produces input to Rules
- may be human or AI
- Renderer
- displays the board
- interfaces with Rules
- Rules have knowledge of the board, as well as special states
such as
- falling pieces
- powerups activating
- Rules have knowledge of the board, as well as special states
such as
- interfaces with Player
- for example, player selects a piece to move, and the piece is highlighted by the Renderer
- Shell/piece
Milestones
- Weekly builds
- Presentable game ready by Quest
Evaluation
- have users test prototypes
- feedback on UI and game design
Userbase
General public