| COMP 310 
		 Fall 2015
 | Lec41: Game Issues | 
	
		|            | 
 
Today we will discuss the latest version of the WWJ map package as well as 
any outstanding game issues.
Reminder about garbage 
collecting of Remote objects.
Outstanding API issues:
	- What if the game server receives an unknown data packet?
- Are the well-known messages the same for the client as for the game 
	server?
- How do you reject an team invitation?
- What happens if a game client is already in a team or in a lobby and 
	another player decides to join directly to that team or lobby chat room via 
	the game client, not the game server?
- ICmd2ModelAdapter.addComponent()  
	replaces or adds another?
- Port name assignments to enable server and client to run on the same 
	machine (the class names below are for illustrative and compartive reasons 
	only, substitute the specific class names for the current course):
		- IHost:
		
			- Current?:  
			
			
- Proposed:
				- CONNECTION_PORT_SERVER = 2101
- CONNECTION_PORT_CLIENT = 2102
 
 
- IUser:
		
			- Current?:  
			
			
- Proposed:
				- CONNECTION_PORT_SERVER = 2101
- CONNECTION_PORT_CLIENT = 2102
 
 
- Registry is fine so long as server is started up
		second so 
		that bound name is overwritten with server's 
		IHost stub.
 
WWJ Issues
	- Cannot run demos?
		- Can't run any demo?
- Can't run one of the buttons on the WWJ_Demo?
 
- Weird behaviors?
 
Scheduling coding and testing sessions?    Highly 
recommend that each team attend as many testing sessions before demo day!    
TESTING AGAINST ANOTHER GROUP'S GAME SERVER AND CLIENT IS CRUCIAL!
Current schedule:   See Comp310 home page for tentative 
schedule.
Team Joining Processes
The difficulty in planning for the future or for unknown 
requirements is in not putting value judgements on what might or might not 
happen.
Some team joining possibiliites and their implications:
	- New player picks which team they wish to join:
		- Who creates the team choices?
			- The server creates the team choices, e.g. for games with a fixed 
			number of teams.
- The new players can create new teams.
- Some combination of the two above scenarios, e.g. the server 
			regulates what teams can be made.
 
- Can the new player see who is on a team before joining it?
- Can the system regulate what teams a player can be in at the same 
		time?
			- Most games disallow a player to be on multiple teams 
			simultaneously, though it is conceivable that a team could have 
			non-participating members that only receive information buyt can do 
			anything on behalf of that team.
- Some games have a notion of a central "lobby" or "global group" 
			that are members are a part of 
 
- Team joining "workflow":
			- Requires being able to display a custom UI for team 
			joining. -- Can API support this?
- Two possibilities:
				- New player joins team on the client end -- 
				akin to joining a chatroom where the joining is voluntary.  
				
- New player is told by server to join a team after 
				new player selects a team.   Useful when 
				server needs to first check that it is ok for the player to join 
				a team, e.g. is maximun number of members in team within bounds?   
				Two possibilities
				
					- New player is forced to join a particular team by 
					the server.  -- Can the API support this?
- New player is allowed to reject the joining of a 
					team.   This is similar to an invitation.  
					Note that such an option may allow a player to reject 
					joining a team even though they just indicated they wanted 
					to join a team.  This is essentially an "invite" 
					process -- can the API support this?  
					
						- Can  player be forced to leave a room, e.g. 
						leave a lobby when joining a team?
 
 
 
 
 
- New players are automatically assigned to a team
		- The game server generates the team choices and automatically assigns 
		new players to teams:  Two possibilities (similar to above):
			-  New player is forced to join a particular team by the 
			server.  -- Can the API support this?
- New player is allowed to reject the joining of a team.   
			This is similar to an invitation.   Note that such an 
			option may allow a player to reject joining a team even though they 
			just indicated they wanted to join a team.  This is essentially 
			an "invite" process -- can the API support this?  
			
				- Can  player be forced to leave a room, e.g. leave a 
				lobby when joining a team?
 
 
 
- New players organize a team outside of the game, e.g. by joining a 
	chatroom, and then join that pre-formed team to the game
		- Would require the ability for the game server to be invited to 
		an existing room/team.  -- Can the API support this?
 
 One of the critical issues from above is whether or not a forced join 
to a room/team is allowed.   
 
 
 
(This diagram is just an example and is not 
an exact depiction of this year's connection and team joining API!)

© 2015 by Stephen Wong