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