The Watson Game Client Group November 30, 2004. Client Integration and Testing Richard Pantoliano,...

36
The Watson Game The Watson Game Client Group Client Group November 30, 2004 November 30, 2004
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of The Watson Game Client Group November 30, 2004. Client Integration and Testing Richard Pantoliano,...

The Watson GameThe Watson Game

Client GroupClient Group

November 30, 2004November 30, 2004

Client Integration and Client Integration and TestingTesting

Richard Pantoliano, Jr.Richard Pantoliano, Jr.

Client IntegrationClient Integration

Previous class created a good standalone Previous class created a good standalone demodemo Problem: the game was meant to be played Problem: the game was meant to be played

on a networkon a network

Client side portion network interface Client side portion network interface mostly completemostly complete

Coordinate communication between Coordinate communication between members of group with Server groupmembers of group with Server group

Client TestingClient Testing

Big part of integration effortBig part of integration effort Communication portion largely untestedCommunication portion largely untested

Many issues for client, aloneMany issues for client, alone Most generated by simplicity of Most generated by simplicity of

implementationimplementation

Bug triage and assignmentBug triage and assignment

Client TestingClient Testing(continued)(continued)

Protocol Handling & Protocol Handling & Overall Client DesignOverall Client Design

Timothy HallerTimothy Haller

Testing the Protocol HandlerTesting the Protocol Handler

Protocol handling already largely Protocol handling already largely implementedimplemented

Relatively untestedRelatively untested Collaborate with Server side of protocol Collaborate with Server side of protocol

handlinghandling Develop test cases to verify functionality of Develop test cases to verify functionality of

client-server communicationclient-server communication

Implement New Protocol HandlingImplement New Protocol Handling

Add and modify functions to handle door Add and modify functions to handle door status checksstatus checks

Add and modify functions to handle game Add and modify functions to handle game statistics requeststatistics request

New functions to be added to the New functions to be added to the Ccommand and MessageHandler classesCcommand and MessageHandler classes

Overload old functions in the Overload old functions in the MessageBuilder classMessageBuilder class

Overall Client DesignOverall Client Design

Ensure that new additions maintain the Ensure that new additions maintain the basic structure and logic of the clientbasic structure and logic of the client

New additions include door opening, game New additions include door opening, game statistics, character modeling, etc.statistics, character modeling, etc.

New additions and modifications must be New additions and modifications must be practical in a holistic sense, taking the practical in a holistic sense, taking the entire client system into accountentire client system into account

3D Character Display3D Character Display

Matt ChedisterMatt Chedister

What is it?What is it?

Ability for a user to see all other logged in Ability for a user to see all other logged in users walking around the Watson Gameusers walking around the Watson Game

New FunctionalityNew Functionality

Server must provide all users with 3D Server must provide all users with 3D coordinates of all other userscoordinates of all other users Best way is through a structure that holds the Best way is through a structure that holds the

number of users, followed by each user’s 3D number of users, followed by each user’s 3D coordinatescoordinates

Client must take 3D coordinates, make an Client must take 3D coordinates, make an image with themimage with them

ProgrammingProgramming

The engine architecture by Bedros The engine architecture by Bedros MagardichianMagardichian

http://www.cs.binghamton.edu/~steflik/cs495b/Spring2004/Assgn_2/Papers/

Programming (2)Programming (2)

Function entitled ‘RunScene’ in Function entitled ‘RunScene’ in CWatsonGamePlay.cppCWatsonGamePlay.cpp In charge of getting the camera position and In charge of getting the camera position and

velocityvelocity Rendering the new frameRendering the new frame

Server listening should be placed in this Server listening should be placed in this functionfunction Once coordinates are received, attach an Once coordinates are received, attach an

image to themimage to them

Programming(3)Programming(3)

A cube or some other 3D image that is A cube or some other 3D image that is textured should then be appliedtextured should then be applied Make new Class, called CCharacter, on par Make new Class, called CCharacter, on par

with CTerrainwith CTerrain

A refresh rate of one Hz will have to do A refresh rate of one Hz will have to do until the communication between the until the communication between the server and client is more developedserver and client is more developed ThreadsThreads

PracticalityPracticality

Eventually, fully animated 3D people Eventually, fully animated 3D people should be seen walking aroundshould be seen walking around Today’s video gamesToday’s video games

By the end of next week, the following is By the end of next week, the following is my goalmy goal

Practicality(2)Practicality(2)

http://www.cs.binghamton.edu/~steflik/cs495b/WatsonGame_S04/May6/home.html

Opening & Closing of Opening & Closing of Office DoorsOffice Doors

Christina KuChristina Ku

Old Door ModelsOld Door ModelsThe current model is made up of partsThe current model is made up of parts

One part is for all of the doorsOne part is for all of the doors

The old door model has to be removedThe old door model has to be removed

New Door ModelsNew Door ModelsMake a new door model that is just one Make a new door model that is just one doordoor

Place a model where there is a doorPlace a model where there is a door

openDoor & closeDooropenDoor & closeDoor

To open a door – openDoor()To open a door – openDoor()

To close a door – closeDoor()To close a door – closeDoor()

openGL will be used to render the openGL will be used to render the animation of the opening or closing door.animation of the opening or closing door. In a loop, translate, rotate, and render door In a loop, translate, rotate, and render door

model until at desired positionmodel until at desired position

A problem will be finding a way to position A problem will be finding a way to position each door model that won’t be too tedious.each door model that won’t be too tedious.

Knapsack Support & Door Knapsack Support & Door Knock LogicKnock Logic

Hasani HampdenHasani Hampden

Knapsack SupportKnapsack Support

Help design the knapsack so it sorts Help design the knapsack so it sorts everything correctly.everything correctly.

Make sure everything appears in the Make sure everything appears in the knapsackknapsack

Knapsack Support (Cont’d)Knapsack Support (Cont’d)

Create Hotspot in an area where an item can be Create Hotspot in an area where an item can be allocatedallocated

Once you hit the hotspot an action will occurOnce you hit the hotspot an action will occur After every action the knapsack will be sorted by After every action the knapsack will be sorted by

importance (ie DARS, Books, Pen/Pencil)importance (ie DARS, Books, Pen/Pencil) Make sure the items actually appear in knapsackMake sure the items actually appear in knapsack

Player Creation SupportPlayer Creation Support

By James McClureBy James McClure

GoalsGoals

Allow for students of Electrical Engineering Allow for students of Electrical Engineering (EE) and Mechanical Engineering (ME) to (EE) and Mechanical Engineering (ME) to play the Watson Gameplay the Watson Game

The client mustThe client must Allow user to select major when creating Allow user to select major when creating

playerplayer Notify the server of the choiceNotify the server of the choice Load saved playerLoad saved player

Changes RequiredChanges Required

““Person” object shall contain an attribute Person” object shall contain an attribute to represent their majorto represent their major

Character creation screen shall contain a Character creation screen shall contain a new text field for “major” in which “CS,” new text field for “major” in which “CS,” “EE,” or “ME” may be typed.“EE,” or “ME” may be typed. Error checkingError checking

Need to modify client messages 3 and 4 to Need to modify client messages 3 and 4 to include include

Door Knock LogicDoor Knock Logic

By James McClure By James McClure

& &

Hasani HampdenHasani Hampden

GoalsGoals

When a player goes to a teacher’s door and tries When a player goes to a teacher’s door and tries to open it, the door may or may not opento open it, the door may or may not open

The client must:The client must: Each closed door that can be opened shall contain a Each closed door that can be opened shall contain a

hotspot in front of ithotspot in front of it If the player walks into this hotspotIf the player walks into this hotspot

Send a “knock” message to the server, receive the replySend a “knock” message to the server, receive the reply If the server allows it, the door opens for all clientsIf the server allows it, the door opens for all clients Otherwise, the requesting client sees a message of why the Otherwise, the requesting client sees a message of why the

door would not opendoor would not open

Changes RequiredChanges Required

New message type: KNOCK (cmd # 9?)New message type: KNOCK (cmd # 9?) Doors need a unique IDDoors need a unique ID

Stepping in door hotspot sends KNOCKStepping in door hotspot sends KNOCKIf a negative reply is received, display a If a negative reply is received, display a message from the professor why the door message from the professor why the door was not openedwas not openedAt any time, a client may be notified that a At any time, a client may be notified that a door is opening, whether or not they door is opening, whether or not they knockedknocked

PreviewPreview

Have different responses from teachers (ie. Have different responses from teachers (ie. Having lunch, not office hours, etc..) Having lunch, not office hours, etc..)

Game status Info DisplayGame status Info Display

Keith McCullumKeith McCullum

Info on Active Players in the GameInfo on Active Players in the Game

Current Specs for Active Player Info Current Specs for Active Player Info and Game Stats Optionsand Game Stats Options

Nothing currently built into gameNothing currently built into game

Would require in-game menu supportWould require in-game menu support For Active Player search, allow user to see For Active Player search, allow user to see

location of other active players while walking location of other active players while walking through the Watson buildingthrough the Watson building

For Game Stats, let user see total playing For Game Stats, let user see total playing time, session time and percentage completedtime, session time and percentage completed

Necessary Additions to SourceNecessary Additions to Source

Messages designed to send and receive Messages designed to send and receive player position and playing time dataplayer position and playing time data Get message ID from wagMSGBuilderGet message ID from wagMSGBuilder Communicate with server to communicate Communicate with server to communicate

current datacurrent data

Require data from both server and Require data from both server and databasedatabase

Necessary Additions to SourceNecessary Additions to Source

Menu functionalityMenu functionality In-game, create hotkey or button on HUD to In-game, create hotkey or button on HUD to

toggle display of both active player info and toggle display of both active player info and game statsgame stats

Info sought for active player includes:Info sought for active player includes: PositionPosition HealthHealth Game Completion %Game Completion %

To Be Continued…To Be Continued…

Next Semester!Next Semester!