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

Post on 15-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Client Group

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

Overall Client Design

Nicole Mendolera

Improvements to the Client Design

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

Player Avatar / 3D Engine

Keeping track of other players Avatar movement Consistent character speed

Opening and Closing Office Doors

Doors are included in current game Do not open or close

Update “scenery behind doors”

Door Knock Logic / Knapsack

Knock on door Will allow door to open or remain

closed Knapsack

Works well just updating it

Player Creation Support

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

Game Status Info

Game Status is shown for active players Names Locations Session times

Challenge Triggers

Currently only 3 hotspots Boring and restricted

Adding new and more exciting challenges

Game Statistics Button

Game Statistics will be shown Includes

Total Playing Time Session Time Other active player totals

Integration

CVS

Uniform Code Comments

Player Avatars / 3D Engine

Lee Seversky

Overview

Player avatar support Current 3D engine discussion Final goals

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.

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.

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

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

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

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

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

Opening and Closing Doors

David Alazraki

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

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

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

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

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

Door Knock Logic & Knapsack Support

Min Sung Kang

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.

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.

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.

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.”

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.

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.

Door Knock Logic &

Player Creation

James Luk

Defining Door Hotspots

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

Hotspots will be defined on the client side.

Knocking Function

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

Knocking sound will be played.

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.

Player Creation

Utilizes Person class New data fields in Person class

Orientation Avatar Major

Intelligence attribute will be removed.

Person Class Contains:

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

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

Player creation and Login

All communication will be handled through the protocol handler

Game status Info Display (Active Players)

Syed Mohammed

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.

Information Displayed

Name GPA Avatar ID Location

Client Generated Challenge Triggers

Adam Sail

Outline

Current Situation Goals Examples Implementation Dependencies

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

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

Examples

Zelda

Walking into walls presents Link with an obstacle

Walking into view of enemies presents danger

Examples continued…

Add HotSpots to walls and other locations

Random set of challenges to increase replay value

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

Dependencies

Scoring System Server must be able to receive and

answer requests for hotspots Database must differentiate

between Academic and Reslife hotspots

Game Statistics Button

WooJin 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

Game Statistics Workings

Client Server

Database

Requests Stats

Requests Information

Sends Information

Sends Stats

Screen

Shows Stats

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

Client Integration

Jessie Yu

Code Repository CVS

Source code management software

Access to the latest code

Avoid conflicts Organize the modify

history

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

During Integration Phase

Minimize redundancy All functions are well-commented Consistent commenting style

Test Plan

Test for requirements Incorrect or missing functions Interface errors Performance errors

Test as a regular player Third-party testing

top related