client group jessie yu nicole mendolera lee seversky dave alazraki min kang james luk syed mohammed...

62
Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Post on 15-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Client Group

Jessie YuNicole Mendolera Lee SeverskyDave Alazraki Min Kang James Luk Syed Mohammed Adam SailWoo Lee

Page 2: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Overall Client Design

Nicole Mendolera

Page 3: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Improvements to the Client Design

3D Character DisplayOpening and Closing of Office DoorsDoor Knock Logic & Knapsack SupportPlayer CreationGame Status InfoChallenge TriggersGame StatisticsIntegration

Page 4: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player Avatar / 3D Engine

Keeping track of other players Avatar movement Consistent character speed

Page 5: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Opening and Closing Office Doors

Doors are included in current game Do not open or close

Update “scenery behind doors”

Page 6: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Door Knock Logic / Knapsack

Knock on door Will allow door to open or remain

closed Knapsack

Works well just updating it

Page 7: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player Creation Support

Changes to way player is created Includes GPA, Major, etc.

Page 8: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Game Status Info

Game Status is shown for active players Names Locations Session times

Page 9: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Challenge Triggers

Currently only 3 hotspots Boring and restricted

Adding new and more exciting challenges

Page 10: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Game Statistics Button

Game Statistics will be shown Includes

Total Playing Time Session Time Other active player totals

Page 11: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Integration

CVS

Uniform Code Comments

Page 12: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player Avatars / 3D Engine

Lee Seversky

Page 13: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Overview

Player avatar support Current 3D engine discussion Final goals

Page 14: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player Avatar Support

Adding avatars gives positive feedback of other players in the game to the user

Avatars provides new ways for player interaction

Increases game play options Requires changes to the current 3D

engine structure.

Page 15: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Avatars What is an avatar?

An avatar is a 3D model representing a player Avatars can have other attributes such as color

and text that help identify different players. Internally

An avatar is an object that knows how to render itself and its attributes in the 3D world

Each player in the current sector has an avatar rendered to the screen.

Page 16: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Avatar Manager The avatar manager is responsible for

handling all avatar movement Responsible for updating current player

location to the server and asking server for a list of player locations

Contains all players in current sector that need to be rendered

Reduces server communication by projecting player locations based on their view vector

Page 17: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Changes / Additions Game Logic

Expand player attributes Add current view vector (x,y,z) for orientation Add player avatar id (int) for selected avatar

model Add current velocity (x,y,z) for player location

projection Add player sector (int) for sector within game Change location vector from int to float

Add avatar manager in runScene logic loop

Page 18: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Changes / Additions Client / Server

Add two client messages Sends “UpdateSelf” messages

player->location player->view vector player->velocity player->sector

Sends “GetPlayers” message player->sector

Receives List of players player->location, player->view, player->velocity,

player->sector

Page 19: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Current 3D Engine Limitations Player movement inconsistent, speeds

up / slows down. Camera movement based on velocity and acceleration

Collision detection fails occasionally. Player collision handling logic at fault, not mesh

Memory Leaks No frustum culling! No Voxel/Octree of

world. Increase speeds dramatically Poor model geometry rendering support

Page 20: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Final Goals Implement an avatar system that can

smoothly display player avatars within the 3D world Minimize server communication Minimize client rendering overall load Maximize fluid movement

Assist with door animation Assist with replacing current hot spot

markers Improvement overall engine structure

and robustness

Page 21: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Opening and Closing Doors

David Alazraki

Page 22: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Current Doors in the Game Doors are already a separate part of the terr

ain from the walls They are all shown together in the Cterrain class Not meant to move

What needs to be done Terrain needs to be added behind these doors Doors need to created for the faculty offices sinc

e there aren’t any in the current game

Page 23: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Modeling Doors

Doors For stairs, elevator, bathroom are already in the game

An office door needs to be added for all of the faculty offices

The doors will have an both an open and closed mode, so we need to model all sides of the door

Page 24: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

The CDoor Class A child of the Cmodel class Represents a single door in the Watso

n building Each door on the 3rd floor of the Watso

n building will have an object of type CDoor to represent it

Page 25: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

The CDoor Class - Data Has all of the data necessary to know where

the door is Location (x,y,z) of front bottom corner of the sid

e where the hinge is Size –

Height Width thickness

Orientation Open or Closed

Page 26: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

The CDoor Class - Functions

bool OpenDoor() Opens the door in the player’s view, and changes the col

lision model so that the player can walk through the door Returns true if successful

bool CloseDoor() Closes the door in the player’s view, and changes the col

lision model so that the player cannot walk through the door

Returns true if successful bool IsOpen()

Returns true if the door is open

Page 27: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Door Knock Logic & Knapsack Support

Min Sung Kang

Page 28: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Knapsack Support

What is the Knapsack? A virtual bag that holds everything the

player obtains or needs in order to complete the Watson Adventure Game.ex) ID, Pencil, Pen & The Dars Report, etc.

Current conditions. Works well and no further systematical

development is necessary.

Page 29: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Things to be done Better representation of the Knapsack.

Icons will be replaced.ex) old ID card image to new ID card image.

Support any added items in the Knapsack. Create icons for the added items. Make sure the items are added and the

icons are shown in the Knapsack.

Page 30: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Door Knock Logic

A new feature for the players from the client group to provide an opportunity to knock on the door to further explore the Watson Adventure Game.

Page 31: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

The way it works

When the player approaches the door, a message will be displayed.

If the player does press the space bar, the knocking sound will be generated.

“Press space bar to knock on the door.”

Page 32: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

What will happen?

By knocking on the door, one of the following will occur. Door remains closed and a message will

be displayed. “Come back later!” (the professor is busy). “No one hears you!” (no one is in the office). “No permission!” (wrong door for the major).

Door opens.

Page 33: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

How will it happen?

New hotspots will be defined for each door.

Player, by colliding with the door hotspots, will given the opportunity to knock on the doors.

Page 34: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Door Knock Logic &

Player Creation

James Luk

Page 35: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Defining Door Hotspots

Two hotspots for each door In the hallway. In the room.

Hotspots will be defined on the client side.

Page 36: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Knocking Function

Invoked when on door hotspot and on a Spacebar key press event

Knocking sound will be played.

Page 37: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Knocking Function cont.

Knocking function checks a player’s major against the major allowed for a particular room. Door opens

CDoor Class OpenDoor function is called. Door remains closed

Invoking the knocking function within a room simply opens the door.

Page 38: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player Creation

Utilizes Person class New data fields in Person class

Orientation Avatar Major

Intelligence attribute will be removed.

Page 39: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Person Class Contains:

Playername Password Location(x,y,z coordinates and orientation) Avatar Major Knapsack Number of challenges completed GPA

Page 40: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player Creation and Login When creating a character, the data

will be sent to the server. Server will return a success or error

code. Login

Username and password will be sent to server

Login success Player data is sent to the client.

Login failure

Page 41: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Player creation and Login

All communication will be handled through the protocol handler

Page 42: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Game status Info Display (Active Players)

Syed Mohammed

Page 43: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee
Page 44: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Module Description Event Handling Module

Input- Fired By the Tab Key Process- Action Listener for the Tab Key Output- Notifies the coordination Module

Coordination Module Input- Notification from the event handling module Process- Queries the database for the list of active players Output- Gives the list of active players to the display module

Database Module Returns a list of active players in response to the query form the

coordination module Display Module

Input- Gets the list of active players from the coordination module Process- Arranges the data in a desired fashion Output- Displays the information on the screen.

Page 45: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Information Displayed

Name GPA Avatar ID Location

Page 46: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Client Generated Challenge Triggers

Adam Sail

Page 47: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Outline

Current Situation Goals Examples Implementation Dependencies

Page 48: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Current Situation Hard coded challenges

Pencil, Paper, Professor Head Limitation on number of hotspots

InteractionManager::Init 3 hotspots per/map

Hard coded display challenge code CWatsonGamePlay::DisplayChallenge(

) Professor Heads challenge only

Page 49: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Goals

Fix the code to handle challenges Make the client query the server for

challenges Add more hotspots to generate

challenges Walls, Floor, Objects Add a level of randomization to

increase replay value

Page 50: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Examples

Zelda

Walking into walls presents Link with an obstacle

Walking into view of enemies presents danger

Page 51: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Examples continued…

Add HotSpots to walls and other locations

Random set of challenges to increase replay value

Page 52: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Implementation

Load a set of possible player challenge hotspots into a data structure by messaging the server Some Academic and some Reslife

When a player collides with an Academic or Reslife HotSpot, do a random selection on the set of loaded challenges

Page 53: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Dependencies

Scoring System Server must be able to receive and

answer requests for hotspots Database must differentiate

between Academic and Reslife hotspots

Page 54: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Game Statistics Button

WooJin Lee

Page 55: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Statistics as a new function Currently there are no game

statistics present in the game Game statistics will be helpful in

giving players relevant information to track their progress against other players.

Called up via the F1 button, will go away once the button is no longer pressed

Page 56: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Game Statistics Workings

Client Server

Database

Requests Stats

Requests Information

Sends Information

Sends Stats

Screen

Shows Stats

Page 57: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Statistics Shown

Information that will be relevant and useful to the player• # of challenges passed• Avg. GPA of all players in game• Most popular major• Avg. playtime of all players in game• etc

Page 58: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Client Integration

Jessie Yu

Page 59: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Code Repository CVS

Source code management software

Access to the latest code

Avoid conflicts Organize the modify

history

Page 60: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

During Coding Phase

Make sure the source compiles If not, find out the problem

Run the game during the meetings to discuss about any existing problems

Page 61: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

During Integration Phase

Minimize redundancy All functions are well-commented Consistent commenting style

Page 62: Client Group Jessie Yu Nicole Mendolera Lee Seversky Dave Alazraki Min Kang James Luk Syed Mohammed Adam Sail Woo Lee

Test Plan

Test for requirements Incorrect or missing functions Interface errors Performance errors

Test as a regular player Third-party testing