5b8ebb7a35
testing
235 lines
23 KiB
Plaintext
235 lines
23 KiB
Plaintext
v1.17 (27. September 2012)
|
|
Note: this version has breaking changes! don't try to use it with clients with older PUN versions
|
|
Updated: PUN version string to "1.17"
|
|
Updated: client library (the dll) to v3.0.1.14. This fixes an exception and adds some better iOS 5 udp-socket fixes (see release_history.txt)
|
|
Fixed: Player list checking when client joins. The client now first checks the local player-list with the list from server. Then calls OnJoinedRoom. (was: the other way round)
|
|
Fixed: observing a rigidbody via a PhotonView was bugged (velocity and angular velocity were mixed up)
|
|
Changed: PhotonNetwork.SetLevelPrefix() is now short typed. It practically never happens that you have more than 32k levels (and short saves a bit of traffic)
|
|
Changed: Reliable delta compression now uses a different format and is a bit leaner
|
|
Changed: The data you produce in OnPhotonSerialize is sent is now sent completely and uncompressed, if the length of it changes to previous sends. If length doesn't change, we assume the data content and order is same as last time
|
|
Internal: OnPhotonSerialize data is trasported in a hashtable in: key 1 original, 2 compressed, 3 list of "true" null values (when using compression)
|
|
Internal: Instead of overriding compressed data[] into Hashtable key 1, this now uses key 2 (and removes key 1). this makes it easy to decide if anything was compressed at all
|
|
Internal: PhotonView.lastOnSerializeDataSent and .lastOnSerializeDataReceived are now object[]
|
|
Internal: OnSerializeWrite now uses an int-array to send view ID, timestamp and level-prefix
|
|
Added: output for ping + variance to PhotonStatsGui (in health values)
|
|
Added: Event / callback method OnPhotonMaxCccuReached. This is called when the CCU limit for your title is reached (this means: either a Cloud subscription limit or a Photon Server license limit is reached)
|
|
Changed: OnPhotonMaxCccuReached might be called after authentication. When it was called, PUN will automatically disconnect. The player might re-try later on.
|
|
|
|
|
|
v1.16.2 (3. August 2012)
|
|
Fixed: version 1.16 didn't compile for non-Editor environments because the ServerSettings used EditorClasses but is needed at runtime
|
|
Internal: In SendMonoMessage, replaced List<T> with HashSet<T> which has a constant lookup time for .contains
|
|
Changed: Some foreach into for loops
|
|
|
|
v1.16 (3. August 2012)
|
|
Updated: To being a Unity 3.5.3 package
|
|
Updated: To Unity 4 compatibility
|
|
Fixed: In-room player list didn't include players who didn't set any properties (no name and no custom properties)
|
|
Fixed: PhotonViewInspector now displays owner as null if not set, instead of showing the PV as sceneView
|
|
Updated: To new client lib. This is now thread safe, which means that a thread could call SendOutgoingCommands in intervals, as fallback when Update() is paused for too long
|
|
Updated: Usage of the lib's NetworkSimulationSettings property (this is an internal change)
|
|
Updated: Some links in the Setup Wizard window became outdated and are now fixed
|
|
Updated: InstantiateSceneObject to use FindObjectsOfType less often, which improves performance
|
|
Changed: Methods that are intended for PUN-internal use are now becoming internal or private instead of public. Public methods and classes are the ones really meant for game development
|
|
Internal: RemoveAllInstantiatedObjects now also (re)sets the cacheInstantiationCount to 0
|
|
Internal: Updated to new account service
|
|
Internal: PhotonEditor was modified to be extended and customized. Saves if the setup wizard did open at least once. Also gets less updates.
|
|
Added: JoinRandomRoom overload to use expectedCustomProperties. These can filter which properies a room must match to join it randomly.
|
|
Changed: Documentation to be generated from code and topic files. This provides a complete reference documentation. The pdf is still the best option for a single-file document.
|
|
Changed: Documentation was extended. "Timing for RPCs and Loading Levels" and the topics about the GUI elements available is new.
|
|
Updated: The optional GUIs are now draggable windows and a bit cleaned up
|
|
Changed: ServerSettings class has another value that needs serialization (maybe this means your serverSettings will have to be re-written after update).
|
|
Updated: PUN version string to "1.16"
|
|
|
|
v1.15 (11. June 2012)
|
|
Fixed: PhotonMessageInfo.timestamp. The conversion of the sent ms-timestamp to a second-based timestamp double value was imprecise
|
|
Fixed: Room-filtering for join random room did not work, cause a parameter code was wrong. Now, filtering works as expected.
|
|
Changed: The Marco Polo Tutorial is no longer packaged but in a sub-folder of PUN. The scene/project for this is complete but in best case, you still work through the tutorial pdf.
|
|
Added: short paragraph about the tutorial-result being in the PUN package to tutorial text
|
|
Changed: OnFailedToConnectToPhoton is now called when the connection could not be established, OnConnectionFail is called when a established connection fails. The difference between both is sometimes minimal. In either case, OnDisconnectedFromPhoton is called afterwards, too.
|
|
Changed: description of PhotonNetworkingMessage.OnDisconnectedFromPhoton, PhotonNetworkingMessage.OnConnectionFail and PhotonNetworkingMessage.OnFailedToConnectToPhoton according to above's changes
|
|
Added: Warnings to log console when connections fail (showing the current address and a hint what might be wrong)
|
|
Changed: If a script doesn't write any data to the stream in OnPhotonSerializeView(), then this view's update is not sent. This allows you to skip updates from within your own logic. Simply don't fill anything into the stream.
|
|
Changed: Only when DeltaCompression is active, copies of sent and received data are cached. You can't change a PhotonView's synchronization method on the fly (that didn't work before, either).
|
|
Fixed: MarcoPolo-Tutorial: audio was missing
|
|
Updated: PUN version string to "1.15"
|
|
Updated: to latest client lib v3.0.1.11 (some fixes from previous builds)
|
|
|
|
v1.14 (08. May 2012)
|
|
Fixed: OnSerializePhotonView is always ONLY called when at least one other player is connected. This is by design. What has changed is that offlineMode will now also no longer run OnSerializePhotonView.
|
|
Fixed: Duplicate IDs when duplicating Scene PhotonViews (they are now updated correctly).
|
|
Improved: When connected to the lobby, countOfRooms is based on the room list length for improved update rate.
|
|
Fixed: When the connection 'breaks', via a disconnect call the network state will be reset properly. This mainly fixes the behaviour of iOS apps going to the background (which drops the connection).
|
|
Fixed: Bug which kept authorize from being encrypted. Authorize encryption is now enabled by default. The AppId is now only sent in the op authorize (v1.14.2)
|
|
Updated: PhotonStatsGui. This simple component can be attached to gameobjects and shown with shift+tab. It now shows gaps in send- and dispatch-intervals. If those go beyond a few milliseconds, the game FPS obviously stutters which might cause connection issues.
|
|
Updated: doc for ActorProperties, ErrorCode, GameProprties, EventCode, ParameterCode, OperationCode.
|
|
Updated: Internally used client library to latest release v3.0.1.6
|
|
Updated: PUN version string to "1.14"
|
|
Internal only:
|
|
Renamed: OpCreateGame is now OpCreateRoom, OpJoin -> OpJoinRoom, OpJoinRandom->OpJoinRandomRoom OpSetPropertyOfGame -> OpSetPropertyOfRoom
|
|
Renamed: ParameterCode.ActorProperties -> ParameterCode.PlayerProperties
|
|
Renamed: ParameterCode.GameId -> ParameterCode.RoomName
|
|
|
|
v1.12 (18. April 2012)
|
|
Fixed: playerList and otherPlayerList are now updated when the local player's id changes. In 1.10, this caused issues when leaving a room
|
|
Fixed: Extension method for Hashtable StripKeysWithNullValues(), used to remove properties set to null
|
|
Fixed: Custom properties which are set to null, are now synced and removed everywhere
|
|
Added: PhotonNetwork.SetPlayerCustomProperties to make actor properties more comfortable
|
|
|
|
v1.10 (16. April 2012)
|
|
Added: Info on how to activate Photon Cloud Subscriptions that are bought through the Assset Store (this currently requires a mail by you). See readme.txt
|
|
Fixed: OnLeftLobby is now called as expected
|
|
Fixed: OnLeftRoom is now called as expected (also on disconnect from game server)
|
|
Fixed: OnSerialize issue with null as object
|
|
Fixed: PhotonNetwork.time now keeps it's precision even with high values for ServerTimestamp (fixed it's casting). This will update every ~15ms by default.
|
|
Changed: playerList and otherPlayerList now return Player[] instead of List<Player> (simpler conversion)
|
|
Changed: Optimized playerList and otherPlayerList. They are now cached and only created when some player is added or removed
|
|
Added: PhotonNetwork.insideLobby
|
|
Added: Comments for enum PeerState
|
|
Added: In PhotonServerSettings you can now chose Offline mode
|
|
Removed: PhotonNetwork.Instantiate(GameObject go, ...) variant. Use a resource name instead (folders work).
|
|
Removed: PhotonNetwork.Destroy(int). Use PhotonNetwork.Destroy(PhotonView) instead.
|
|
Added: Vital Network Statistics. These will help analyze issues with client-to-server communication by provinding (limited) insight in the client's timing. See below.
|
|
Added: PhotonNetwork.NetworkStatisticsEnabled, .NetworkStatisticsReset and .NetworkStatisticsToString to control and get the vital stats.
|
|
Fixed: OnFailedToConnectToPhoton() is no longer called for any connection loss but only while the connection is being established. Note: OnDisconnectedFromPhoton is called, too, to let you know when the connection is closed.
|
|
Added: enum DisconnectCause for OnFailedToConnectToPhoton and OnConnectionFail
|
|
Added: new callback/MonoEvent OnConnectionFail. This provides a DisconnectCause that hints at the cause for a connection loss. Note: OnDisconnectedFromPhoton is called, too, to let you know when the connection is closed.
|
|
Added: Wizard now has a button to bring you to the Photon Cloud's Dashboard page (login)
|
|
Fixed: An issue where Unity recompile (any file) caused the PhotonServerSettings to be wiped if the Wizard was open
|
|
Updated: documentation JoinGame -> JoinRoom
|
|
Updated: client library to a intermediate version (not yet released but improved with new features): v3.0.1.305
|
|
Updated: to client lib v3.0.1.3 and added related release_history.txt
|
|
Fixed: removed 3.5+ compile warnings about PrefabUtility
|
|
|
|
v 1.9.6 (20 March 2012)
|
|
New: PhotonNetwork.InstantiateSceneObject to spawn scene based objects that persist even if the current master client drops (usefull for AI etc.)
|
|
Workaround: calling LeaveRoom in Disconnect to prevent a rare bug where players get stuck in room while being disconnected.
|
|
Improved: offline mode will now also fire OnJoinedRoom after calling CreateRoom
|
|
Fixed: No null playerName when using offline mode
|
|
Fixed: MC and ID's not set correctly after switching from offline mode to online
|
|
|
|
v1.9.5 (05 March 2012)
|
|
New: Delta compression has been added to the observe option of reliable PhotonViews. This greatly reduces the network bandwidth.
|
|
Fixed: OnLeftRoom error.
|
|
Fixed: Stats timer didn't reset
|
|
Moved: OnPhotonSerializeView and OnPhotonInstantiate to enums.cs (PhotonNetworkingMessages)
|
|
|
|
v1.9 (27 February 2012)
|
|
Fixed: Bugfix for cleanup after a player left. (bug introduced in 1.8)
|
|
Fixed: PUN viewID assignment after conversion from Unity Networking
|
|
Added: More checks to validate PhotonViews (PhotonViewIDs are stripped from Prefabs but GOs in the Hierarchy must have one).
|
|
Removed: Removed TODO's from PhotonNetwork and made Destroy behaviour more consistent: Players can only destroy objects that they own, the master client can destroy everyones objects.
|
|
Changed: PhotonNetwork.Instantiate now requires a PhotonView at the root of a prefab
|
|
Changed: PhotonNetwork.Destroy(GameObject go) required the gameobject to be created via PhotonNetwork.Instantiate
|
|
Added: Summary and Example for each of the PhotonNetworkingMessage values (each names a "callback" method used by PUN)
|
|
Added: PhotonNetwork.Instantiate overloads which take a prefab's Name to instantiate. You no longer need to pass a GameObject for a asset that's in the Resouces anyways.
|
|
Changed: PhotonNetwork.GetRoomList() now returns RoomInfo[] instead of a Room[]. Simply change the type! RoomInfo a different class but behaves like the rooms did.
|
|
Added: RoomInfo class, as base for Room. The RoomInfo is what you get in room listing: PhotonNetwork.GetRoomList() and you can't modify RoomInfo (you're not yet in those rooms)
|
|
Added: Room.SetCustomProperties() and PhotonPlayer.SetCustomProperties() to add/update custom properties to players or rooms. The key of those must be string! You can't currently delete customProperties from the server (but set them null). This is likely to change.
|
|
Added: Room.customProperties and PhotonPlayer.customProperties as getter for the custom properties you set. These sync once set.
|
|
Changed: Custom room properties are no longer automatically listed in the lobby! see CreateRoom() note below.
|
|
Added: CreateRoom() overload that takes string[] propsToListInLobby as last parameter. This defines which custom properties of your room get into the lobby. By default no other props get listed. So if you want to set "map" and have that in the lobby, apply it by CreateRoom().
|
|
Added: Check if values are changed more than a minimum before they are sent. Floating point precision for positions and rotations cause many updates and messages, so these thresholds help skip updates that are too tiny to notice. See note below.
|
|
Added: PhotonNetwork precisionForVectorSynchronization, precisionForQuaternionSynchronization, precisionForFloatSynchronization properties.
|
|
Added: Option to not join the lobby and respective callback. Use PhotonNetwork.autoJoinLobby to set and implement OnConnectedToMaster() instead of OnJoinedLobby(). You can join random games, create or join named games just fine, without the lobby.
|
|
Changed: PhotonNetwork.autoCleanUpPlayerObjects is now done by server and can be set per room. In a room, all clients adhere to the room's setting (as set when the first player calls create). This should solve some rare issues due to racing conditions. The Master is not doing extra work anymore for this.
|
|
Added: Room.autoCleanUp. This property tells each client if the room actually cleans up buffers for players that leave. Set when the room is created to the then current value of PhotonNetwork.autoCleanUpPlayerObjects.
|
|
Changed: PhotonNetwork.autoCleanUpPlayerObjects fires an error when changed while in a room
|
|
Fixed: isMasterClient and PhotonNetwork.masterClient for some rare conditions.
|
|
Fixed: PhotonPlayer.ToString() returned null, if no name was set. This now returns "".
|
|
Added: PhotonNetwork.unreliableCommandsLimit which could be used to fine tune how many of the most recent unreliable messages should be dispatched while the rest is skipped. This has a useful default, so you don't really have to care.
|
|
Added: Initial version of PhotonStatsGui script, which shows messages total and for a interval. This is giving a first impression of the message-usage of your games. This will be extended.
|
|
Added: Profiler samples to SendOutgoingCommands and DispatchIncomingCommands. These tell you how often they run (in some frames only) and how long.
|
|
Changed: Internally, SendOutgoingCommands() is now called as long as there are outgoing commands queued. This will produce UDP packets when absolutely needed but stabilizes the connection, especially when joining games and getting a lot of messages.
|
|
Changed: The connectionStateDetailed is now changed before PUN calls your OnFailedToConnectToPhoton(), so you could re-connect from inside of that method.
|
|
Updated: To Photon Unity3d client lib v3.0.1.1
|
|
|
|
|
|
v1.8 (25 January 2012)
|
|
Added: changelog tp PUN package
|
|
Fixed: a bug that occured when calling a PhotonNetwork.Instantiate in the same frame after calling a PhotonNetwork.Destroy.
|
|
Changed: InitializeSecurity made obselete. requestSecurity is now true per default, this will encrypt authenticate(the APPID etc.) All normal messages (RPC etc) are NOT encrypted ATM.
|
|
Removed: instances of GAME to ROOM inside PhotonNetwork.(Please mind isNonMasterClientInGame' -> 'isNonMasterClientInRoom')
|
|
Added: new statistic: PN.countOfPlayersInRooms
|
|
Changed: OnPhotonPlayerDisconnected is now called AFTER possible MasterClient switch
|
|
Changed: OnPhotonPlayerDisconnected is now called AFTER the playerList (and playercount) has been updated: The player is first removed from the playerlist.
|
|
Changed: OnPhotonRandomJoinFailed is now properly called after RandomJoin failed because an empty room was accidently joined. Previously OnPhotonJoinRoomFailed would be called instead.
|
|
Changed: PhotonNetwork won't generate a player name. Instead the Worker Demo does this when no name was applied yet. (player names are synced automatically when set)
|
|
|
|
v1.7:
|
|
Changed: renamed "Room" to "Game" in event/callback methods for OnPhotonCreateGameFailed and OnPhotonJoinGameFailed. This is important to adjust!
|
|
Changed: PhotonViews are now usable via Awake() on any script (previously they were setup between Awake and Start)
|
|
Fixed: No more broken connection if Join/Create/JoinRandom/LeaveRoom is called during connection or disconnection: an error is logged instead.
|
|
Changes: cacheInstantiationCount is ONLY reset in LeftRoomCleanup() if autoCleanUpPlayerObjects is true
|
|
Fixed: cacheInstantiationCount is now caompared to ushort.MaxValue (with u in ushort)
|
|
Added: New GameVersion argument to Connect*, plus new PUN version. These version strings make sure only clients that use the exact same game version AND PUN version will be able to play together.
|
|
Added: Information about versioning in documentation
|
|
Changed: Unregisters allocated viewIDs after PhotonNetwork.Destroy*
|
|
Fixed: Compatibility with Unity 3.5 (excluding Flash export for the time being)
|
|
Changed: Destroy was sent twice for views in some cases. Cleaned up. As this was no real bug, this is no fix.
|
|
Updated: to new client lib (v3.0.0.9)
|
|
Fixed: Relatively rare encryption issue which led to a disconnect.
|
|
|
|
v1.6:
|
|
Updated: Client library to v3.0.0.8 which brings important fixes and some Unity-targeted performance optimizations
|
|
Changed: Default update rate is 10/second now, which is a better standard (send-rate stays at 20/second)
|
|
Changed: During disconnect, operation responses are now ignored. Example: Join a random game, then disconnect before entering the room. This now disconnects you (instead of getting you in the room).
|
|
Changed: Internals how the PhotonStream works. This is now leaner and faster and is the first step to optimized syncing
|
|
Note: This is incompatible with previous PUN versions. Don't run separate PUN versions in one game
|
|
|
|
v1.5:
|
|
Fixed: Background thread now starts when message queue is paused (for loading something, by setting isMessageQueueRunning to false)
|
|
Fixed: Destroy(gameObject) now removes the instantiate from the server's cache
|
|
Fixed: Some of the Log output was not included in "more verbose" log levels
|
|
Updated: Client library to that of Photon Unity SDK v3.0.0.7 which uses less memory and gives you some performance if your game causes a lot of traffic
|
|
Removed: some obsolete values
|
|
Added: LoadbalancingPeer class and moved aroud some other classes. The goal is to extract some classes for general use in DotNet (without Unity, if needed)
|
|
Note: If you want to host your own Photon server please update to Photon 3 SDK RC7 (it has some memory fixes, too)
|
|
Note: Destroy() for views is not yet working for players who join late into existing games. This is not a buffered action. We're on it.
|
|
|
|
v1.4.1:
|
|
Re-Submit same package to asset store.
|
|
|
|
v1.4:
|
|
Fixed: Caching of RPCs and Instantiates. This is a major fix, affecting all situations where players join a room where RPCs and Instantiations were done previously. This fix is "hidden" by the API, so no code changes are necessary in a game.
|
|
Changed: The new cache is no longer cleaned by the server if someone leaves. The "MasterClient" will delete another user's RPCs and Instantiations, when someone leaves (unless auto cleanup is turned off).
|
|
Changed: Internals of RPCs and Instantiates. Their events are streamlined and contain only data that's not a default value. This is incompatible with v1.3 clients.
|
|
Fixed: Position and rotation synchronization is now done local to the object. This helps with positions relative to ancestor objects.
|
|
Fixed: PhotonNetwork.Destroy().
|
|
Improved: If you disable the message queue (while loading levels), a thread will keep the connection alive. Timeouts are less frequent this way. Use isMessageQueueRunning.
|
|
Improved: The framework now discards older incoming unreliable updates. By default, everything past the newest 20 unreliable updates (like pos syncs) gets skipped. Reliable data is not affected.
|
|
Changed: RPC calls now can be called without any parameters (null), too.
|
|
Added: PhotonNetwork.SendOutgoingCommands() which is useful to send RPCs before the client will load (and suspend sending) for a while.
|
|
Updated: To new Photon client library v3.0.0.6.
|
|
|
|
v1.3:
|
|
Changed: MasterClient handover: When leaveing a room, the MasterClient becomes null. It only is available inside a room.
|
|
Changed: PhotonNetwork.time is now a double with millisecond precision and always positive. It's 0 at server-start and goes up to ~4294967, where it will overflow to 0 again. This happens every ~49 days.
|
|
Fixed: A call to Disconnect() while not being connected set a state that made it impossible to Connect() later on.
|
|
Changed: Connect() is only possible when disconnected. Disconnect() is only allowed when the client is connected.
|
|
Added: enum PhotonNetworkingMessage now contains all method names that could be called by our framework (in no particular order). Check it's description.
|
|
Changed: A few internals to improve performance and reduce object creation (and save some GC calls). Example: SendMonoMessage().
|
|
Updated: client library is now from Photon Unity SDK v3.0.0.5
|
|
Changed: PhotonNetwork will now limit incoming unreliable messages to 20 instead of dispatching everything. This can cause gaps in updates but lets a client catch up much faster after loading a level (which pauses dispatching of incoming events).
|
|
Fixed: Converter will now make JS scripts extend Photon.MonoBehaviour after conversion.
|
|
Updated: PhotonView and inspector to also handle scene views on disabled objects. Before, these could collide easily. Please give feedback, if PhotonViews cause errors.
|
|
|
|
v1.2:
|
|
Fixed: DemoWorker, random double spawn bug fixed. Loading the same scene and scripts caused initialization errors
|
|
Fixed: LevelPrefix bug for newly spawned PhotonViews (after setting the prefix)
|
|
Fixed: OnDestroy message
|
|
Fixed: Suppressed error messages when setting a name when not connected.
|
|
Fixed: Master client handover fixed
|
|
Fixed: SetSendingEnabled() and SetReceivingEnabled() which was doing the opposite of what you expected.
|
|
Added: CreateRoom now has parameters for: maxplayers, visible and open
|
|
Added: Room.maxPlayers, .open and .visible will now be synced and affect the lobby
|
|
Added: PhotonView OnSerialize now only runs on scripts on active gameobjects
|
|
Added: PhotonVIew.isMine also returns true on scene objects for the masterclient
|
|
Added: Server setup wizard, which offers instant access to a cloud account
|
|
Added: Server settings file
|
|
|
|
v1.1:
|
|
Fixed: Server "Access Denied" issue on start on XP machines.
|
|
Fixed: observing classes that inherit Monobehaviour, but not directly.
|
|
Fixed: scene view ID errors when using prefabs (APPLY from scene to project)
|