Graphics and Client Design Overall Game Design Doug Camin
The Watson Game Opens to splash screen User enters login\pass and either creates player or accesses existing
Game Play Win by achieving a 4.0 GPA Earn GPA by completing challenges Advance through classes by completing set number of challenges
Game Display Top portion of screen shows building and can be navigated with mouse or keyboard Lower portion is view port, shows necessary game information: Knapsack Map GPA Elapsed challenge time
Challenges Challenges are linear – only one at a time Game has six predefined challenges All are stored on server, can be changed Challenge grade based on two main factors: Time to completion (elapsed time) Pre-defined attributes for character
Challenges Continued To complete a challenge, user must: Have all items to complete challenge in knapsack Select all items required and click “Complete Challenge” button If challenge is not completed in time allotted,.25 subtracted from GPA
Items The game has eight items for use: Pencil Paper Computer Soda Candy Bar Money Books Printer (or printed pages)
Winning The Game Each player wins when they achieve a 4.0 GPA
Challenge Class In client, this class will load and store all challenge information from the server Information loaded at start time Provides interface to locally access current game challenges
The Knapsack Presented by Samantha Weitzman
Item Class Objects int Item_ID string item_Type Contain methods to retrieve the ID and Type
Predefined Item Types computer printer soda candy bar money book
Knapsack Class Contains a vector of Items Methods to add, remove, & use Items insert_Item(string item_name) insert_Item(int item_id) remove_Item(string item_name) remove_Item(int item_id) Item use_Item(string item_name) Item use_Item(int item_id)
Knapsack Interaction When a player ‘uses’ the group of items for a challenge, they are ‘removed’ from the knapsack and placed back into the game play
Player Creation Presented by Dominic Tsang
Client Side Implementation Class named PersonClass We are client group so this is strictly our implementation but it will be pretty important to others as well Relevant for: Group 1: Challenge Information Group 3: Character Creation Challenge Dispatching
PersonClass Object PersonClass KnapSack PersonClass Holds private variables such as GPA, attributes KnapSackClass Exists within PersonClass
Person Attributes Decided through group development Attributes can only be raised through initial distribution or through task completions So far we have decided: Stamina – how well a character deals with the unremitting cascade of work a CS major is expected to face Humor – see poor attempt above Health – undecided on its affects on game play Intelligence -undecided 1 more planned! Input welcome!
Flow Diagram PersonClass Main Client Program KnapSack Other Client Side Classes
PersonClass Also Contains Information On… Position of player Completed task count Character name Current challenge attempting …more to come Student standing? Fatigue?
Additional comments… Logically this class will act as the file to be “saved” Will have no direct connection to anything but knapsack and main client program – all server and db communication handled through protocol handler
Graphics and Client Design User Interface Mo, JianYi
Class HotSpot predefined Representation Rectangle Where? Hallway and offices
Class HotSpot Types Item (1) Challenge (2) Player can acquire the item Player must accept the challenge
Class InteractionManager manipulates the interaction between the player and the challenge
InteractionManager Interaction Manager ChallengeHotSpotPerson
InteractionManager Challenge Linear (one at a time) Caused by collision with hot spots Manager class will start timer on the challenge GPA increases if the play completed the Challenges on time
InteractionManager If the play completed the challenge, the manager will update the attributes of the player and the items in the knapsack
Protocol Handler Error Handler Luis Miranda
Protocol Handler Overview Protocol Interface Message Types Message Handler Socket
Protocol Interface The main class used by the client program to communicate with server. Note the order of communication.
Protocol Interface Methods Connect to Server Login User Load User, Save User, Create New User Get Current Player List Update Game State Get Knapsack Info Get Challenge Info Get Item Info Disconnect
Message Handler Packets will be sent to the server through this class. The type of packet to send is determined by the Protocol Interface. Contains a queue of messages being sent to the server. Server may be busy. Messages will not contain a priority, all packets are of equal importance. Incoming data from the server will be sent to the appropriate client object. Example: Information about Person will be sent directly to Person Object.
Message Types Contains the structure of the different packets to be sent to the server. A save packet will have different information than a load items packet. These types must be recognized by the server. This is done be having a standardized ID for each packet type.
Socket Contains all protocol logic such as send and receive packet. Also used to connect to a server listening on specific port and IP. Provided by Todd Barron.
Graphics Handling and GUI Bedros Magardichian
GUI and Game Scenes Menu Scene - Log in screen and select gaming options GamePlay Scene - Display 3D world and stats viewport Knapsack Scene - Display contents of knapsack Challenge Scene - Display Challenge Screen
Game Scene Menu
Game Scene 3D
Knapsack Scene
Challenge Scene
Game Scene Inheritance CWatsonGame CWatsonGameMenu Displays Menu CWatsonGamePlay 3D game play and Viewport CWatsonGameKnapsack Display visual knapsack contents
Rendering 3D OpenGL Navigate through 3D model of Watson Building Final model will include textures to represent Watson building
3D Watson Model
Navigation First person video game walking - look with mouse - walk with keyboard Collision Detection from generated mesh Issues – passage ways must accommodate diameter of collision sphere of person
Error Handler Accessible by all classes of the client program. User may post error messages to the Error Handler object. Can force a save game state, to help prevent corruption of data. Writes error message to log file Displays error message on screen Can send error message to the server