Files
UnrealEngineUWP/Engine/Plugins/NetcodeUnitTest/NUTUnrealEngine4
John Pollard 504d0bebbd Copying //UE4/Dev-Networking to //UE4/Main (Source: //UE4/Dev-Networking @3004032 )
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2939164 on 2016/04/10 by John.Barrett

	Updated base UNetConnection netcode to be bit-based, rather than byte-based (to optimize packet size with PacketHandler's and Oodle) - this CL is interdependent with subsequent CL's.

	Fixed an issue with FBitReader, when inserting a non-byte-aligned number of bits, where it would fail to zero the unused bits, in the last byte - this led to corrupt reads, in the new termination bit code (subsequent CL).

	Added better overflow detection for FBitWriter - plus other additional asserts.

	Fixed a potential bug with control channel messages, where non-byte-aligned control channel messages that were queued for later sending, were stored as byte-aligned, causing bad (too large) data to be sent.

	Optimized MAX_PACKET_HEADER_BITS to save a bit.

Change 2939169 on 2016/04/10 by John.Barrett

	NetcodeUnitTest maintenance.

	Added unit test for testing bit reader/writer limits.

	Added 'LogHex' debug command, for logging a hex-editor-style dump of selected memory data - without requiring a dependency on NetcodeUnitTest.

Change 2939170 on 2016/04/10 by John.Barrett

	Added work-in-progress DoS/DDoS unit test.

Change 2943718 on 2016/04/14 by John.Pollard

	Allow override of replay session ID + start using match ID for replays

Change 2944678 on 2016/04/14 by Ryan.Gerleve

	Merging using Release-4.11_to_Dev-Networking:

	4.11 hotfix change: fix for an assert that can occur when network clients call AActor::SetReplicates. SetReplicates will now only modify RemoteRole if Role is Authority and warn otherwise.

	#jira UE-27646

Change 2946909 on 2016/04/18 by John.Pollard

	Misc seamless travel cleanup + sanity checks

	* Cleanup the naming of variables and logic used to pick which actors will transfer to new world during seamless travel to more explicitly convey intent
	* Warn when there is no context for a world when destroying actors, it's likely that this world is the floating world during seamless travel, and if we hit this case, something is likely in a bad state

Change 2948883 on 2016/04/19 by John.Pollard

	GitHub request: https://jira.ol.epicgames.net/browse/UE-29385

Change 2952109 on 2016/04/21 by John.Barrett

	Fixed false positive with FBitWriter overflow error log, in PackageMap code.

Change 2953639 on 2016/04/22 by John.Barrett

	Fixed shadowed local variable - UE-29829

Change 2958267 on 2016/04/27 by John.Pollard

	Make vision manager more resilient to bad network data from old replays

Change 2958410 on 2016/04/27 by John.Pollard

	Fix incorrect warning when ReceivedBunch fails for replays

Change 2958411 on 2016/04/27 by John.Pollard

	Replay backwards compatibility fixes.

	* Mark custom properties/RPC's as incompatible if there was an error reading them in the stream, and ignore from there on out.
	* Don't close connection when failing to read properties on clients now that we can skip over this info easily.

Change 2960134 on 2016/04/28 by Ryan.Gerleve

	Protect against adding null player controllers to the out list of UEngine::GetAllLocalPlayerControllers.
	See https://udn.unrealengine.com/questions/289948/uenginegetalllocalplayercontrollers-pushes-a-null.html

Change 2960617 on 2016/04/29 by John.Barrett

	Made way for engine version code refactor.

Change 2961050 on 2016/04/29 by John.Pollard

	Log when we send hello to server in pending net game

Change 2961468 on 2016/04/29 by John.Pollard

	ReplayCompat: Show name of incompatible property when logging + log when we don't read correct number of bits + cleanup

Change 2964357 on 2016/05/03 by John.Barrett

	Optimized netcode SerializeInt\WriteIntWrapped, to allow compile-time calculation of the data bit size.

	The runtime calculated version of these functions, has been adjusted to not assert on 1-bit sized writes - to fix a false positive in Paragon.

	Adjusted some FMath functions, to allow CONSTEXPR for compile-time calculation.

Change 2964361 on 2016/05/03 by John.Barrett

	Update unit test to work with new integer serialization code.

Change 2964831 on 2016/05/03 by John.Barrett

	Back out net serialization changes for now.

Change 2964832 on 2016/05/03 by John.Barrett

	Back out unit test net serialization change.

Change 2964838 on 2016/05/03 by John.Barrett

	Fix Paragon false positive netcode assert.

Change 2966257 on 2016/05/04 by John.Pollard

	Unify network version logic + move to core

	* Move network version logic to core
	* Formalized concept of compatible network/replay changelist
	* Fixed up UDemoNetDriver to work with new version concepts
	* Fixed up Orion/other samples in the same way
	* This is first step to officially supporting backwards compatility for replays, and possibly networking in general (would be opt-in if so)

Change 2966657 on 2016/05/04 by John.Pollard

	Deprecate GEngineNetVersion, GEngineMinNetVersion and GEngineNegotiationVersion

Change 2968945 on 2016/05/06 by John.Pollard

	Print name of object that has NULL level

Change 2970529 on 2016/05/09 by Bart.Bressler

	Add an optional "CapturePercentage" command line parameter that has a percentage chance of generating capture files per connection

Change 2971233 on 2016/05/09 by Bart.Bressler

	Update Oodle DLLs in Orion

Change 2975585 on 2016/05/12 by Bart.Bressler

	- Keep track of STAT_NumNetActors on clients as well as servers
	- Change STAT_NumActors to just be the world actor count instead of using FActorIterator (FActorIterator was causing a hitch)

Change 2979207 on 2016/05/16 by Bart.Bressler

	Remove FActorIterator loop around world actor count retrieval in UNetDriver::TickFlush

Change 2981198 on 2016/05/17 by John.Pollard

	Changes to support FN replays

	* Save streaming levels within network stream
	* Don't load streaming level if it's already in the list
	* Remove need for meta data

Change 2981201 on 2016/05/17 by John.Pollard

	Forgot to check in

Change 2982075 on 2016/05/18 by John.Pollard

	Cache network checksum so we don't spam log (we call this function more now)

Change 2982092 on 2016/05/18 by John.Pollard

	Lower verbosity of log

Change 2986571 on 2016/05/23 by Bart.Bressler

	Fix issue where oodle wasn't getting enabled in shipping correctly

Change 2988628 on 2016/05/24 by Bart.Bressler

	When processing captures with the Oodle commandlet, only check files that end with "ucap" (there might be gzipped files that have the exact same filenames, for example)

Change 2988838 on 2016/05/24 by Bart.Bressler

	- Add script to pull down captures from S3
	- Add script to do the whole process from pulling down captures to generating dictionaries

Change 2994575 on 2016/05/31 by John.Pollard

	Include networkversion.h in UnrealNetwork.h, this is so that older code will continue to compile that relied on network version code that used to be in this file

Change 2996026 on 2016/06/01 by John.Pollard

	Add network version to FArchive

Change 2996043 on 2016/06/01 by John.Pollard

	Store network version on NetConnection/Bunch, replays properly initialize these to current replay network versions

Change 2996081 on 2016/06/01 by John.Pollard

	Remove unused FInBunch constructor

Change 2996544 on 2016/06/01 by John.Pollard

	Make sure network version is correct for external data + set on connection after checkpoint

Change 2996731 on 2016/06/01 by John.Pollard

	Set game network version for Orion

Change 2997042 on 2016/06/01 by John.Pollard

	Fix issue when game server times out, and replay service turns off live replay flag, and we fail to download last chunk + more log info when replay http chunk downloading fails

Change 2997908 on 2016/06/02 by Ryan.Gerleve

	Use the smoothed mesh transform for characters when recording client replays.
	Since the root component's transform may only be updated periodically, this greatly improves the quality of character movement.

Change 2998001 on 2016/06/02 by Ryan.Gerleve

	Set the NetDriverName in the replay spectator's constructor.
	The replay spectator will always be associated with a DemoNetDriver and this fixes cases where GetNetMode could return the wrong value before the net driver name was set (such as during BeginPlay).
	Also inverted the logic in IsForPlayback() to make it more intuitive.

Change 2998636 on 2016/06/02 by John.Pollard

	If we don't have enough external replay samples, use the best one

Change 2998637 on 2016/06/02 by John.Pollard

	Clamp replay time

Change 2998705 on 2016/06/02 by John.Pollard

	Replay fixes:

	* Fix issue when scrubbing to time 0, and first chunk takes longer than normal to download
	* Better streaming logic that works better with new backend delay logic
	* Better handling when replay flips from live to not live
	* Don't update StreamTimeRangeStart/End unless we got those values in the header response
	* Handle when we fail to download a chunk and HighPriorityEndTime is active

Change 2998832 on 2016/06/02 by Ryan.Gerleve

	Fix an issue that could cause the replay spectator controller to not get the notification that the spectator class has been received while recording a client replay.

Change 2999054 on 2016/06/02 by Ryan.Gerleve

	Added ability to set a maximum desired time budget for replay recording. Once the budget is reached, remaining actors will have to wait until the next frame to try to replicate.

Change 2999057 on 2016/06/02 by Ryan.Gerleve

	Fixed an issue that could cause the main game world to use the incorrect vision manager when deathcam was enabled and the replay recording time budget was set very aggressively.
	In this case, AOrionVisionManager2::PostInitializeComponents would be called before the spectator player controller was spawned in the playback world, causing it to fail to find the local player and not initializing GKillcamVisionManager correctly.

Change 2999749 on 2016/06/03 by Ryan.Gerleve

	RPCs will now be recorded in client replays.
	Cleaned up actor role swapping logic for client recording and re-use it for RPCs.

Change 3000051 on 2016/06/03 by Ryan.Gerleve

	Fix Paragon server crash.

	#jira UE-31618

Change 3001361 on 2016/06/05 by Ryan.Gerleve

	Added support for prioritizing actors during replay recording to get better results when a maximum desired recording time is set.
	Added virtual function GetReplayPriority to Actor, similar to GetNetPriority, but allows different priorities for live networking and replays.
	Moved FCompareFActorPriority to a header so that the DemoNetDriver can use it.

Change 3001365 on 2016/06/05 by Ryan.Gerleve

	Paragon now uses a desired recording time limit and enables actor prioritization for recording the deathcam replay.

Change 3002094 on 2016/06/06 by Ryan.Gerleve

	Missed file from a main merge fixup.

Change 3002417 on 2016/06/06 by Ryan.Gerleve

	Disabling a check to work around UE-31636 for now.

Change 3002547 on 2016/06/06 by John.Barrett

	Added improved 'DebugDump' command option to the Oodle trainer commandlet - this takes UE4 .ucap capture files, and batch converts them into Oodle-example-code compatible .bin files.

	Use through the new BatchDebugDump.bat file.

Change 3002989 on 2016/06/06 by John.Pollard

	Add ability to skip missing/changed properties in FFastArraySerializer

Change 3003072 on 2016/06/06 by John.Pollard

	Fix crash related to new replay backwards compatibility changes

#lockdown Nick.Penwarden

[CL 3004618 by John Pollard in Main branch]
2016-06-07 16:19:22 -04:00
..