These are the release notes for the version of DemonWare v1.80.
 
The intention of this file is to give you a brief overview of where to find
everything you need to get started. 
If you are already using DemonWare, you may particularly be interested in
the section "Upgrading from v1.76" below. 
If you have any further questions, please contact us at support@demonware.net.
 
 
 
=== Available packages and platforms ===
 
The following packages are available for every platform, depending on your 
licensee status with DemonWare:
 - Evaluation package, containing both Matchmaking+ and State Engine libraries,
   headers and example projects
 - Full source Matchmaking+ package
 - Full source State Engine package
 
The Matchmaking+ product consists of the bdLobby library, plus the DemonWare 
Transport layer libraries.
 
The State Engine product consists of the bdPeer library, 
plus the DemonWare Transport layer libraries.
 
The DemonWare Transport layer is included in both products. It consists of the 
following libraries: bdPlatform, bdCore, bdSocket, bdConnection and bdNet.
 
The DemonWare libraries are available for the following platforms:
 - Win32
 - Xbox 360
 - Playstation 2
 - Playstation Portable (PSP)
 - Playstation 3
 
 
 
=== Getting started ===
To get quickly started you should:
 - Extract the package to a location of your choice.
 - Open up the relevant workspace/make/solution file. These are to be found in 
   the root folder of your DemonWare installation.
   You will see each of the example projects,  which you can run, examine, build
   and experiment with.
 - Read the documentation available at 
   https://devzone.demonware.net/documentation/
 
 
=== Note About Matchmaking+ ===
The Matchmaking+ examples are for illustrative purposes only and are set up to 
use a title ID that is also accessible to other evaluators.
As a result functionality may be limited, for example if two evaluators use the
same user ID to log on. 
Upon signing a license for Matchmaking+, or by special arrangement for 
prototyping purposes, you may submit an IMP configuration file to DemonWare. You
will then receive a unique title ID.
 
 
=== Firewall and Network Recommendations ===
 
 - No restrictions should be put on UDP traffic (titles send and receive 
   UDP packets from different ports and to different ports).
 
 - Titles should be allowed to establish outgoing TCP connections to 
   port 3074 (MatchMaking+ only).
 
 - Read the documentation in the "Firewalls & NATs" section of the documentation
   site at https://devzone.demonware.net/documentation/
 
 - The network block for the 1.80 Sandbox Server is 209.131.119.0 - 209.131.119.127.
   It may be necessary to update your firewall rules if outgoing traffic is filtered.

=== Upgrading from v1.76 ===

 Version 1.80 introduces a number of protocol changes to the MatchMaking+ API that are
 NOT backwards compatible to earlier versions. The protocol changes include:
 - HMAC verification of client data
 - To support payload sizes of messages > 64Kb, game clients can now specify the maximum amount
   of data being sent/received in a call to bdLobbyService::connect() (non-xbox platforms only). 
   The size specified should not exceed 512Kb (524288 Bytes).
 
 If you are currently developing under v1.76 and are wishing to upgrade to v1.80, 
 you need to request a new title ID.
 Also note the updated DNS entries for the development authentication and matchmaking servers:
 auth.eval.v1.80.mmp3.demonware.net and 
 lobby.eval.v1.80.mmp3.demonware.net resp.

=== Interface changelist with respect to v1.76 ===

 - bdAuthService::authorizeAccount(), authorizeAnonymous() and authorizeDedicatedHost() no longer
   require an instance of bdAuthInfoRef to be passed in as a parameter. This data structure is now maintained
   internally by bdAuthService. Call bdAuthService::getAuthInfo() to retrieve the authentication info 
   if needed.

 - bdLobbyService::connect() now takes bdAuthInfo* as a parameter (was bdAuthInfo&). 

 - The return value of bdLobbyService::getStatus() has been changed to be of type bdLobbyConnection::Status
   (was bdConnection::Status). This removes the dependency to bdConnection. 
  
 - bdMessageStore::deleteMessages(const bdUInt64 *messageIDs, bdUInt numMessageIDs);
   has been added to allow deletion of a list of messages.
  
 - bdMessageStore::sendMessageToUsers(const bdOnlineUserID *userIDs,
				      bdUInt numUserIDs,
				      bdByteBuffer& payload,
				      bdMessageDeliveryMethod)
   allows sending of a message to a list of online users.
  
  
 - bdMessageStore::sendMessageToTeam(bdTeamID teamID, bdByteBuffer& payload, bdMessageDeliveryMethod deliveryMethod)
   allows the sending of a message to an entire team
  
 - bdMessageStore::getMessagesByType(const bdLobbyMessageType *msgTypes,bdUInt numTypes, bdUInt startIndex,
  	                             bdUInt maxNumMessages, bdBool getOnlyUnRead, bdBool markAsRead, bdBool deleteMessages);
   retrieves a list of messages as indicated by their types
   
 - bdMessageStore::sortMessages(COMPARISON_FUNCTOR comparitor);
   sorts the locally stored messages.
 
 - bdStats::writeMultipleStats(bdStatsSubmission *stats, const bdUInt numStats);
   allows the submission of a list of stats entries.
   
 - bdStorage::listFilesByOwner() and bdStorage::listAllPublisherFiles() now take an optional filename that
   allows listing of files by their names.
  
 - An example application demonstrating the usage of bdKeyArchive has been added.

