busta’ sandwich
DESCRIPTION
Busta’ Sandwich. Life Cycle Architecture. Specifications. Game State Transitions. Game Layout. Objective. Single Player – Obtain highest score possible by fulfilling as many sandwich orders as possible before the chef explodes from eating too many leftover sandwiches. - PowerPoint PPT PresentationTRANSCRIPT
Busta’ SandwichBusta’ Sandwich
Life Cycle ArchitectureLife Cycle Architecture
SpecificationsSpecifications
Game State TransitionsGame State Transitions
Game LayoutGame Layout
ObjectiveObjective
Single Player – Obtain highest score Single Player – Obtain highest score possible by fulfilling as many sandwich possible by fulfilling as many sandwich orders as possible before the chef orders as possible before the chef explodes from eating too many leftover explodes from eating too many leftover sandwiches.sandwiches.
Multi Player – Be the last chef standing! Multi Player – Be the last chef standing!
Game Play ElementsGame Play Elements Game boardGame board: :
A 5x5 grid of sandwich ingredients.A 5x5 grid of sandwich ingredients.
Cursor:Cursor: Highlights currently selected ingredient in the grid. Highlights currently selected ingredient in the grid. Player can choose to swap this ingredient horizontally or Player can choose to swap this ingredient horizontally or vertically.vertically.
Chef IconChef Icon: : A sprite of a chef that represents the “life” bar of the A sprite of a chef that represents the “life” bar of the player. Chef gains weight as player has to eat player. Chef gains weight as player has to eat sandwiches from unfulfilled orders and eventually sandwiches from unfulfilled orders and eventually explodes if chef grows too fat.explodes if chef grows too fat.
Tip Jar:Tip Jar: As orders are fulfilled the tip jar fills with money, once As orders are fulfilled the tip jar fills with money, once filled the player can use the self submit button to eat a filled the player can use the self submit button to eat a sandwich with restorative powers.sandwich with restorative powers.
Order queue:Order queue: A set of 3 orders from customers with sandwich A set of 3 orders from customers with sandwich ingredients and time to fulfill request. As orders are ingredients and time to fulfill request. As orders are fulfilled they drop out of the queue and new ones are fulfilled they drop out of the queue and new ones are added.added.
Score:Score: The current score of player. The current score of player.
Game Play Elements, cont.Game Play Elements, cont.
Game Play Elements, cont.Game Play Elements, cont.
Self Submit button:Self Submit button: Ingredients from bottom row of grid are fed to chef.Ingredients from bottom row of grid are fed to chef.
Customer Submit button:Customer Submit button:Ingredients from bottom row of grid are matched to a Ingredients from bottom row of grid are matched to a customer order, if no order exists that matches the customer order, if no order exists that matches the ingredients chef has to eat sandwich.ingredients chef has to eat sandwich.
Multi-Player ElementsMulti-Player Elements Current Opponent window:Current Opponent window:
Shows a selected opponent’s chef icon, game board, tip Shows a selected opponent’s chef icon, game board, tip jar and order queue.jar and order queue.
Opponent Submit Button:Opponent Submit Button:Ingredients from bottom row of grid fed to current Ingredients from bottom row of grid fed to current opponent.opponent.
Opponent Icons:Opponent Icons:For games with more than two players, chef icons for all For games with more than two players, chef icons for all opponents will be displayed along with cursor opponents will be displayed along with cursor highlighting which opponent is on the Current Opponent highlighting which opponent is on the Current Opponent window.window.
ArchitectureArchitecture
EngineEngine Coordinates all operations of the game.Coordinates all operations of the game.
Basic Operations (Single-Player & Multiplayer):Basic Operations (Single-Player & Multiplayer): 1. Handles user input1. Handles user input 2. Checks for legal move by player2. Checks for legal move by player 3. Updates models3. Updates models 4. Call to Graphics4. Call to Graphics
Multiplayer Operations:Multiplayer Operations: Process network queueProcess network queue Send updated model to serverSend updated model to server
Engine – User controlEngine – User control
Captures user input and then processes input; calls Captures user input and then processes input; calls appropriate engine subroutines to handle specific user appropriate engine subroutines to handle specific user inputinput
Uses built-in SDL event capturing functions to capture Uses built-in SDL event capturing functions to capture user input. By polling for events, can ensure that all user user input. By polling for events, can ensure that all user input is handled and processed in order.input is handled and processed in order.
ModelsModels GameState:GameState:
A structure that contains all the information required to store A structure that contains all the information required to store the state of the game at any point. Contains instances of the state of the game at any point. Contains instances of other model types, including Customer queue, Ingredient other model types, including Customer queue, Ingredient matrix, score, Chef state, Tip Jar, etc.matrix, score, Chef state, Tip Jar, etc.
GraphicsGraphics The entire game will be sprite-based.The entire game will be sprite-based.
The graphics engine provides the following functions for The graphics engine provides the following functions for the game engine to display the game. the game engine to display the game.
These methods draw the game according to the content These methods draw the game according to the content in GameState. in GameState.
drawSPGame(GameState gs): drawSPGame(GameState gs): drawBoard(gs.board) drawBoard(gs.board) drawChef(gs.chef) drawChef(gs.chef) Etc..Etc..
GraphicsGraphics drawMPGame(GameState gs, MPGameState drawMPGame(GameState gs, MPGameState
opponentsBoard)opponentsBoard)
Other screens are drawn using these methods: Other screens are drawn using these methods: drawMainScreen(...) drawMainScreen(...) drawChefSelelection(...) drawChefSelelection(...) drawHighScores(...) drawHighScores(...) Etc…Etc…
The engine will provide all the necessary information to The engine will provide all the necessary information to draw things correctly.draw things correctly.
NetworkingNetworking Utilizes a Client/Server Model across TCP/IPUtilizes a Client/Server Model across TCP/IP
Clients are built into the game while there is a dedicated Clients are built into the game while there is a dedicated serverserver
When a move is made the client sends its new game When a move is made the client sends its new game state to the serverstate to the server
The server tracks which opponent each client is The server tracks which opponent each client is currently viewingcurrently viewing
Networking, cont.Networking, cont.
Periodically, game states of connected clients are Periodically, game states of connected clients are sent to one another:sent to one another:
Summarized information of all other connected clientsSummarized information of all other connected clients Full information of the client currently being trackedFull information of the client currently being tracked
The server is also a relay for the special sandwiches The server is also a relay for the special sandwiches that will be sentthat will be sent
Team StructureTeam Structure
Engine Team: Jennifer, RohitEngine Team: Jennifer, Rohit Network Team: Ross, FrederickNetwork Team: Ross, Frederick Graphics Team: Julian, TomGraphics Team: Julian, Tom
One or both members of the networking team may join One or both members of the networking team may join the other teams, since the major networking milestones the other teams, since the major networking milestones occur early in development. occur early in development.
Each meeting we will reassess the workload of each Each meeting we will reassess the workload of each team and shift workloads accordingly.team and shift workloads accordingly.
Team Schedule Part ITeam Schedule Part I 7/15/05 (F) 10:00p7/15/05 (F) 10:00p
Graphics: Draws colored blocks and a layout to the Graphics: Draws colored blocks and a layout to the screen. screen.
Engine: Handles keyboard/mouse input.Engine: Handles keyboard/mouse input. Network: Client connects to server, sends state, Network: Client connects to server, sends state,
server sends states, disconnects.server sends states, disconnects. Engine: Models/Data Structures constructed. Engine: Models/Data Structures constructed.
7/18/05 (M) Noon - 7/18/05 (M) Noon - Team MeetingTeam Meeting..
7/19/05 (Tu) 10:00p - 7/19/05 (Tu) 10:00p - Zero-feature ReleaseZero-feature Release
Team Schedule Part IITeam Schedule Part II
7/26/05 (Tu) - 7/26/05 (Tu) - Team MeetingTeam Meeting Network: Client queue implemented.Network: Client queue implemented. Network: Sever sending data structures. Network: Sever sending data structures. Graphics/Network: Connect GUI screen. Graphics/Network: Connect GUI screen. Graphics: Grid working. Graphics: Grid working. Engine: Updating grid, checking moves. Engine: Updating grid, checking moves.
8/02/05 (Tu) 10:00p - 8/02/05 (Tu) 10:00p - Beta ReleaseBeta Release All: Single player done. All: Single player done.
Team Schedule Part IIITeam Schedule Part III
8/9/05 (Tu) - 8/9/05 (Tu) - Team MeetingTeam Meeting Graphics: GUI menus done. Graphics: GUI menus done. Graphics: Sprites complete.Graphics: Sprites complete. Engine: Process all network messages, i.e. Engine: Process all network messages, i.e.
multiplayermultiplayer All: Everything but animations and sound. All: Everything but animations and sound. Network: Network balance done. Network: Network balance done.
8/12/05 (F) – All: Game complete. 8/12/05 (F) – All: Game complete.
8/14/05 (Su) 10:00p - 8/14/05 (Su) 10:00p - Final ReleaseFinal Release
Test PlanTest Plan Platform:Platform: CSE Lab WinXP Machines, 100Mbps Ethernet CSE Lab WinXP Machines, 100Mbps Ethernet
Unit Testing:Unit Testing:Each development team will test its module heavily before Each development team will test its module heavily before committing to CVScommitting to CVS
Integration Testing:Integration Testing:Each team must make sure their new modification doesn’t break the Each team must make sure their new modification doesn’t break the system.system.
Bug Tracking Tool:Bug Tracking Tool: Bugzilla Bugzilla
““Public” Release:Public” Release:August 9. Release to friends to test game playAugust 9. Release to friends to test game play