View
233
Download
0
Tags:
Embed Size (px)
Citation preview
Graphics and Client Design
Overall Game DesignDoug 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 bySamantha Weitzman
Item Class Objects
int Item_IDstring item_TypeContain methods to retrieve the ID and Type
Predefined Item Types
computerprintersoda
candy barmoneybook
Knapsack Class
Contains a vector of ItemsMethods 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 PersonClassWe are client group so this is strictly our implementation but it will be pretty important to others as wellRelevant for:
Group 1: Challenge Information
Group 3: Character Creation Challenge Dispatching
PersonClass Object
KnapSack
PersonClass PersonClass Holds private
variables such as GPA, attributes
KnapSackClass Exists within
PersonClass
Person Attributes
Decided through group developmentAttributes can only be raised through initial distribution or through task completionsSo 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 playerCompleted task countCharacter nameCurrent 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 InterfaceMo, JianYi
Class HotSpot
predefinedRepresentation Rectangle
Where? Hallway and offices
Class HotSpot
Types Item (1) Challenge (2)
Player can acquire the itemPlayer must accept the challenge
Class InteractionManager
manipulates the interaction between the player and the challenge
InteractionManager
InteractionManager
ChallengeHotSpot Person
InteractionManager
Challenge Linear (one at a time) Caused by collision with hot spots
Manager class will start timer on the challengeGPA 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 HandlerError Handler
Luis Miranda
Protocol Handler Overview
ProtocolInterface
MessageTypes
MessageHandler
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 knapsackcontents
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