Commit Graph

16 Commits

Author SHA1 Message Date
jon nabozny
1ba2139c9c Try to catch edge cases for Adding and Removing channels in RepGraph when we may have the updated channels for the same actor.
[at]Ryan.Gerleve [at]Brian.Bekich [at]Bart.Hawthorne
#rb Brian.Bekich, Ryan.Gerleve

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 5152849 via CL 5152867 via CL 5152876 via CL 5154257 via CL 5154320
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5217836 by jon nabozny in Dev-VR branch]
2019-02-26 20:30:26 -05:00
louisphilippe seguin
097b0b7416 Include all traffic 'til the ActorSpawn was ackknowledged in the RepGraph's separate actor discovery budget
#rb ryan.gerleve

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 5117170 via CL 5118098 via CL 5118141 via CL 5119327 via CL 5119549
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5215354 by louisphilippe seguin in Dev-VR branch]
2019-02-26 19:30:54 -05:00
ryan gerleve
f387394a89 Clamp actor locations in UReplicationGraphNode_GridSpatialization2D::GetCellInfoForActor to the world maximum size in case we get bad values and try to allocate a massive grid later on in UReplicationGraphNode_GridSpatialization2D::GetGridNodesForActor.
[REVIEW]

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ryan.gerleve
#ROBOMERGE-SOURCE: CL 5086556 via CL 5086603 via CL 5086605 via CL 5086912 via CL 5089580
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5208852 by ryan gerleve in Dev-VR branch]
2019-02-26 16:59:10 -05:00
louisphilippe seguin
f9ef8824e1 Added optional budget in the RepGraph for data sent when a new ActorChannel is created on a connection. Can be used to improve actor discovery time when loading into a level with alot of dynamic actors packed into a single grid.
#rb ryan.gerleve

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 5063181 via CL 5063878 via CL 5065895
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5139502 by louisphilippe seguin in Dev-VR branch]
2019-02-22 05:56:53 -05:00
mike fricker
b4a1cd22b9 Creative: Prioritize fix for special case (from Josh May)
#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mike.fricker
#ROBOMERGE-SOURCE: CL 5035570 via CL 5035571 via CL 5035572 via CL 5035592 via CL 5041876
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5131137 by mike fricker in Dev-VR branch]
2019-02-22 02:24:40 -05:00
brian bekich
df9596145b Prevent crash if an unexpected rpc is called while preparing a fast shared bunch
#rb ryan.gerleve

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 4950012 via CL 4952135 via CL 4954330
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5027763 by brian bekich in Dev-VR branch]
2019-02-16 04:06:24 -05:00
ryan gerleve
4be5fc6d37 Quick improvements to RepGraph actor prioritization:
-Always prioritize connections' ViewTargets and OwningActors, since they're usually the most important and could get starved out by other actors.
-Increase the default MaxDistanceScaling from 30m to 600m, since 30m didn't have much effect.

#rb brian.bekich, david.ratti

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ryan.gerleve
#ROBOMERGE-SOURCE: CL 4921040 via CL 4921042 via CL 4921044 via CL 4921247 via CL 4926818 via CL 4927017
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5018242 by ryan gerleve in Dev-VR branch]
2019-02-16 01:36:30 -05:00
Ryan Vance
cf29818a4d Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
#rb integration
Unblocking RoboMerge

[CL 4836190 by Ryan Vance in Dev-VR branch]
2019-01-29 17:41:46 -05:00
ryan gerleve
6969dd4bbb Copying //UE4/Dev-Networking to Dev-Main (//UE4/Dev-Main) [at] 4804506
#rb none
#rnx

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-AUTHOR: ryan.gerleve
#ROBOMERGE-SOURCE: CL 4804559 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4804563 by ryan gerleve in Dev-VR branch]
2019-01-24 16:28:06 -05:00
jon nabozny
d14321bf90 Change channel logging to be more information in RepGraph.
[at]Ryan.Gerleve [at]Brian.Bekich [at]Bart.Hawthorne
#rb Bart.Hawthorne

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 4792115 via CL 4792118 via CL 4792120 via CL 4797597 via CL 4797805
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4802923 by jon nabozny in Dev-VR branch]
2019-01-24 14:46:46 -05:00
Ryan Vance
7c51ff94af Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
CL 1 of 8
#rb integration

[CL 4748712 by Ryan Vance in Dev-VR branch]
2019-01-17 18:54:05 -05:00
Jason Bestimt
e7ed7cd3ff Unblock robomerge from Main
#RB:none

[CL 4604382 by Jason Bestimt in Dev-VR branch]
2018-11-28 15:05:11 -05:00
jason bestimt
f2890ac781 --------------------------------------
Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main) [at] 4395008
#rb
#rnx
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4395058 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4398121 by jason bestimt in Dev-VR branch]
2018-09-26 10:08:47 -04:00
bart hawthorne
7a9ed933c1 Copying //UE4/Dev-Networking to //UE4/Dev-Main (Source: //UE4/Dev-Networking [at] 4351996)
#lockdown Nick.Penwarden

#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 4094368 by Ryan.Gerleve

	Restore bunch bitfield optimization from CL 3683745.

Change 4094946 by Ryan.Gerleve

	Fix initialization order & some whitespace

Change 4095976 by John.Barrett

	Speculative fix for unreproducible compile issue.

Change 4134299 by John.Barrett

	Added Hot Reload support for NetcodeUnitTest - almost, but not fully, complete - important for working with Fortnite unit tests, as their execution time can harm productivity.

	Added ability for unit tests to partially rewind/restart execution, at specific stages, to save time.

Change 4134300 by John.Barrett

	Added NetcodeUnitTest hook, for replacing the raw data for specific RPC parameters, on the fly.

Change 4134304 by John.Barrett

	Updated NetcodeUnitTest modules to support Hot Reload.

Change 4157433 by John.Barrett

	Updated DDoS detection, based on review.

Change 4205014 by Jake.Leonard

	Updating the check to make sure that uninitialized components are blocked from doing low level sends before they are entering initialization or are already initialized.

	#Jira UE-61557

Change 4205071 by Jake.Leonard

	Fixing up the spammy logs due to kick attempts on fail auth.

	Also making the reauth message more clear.

	#Jira UE-61696

Change 4224001 by Jake.Leonard

	Merging IPv6 and IPv4 code together. Exposing a getaddrinfo method.

	#Jira UENET-885, UENET-886

Change 4224014 by Jake.Leonard

	New IP Addr changes for Oculus

	#Jira: UENET-885

Change 4224020 by Jake.Leonard

	New IP Addr changes for iOS

	#Jira: UENET-885

Change 4224328 by Jake.Leonard

	Fixing Unix SocketSubsystem compilation issues.

	#jira: none

Change 4224340 by Jake.Leonard

	More Unix compilation fixes

	#jira: none

Change 4225020 by Jake.Leonard

	Fixes for compilation and static analysis

	#Jira: none

Change 4226080 by Jake.Leonard

	Minor Address Fixes

	#Jira: none

Change 4228299 by Jake.Leonard

	Fix the deprecation warnings by removing the macro from the Sockets and IPAddress classes. While these classes are deprecated, can't mark them as such due to how they are generated and used.

	On some platforms that are more picky about these deprecations, they return incorrect warnings that otherwise do not show up on other platforms.

	In addition, expose and add a function for getaddrinfo for IPv6

	#Jira UE-62057, UENET-886

Change 4232410 by Jake.Leonard

	Allow build ids of 0 to not be filtered out incorrectly on Steam.

	#Jira UE-62144

Change 4232500 by Jake.Leonard

	Specify what socket subsystem we want as some platforms override the default and cause resolution issues.

	#Jira UE-62156

Change 4235955 by Brian.Bekich

	Fix for shared rpc serialization with outparm properties

	#jira UE-61946

Change 4235956 by Brian.Bekich

	Add missing set of bClose to FInBunch copy constructor

	#jira UE-62079

Change 4248157 by Jake.Leonard

	Fix IpConnection resolve nuking previous data set, which would wipe away port information. Now we cache off that port data before the clone.

	#Jira UE-62321, UE-62260

Change 4257214 by Jake.Leonard

	Fix v4 mapped addresses comparison such that we up the address to a common address family and then do the comparison. This uses ntop to determine the address differences.

	This fixes hybrid stack issues.

	#Jira UE-62266

Change 4259371 by Jake.Leonard

	Log print for the comparision as a quick test to make sure that the ntops are actually comparing correctly.

	Will remove after test

	#Jira: UE-62266

Change 4265668 by Ryan.Gerleve

	Fix replication for actor components created in blueprints - these components now properly return false from UActorComponent::IsNameStableForNetworking() by default.

	#jira UE-62605

	#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 (reversed) of change#4265561 by Ryan.Gerleve on 2018/08/07 13:13:29.

Change 4266436 by Brian.Bekich

	PR #4875: Remove extra Printf parameter

	#jira UE-61759

Change 4266444 by Brian.Bekich

	PR #4883: Fix compilation of unit test minimal client in shipping

	#jira UE-61857

Change 4266607 by Brian.Bekich

	Handle potential crash in TickWorldTravel

	#jira UE-60547

Change 4267341 by Jake.Leonard

	* Exposing wrapper for getaddrinfo.
	* Adding more fields and new type for gai flags.
	* Renamed to GetAddressInfo due to Windows macros.
	* Added scope mutators to FInternetAddr
	* Properly inject the scope ids on all results when using GetLocalAdapterAddresses
	* Fix the endianness for the raw ip mutators
	* Fix mapping on address conversion
	* New return types for GetAddressInformation

	#Jira UENET-886, UE-62159, UE-62269, UE-62266, UE-62319

Change 4267457 by Jake.Leonard

	Fix Unix compilation.

	#Jira: none

Change 4267808 by Jake.Leonard

	Making platforms that don't have FQDN support fall back to canonicalname

	#Jira: none

Change 4270603 by Jake.Leonard

	* Adding more logging to the Unix adapter queries.
	* Fix the adapter query returning success on failure.

	#Jira UE-62159

Change 4273549 by Jake.Leonard

	Fix the memory leak caused by freeing the wrong sublist.

	#Jira UE-62762

Change 4273571 by Jake.Leonard

	Adding a new compare function for FInternetAddrs. This CompareEndpoints function can handle protocol differences instead of straight checking the structure data.

	#Jira UE-62266

Change 4275449 by Ryan.Gerleve

	PR #4965: Remove code that doesn't do anything (Contributed by erikdubbelboer)


Change 4276721 by Ryan.Gerleve

	Fix crash if a socket error occurred when the PendingNetGame sent its initial join packet.

	#jira UE-62672

	#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 (reversed) of change#4276707 by Ryan.Gerleve on 2018/08/10 15:54:30.

Change 4277306 by Ryan.Gerleve

	Suppress static analysis warning.

	#jira UE-62672

	#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 (reversed) of change#4277216 by Ryan.Gerleve on 2018/08/10 17:23:19.

Change 4277471 by Brian.Bekich

	Fix for level script actor gc references with replicated blueprint variables/functions

	#jira UE-60086
	#jira UE-60147

Change 4277689 by Jake.Leonard

	Adding more logging to GAI so that we can determine order of addresses.

	#Jira: none

Change 4278398 by Brian.Bekich

	SA fix

	#jira none

Change 4279489 by Jon.Nabozny

	PR #4977: Fixed not being able to connect to a LwsWebSocket after shutting it down (Contributed by rlabrecque)


	#jira UE-62817

Change 4284633 by Ryan.Gerleve

	Fix remote client character animation stuttering while stationary on listen servers by setting the default value of AGameNetworkManager::ClientNetSendMoveDeltaTimeStationary to 0.0166, the same value as ClientNetSendMoveDeltaTime, to match behavior of 4.19. Games may override this value to something lower as an optimization.

	#jira UE-62225

	#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.20 (reversed) of change#4284616 by Ryan.Gerleve on 2018/08/14 15:07:17.

Change 4285060 by Jake.Leonard

	Adding CreateSocket that takes protocol types to the base classes along with some other helpers.

	#Jira UENET-890

Change 4288280 by Jake.Leonard

	Fix Unix compiler errors

	#Jira: none

Change 4297412 by Jon.Nabozny

	Fix pawn relevancy position stuck at possession point.

	#jira UE-22390

Change 4302736 by Jon.Nabozny

	Prevent Streaming Level Visibility changes from closing channels for static actors on the server. This should prevent them from being destroyed on the client.

[at]Brian.Bekich [at]Ryan.Gerleve
	#jira UE-50443 UE-43042

Change 4307673 by Jake.Leonard

	Add support for the various types of friends lists that Unreal supports on Steam. Fixing up detection of user statuses.

	#Jira UE-63007

Change 4309291 by Jake.Leonard

	PR #4976: Remove redundant logic in OSSSteam (Contributed by rlabrecque)

	#github https://github.com/EpicGames/UnrealEngine/pull/4976

	#Jira: UE-62816

Change 4313601 by Jake.Leonard

	* Make the new IPv6 changes act the same way that it does on current 4.20. This allows for a much smoother adoption
	* Add new functions to specify the type of special address the user wants.
	* Fix the iOS broadcast addressing to determine IPv6 interface scope.
	* Additional logging for iOS to determine how it's picking up interfaces
	* Lock hybrid platforms to IPv4 for this version until full compatibility is reached that we can deprecate unsupported flows.

	#Jira UE-62159, UE-62321, UE-62681

Change 4320118 by Peter.Engstrom

	All tests run in NetBitsTest will now pass. Tests that will fail if run have been ifdefed out.

Change 4320147 by Brian.Bekich

	Fix FQuat::NetSerialize modifying the original value

	#jira UE-60215

Change 4320956 by Brian.Bekich

	Fix actor channel for the world settings of streaming levels not being marked broken on the client when seamless traveling

	#jira UE-60655

Change 4324361 by Brian.Bekich

	Fix a split screen RPC crashin rep graph

	#jira none

Change 4324365 by Brian.Bekich

	Fix crash when trying to add a split player with an invalid net index

	#jira UE-29969

Change 4337829 by Brian.Bekich

	Convert some replay checks/ensures to log warnings
	Serialize all static guids into replay checkpoints, unless deleted

	#jira UE-61539

Change 4341983 by Peter.Engstrom

	Implemented NetSerialize for FTimespan. This allows such variables to be replicated.

	#jira UE-57403

Change 4342261 by Jake.Leonard

	Adding subsystem pointers to the ipaddress to make sure that it can resolve the functions it needs.

	#Jira UENET-893

Change 4342348 by Ryan.Gerleve

	PR #5023: Fix documentation comment to reflect reality. (Contributed by grafikrobot)


Change 4346475 by Brian.Bekich

	Add missing null check in OnLevelRemovedFromWorld

	#jira UE-63759

Change 4347867 by Ryan.Gerleve

	Submitting on behalf of Jake.Leonard:
	Remove GAI queries on determining the local host address for OSX and Linux. Adding more logging in the getifaddrs queries.

	#Jira UE-62269

Change 4348512 by Ryan.Gerleve

	Don't check the bForceUDP flag in SocketSubsystemBSD - this preserves the behavior from 4.20. FTcpSocketBuilder was passing in true for bForceUDP in its CreateSocket call.

	#jira UE-63782

Change 4349781 by Jake.Leonard

	Fix GAI flags to make sure they are valid for the platforms that don't allow certain flags to be explicitly specified.

	#Jira UE-63744

Change 4351067 by Bart.Hawthorne

	Fix issue with FUrl improperly parsing Ipv4 addresses that are really IPv4 - it tries to use ::ffff which is incorrect (from JakeL)

	#jira UE-63822

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4352452 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4352459 by bart hawthorne in Dev-VR branch]
2018-09-07 18:18:42 -04:00
Marc Audy
d90da4ab1a Merge to Dev-Main for 4.20 @ 4090813
#rb
#rnx
#lockdown Nick.Penwarden

[CL 4091081 by Marc Audy in Main branch]
2018-05-23 21:04:31 -04:00
Ryan Gerleve
545b303834 Copying //UE4/Dev-Networking to //UE4/Dev-Main (Source: //UE4/Dev-Networking @ 4051526)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3809757 by Jon.Nabozny

	Fixup BuildPhysx to only set up HTML5 when needed.

Change 3812325 by Jake.Leonard

	Fix keyed debug messages from getting scaled to 0 and thus not appearing at all. This appears to be a bug in main as well. Only -1 keyed messages (which are handled differently) will display anything at all as the scale application was removed.

	#Jira UE-53579

Change 3828032 by Jon.Nabozny

	Make sure the State is set before triggering delegates in FLwsWebSocket.

Change 3837391 by John.Barrett

	NetcodeUnitTest updates for better CIS/automation support.

Change 3837392 by John.Barrett

	Fixed performance issue with processing piped output for large numbers of unit tests, and fixed unit test windows overlapping - plus other bugfixes.

Change 3837397 by John.Barrett

	Moved a unit test to the 'Obsolete' folder.

Change 3837476 by John.Barrett

	Reduced unwanted OSS-null logspam.

Change 3844506 by Jake.Leonard

	Implementing missing steam leaderboard implementations. Also streamlines and fixes the friends leaderboard too.

	#Jira UE-53474,UE-53475,UE-53476

Change 3844803 by Jake.Leonard

	Fixing the Steam Leaderboard to allow for overwrite instead of increment.

	Please see Jira for recent comments

	#Jira UE-24791

Change 3844829 by Jake.Leonard

	Does the following:

	* Add message on the screen while the presence test is running to let users know that the test is still running.
	* Remove the FUniqueNetIDString dependencies in the test
	* Fix the Steam Rich Presence from having to do an unnecessary cast

	#Jira UE-53066,UE-54177

Change 3851997 by Jake.Leonard

	Remove one of the double steam p2p dump prints. Now the socket subsystem is the only one that prints, which will cover more cases anyways and limits the potential of duplicate prints.

	Also changes the dump interval to 10s from 3s.

	#Jira: UE-53763

Change 3882307 by John.Barrett

	Fixed packet flooding protection, and handling of packets with errors, so that they don't delay further packet processing.
	When there's an error receiving a packet, make sure the wrong/previous-packets address isn't used for logging.

Change 3882311 by John.Barrett

	Restricted socket recv code from CL 3026398/3209824 to TCP, as with UDP it prevented telling the difference between the socket having no data to receive, and receiving a 0-length UDP packet.

	This is important for protecting against DoS attacks.

Change 3894785 by Jake.Leonard

	Fix replays not ending properly when the user goes to end their PIE instance.

	#Jira UE-54488

Change 3902627 by Jake.Leonard

	Fix the demo time values being incorrect if our delta would push us to the end of the replay. Since we're done, we early out of the functions before we have a chance to update the DemoCurrentTime variable. This causes issues with UI elements as it looks like the replay is not over but it actually is.

	#Jira UE-54483

Change 3902632 by Jake.Leonard

	Fix voice issues on seamless travel for NullOSS

	#Jira UE-54899

Change 3904775 by Jake.Leonard

	Properly grab the correct world context (we were sometimes grabbing the editor instead, when we wanted the PIE world). These changes will allow us to reliably end the demos. Improves the fix in 3894785.

	#Jira UE-54488

Change 3968022 by Ryan.Gerleve

	PR #4538: Guarantee Return Value of 0 When GetPortNo() Fails (Contributed by XenonicDev)


Change 3994505 by Jake.Leonard

	Fix some shootergame minor bugs:

	1. If there's no map selector UI option, just search for all maps. This fixes the only seeing Sanctuary bug (first option in the maplist)
	2. Always make the server push gametype (which is just TeamDeathmatch by default)

	#Jira none

Change 3999511 by Jake.Leonard

	FArchive serializer for FUniqueNetIdSteam

	#Jira none

Change 4014550 by Jake.Leonard

	Fix Steam Dedicated Server from linking steamclient dlls, which should not be necessary.

	This fix introduces a new launch argument (-force_steamclient_link) that can be used to force the steamclient link anyways for licensees who might have required this under extreme circumstances.

	#Jira UE-55183

Change 4017165 by Jake.Leonard

	Modification of the leaderboard test interface to add more tests as well as arbitrary rank fetches.

	Command is "online test leaderboards [optional arbitrary user id for lookup]"

	#Jira UE-53533

Change 4017215 by Jake.Leonard

	Fix MULTIHOME returning the incorrect ip address on Linux and Android

	#Jira UE-57463

Change 4024116 by Ryan.Gerleve

	Fix for the transform of spawned rollback actors in replays now that gc is not guaranteed to happen between the destroy and respawn

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3876761 by Brian.Bekich on 2018/02/07 11:06:24.

Change 4024119 by Ryan.Gerleve

	Better fix for replay gc changes with rollback actors - rename pending kill copy out of the way first

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3877425 by Brian.Bekich on 2018/02/07 15:14:42.

Change 4024125 by Ryan.Gerleve

	Allow replays to ignore rpcs while fast forwarding (demo.FastForwardIgnoreRPCs)

	#jira FORT-67138

	#AUTOMERGE using branch FNMain->DevNetworking of change#3877483 by Brian.Bekich on 2018/02/07 15:31:41.

Change 4024126 by Ryan.Gerleve

	Save additional state of rollback actors in replays to be applied upon respawn (demo.SaveRollbackActorState)
	Convert FRepState in object replicator to a shared pointer

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3877681 by Brian.Bekich on 2018/02/07 16:52:11.

Change 4024131 by Ryan.Gerleve

	[+] Add -csvdemostarttime and -csvdemoendtime command line arguments to automate CSV profiles when running replays. Since these commands use the playback time of the replay, they are much more reliable than the loading screen method we used previously.

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3879630 by Luke.Thatcher on 2018/02/08 14:26:01.

Change 4024155 by Ryan.Gerleve

	Fixed potential null access in DemoNetDriver

	#jira none
	#AUTOMERGE using branch FNMain->DevNetworking of change#3882753 by Jeff.Farris on 2018/02/09 16:46:43.

Change 4024158 by Ryan.Gerleve

	Fixup issues with Demo Recording and Playback when using Streaming Levels.

	#jira FORT-65185

	#AUTOMERGE using branch FNMain->DevNetworking of change#3889448 by Jon.Nabozny on 2018/02/14 13:09:22.

Change 4024164 by Ryan.Gerleve

	Create Burn In for DemoRecording / Replays

	#jira NONE
	#AUTOMERGE using branch FNMain->DevNetworking of change#3890879 by Jon.Nabozny on 2018/02/15 01:31:47.

Change 4024176 by Ryan.Gerleve

	Added DemoNetDriver::IsSavingCheckpoint.

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3897504 by Jeff.Farris on 2018/02/19 12:55:37.

Change 4024178 by Ryan.Gerleve

	Fix up edge cases in Replays where Actors were being destroyed inappropriately.

	#jira None
	#AUTOMERGE using branch FNMain->DevNetworking of change#3903472 by Jon.Nabozny on 2018/02/22 09:40:02.

Change 4024181 by Ryan.Gerleve

	Support the notion of Rewindable Actors for replays. These are actors that shouldn't be destroyed during scrubbing.

	#jira FORT-71396
	#AUTOMERGE using branch FNMain->DevNetworking of change#3908062 by Jon.Nabozny on 2018/02/24 11:59:27.

Change 4024184 by Ryan.Gerleve

	Add functions to DemoNetDriver to support testing for changes in replicated state.
	Clean up RepLayout DiffProperties, support passing flags in, add a flag to include conditional properties.

	#AUTOMERGE using branch FNMain->DevNetworking of change#3908132 by ryan.gerleve on 2018/02/24 16:25:20.

Change 4024194 by Ryan.Gerleve

	Change a cvar to GetValueOnAnyThread

	#AUTOMERGE using branch FNMain->DevNetworking of change#3910273 by ryan.gerleve on 2018/02/26 16:34:44.

Change 4024197 by Ryan.Gerleve

	Replication Graph v1. This is the new system for dedicated server performance in BR. It is currently disabled by default. Other changes to engine should have no practical impact on existing behavior.

	#jira nojira

	Engine Changes Summary
	-------------------------------------------

	UNetConnection::>ActorChannels no longer public. This is to prevent code from adding/removing actor channels from underneath the ReplicationDriver.

	UActorChannel::Close() returns int64 for num bits written. int64 is used because that is what FBitWriter uses.

	UNetconnection::DestroyedStartupOrDormantActorGUIDs now private. Add/Remove/Reset methods are exposed. This is so RepDriver can intercept these calls (when present).

	Added USimulatedClientNetConnection. Use net.SimulateConnections command to add them.

	New UNetDriver::ForceNetUpdate function. Notifies replication driver that force net update was called.

	UNetDriver::DestroyedStartupOrDormantActors now wraps the FActorDestructionInfo in TUniquePtr. This is so pointers to destruct infos are stable within the map and rep driver can keep track of them in its own list.

	UNetDriver::GetFunctionRepLayout exposed as ENGINE_API for RepDriver use.

	UNetDriver::ProcessRemoteFunction changes a bit.
	-Forwards to RepDriver if present. The intention is to give RepDriver the chance to change routing logic and do its own traffic bookkeeping on the RPC.
	-A new function, ProcessRemoteFunctionForChannel exists for the meat of the RPC call which RepDriver probably doesn't want to change and is free to call.
	-Removed FRepLayout::SendPropertiesForRPC first UObject parameter because it was not used.

	New function UNetDriver::NotifyActorDormancyChange for when actor dormancy changes.

	New Functions UNetDriver::AddNetworkActor/RemoveNetworkActor. These forward to the rep driver if present.
	-Really want to get rid of public access to GetNetworkObjectList() outside of net code. Doesn't seem easy without breaking backcompat.

	New Function UNetDriver::NotifyActorTearOff for when tear off happens.
	-bTearOff is public though. RepGraph requires the explicit TearOff() call to notify the system about tear off actors. I'm not sure how to fix this with deprecation warnings. (Keep variable public but warn if accessed)

	New UNetDriver::RemoveClientConnection function should be the only place that removes ClientConnections. Forwards to RepDriver.
	-Again, would like to make ClientConnections private but it is used all over the place. (Thankfully only one place removes from it).

	New UNetDriver::NotifyActorFullyDormantForConnection. So RepGraph can intercept and do its book keeping.

	Made UNetDriver::IsLevelInitializedForActor public.

	Made UNetDriver::FlushActorDormancyInternal to hold common code that happens when Dormancy is flushed or changes.

	FNetworkObjectList::FindOrAdd has optional bool parameter for if actor info was actually added.

	UWorld has new delegates for when all starting actors are initialized and registered with networking.
	-TODO: NavSystem and AI system should make use of this. The currently has direct function calls into them.

	Moved checks for bPendingDormancy/Dormant into UActorChannel::StartBecomingDormant rather than at the callsite(s).

	Added GReplicationGatherPriortizeTimeSeconds, GServerReplicateActorTimeSeconds, GReplicateActorTimeSeconds, GNumReplicateActorCalls. These are for new Replication CSV stat group (disabled by default).

	FObjectReplicator::QueueRemoteFunctionBunch drops MustBeMappedGUIDs if it suppresses the RPC call. This fixes a bug that exists in both systems.

	UWorld::SpawnActor now adds network actor after PostSpawnInitialize rather than prior. This is so the initial location of the actor can be used.
	-Deferred actor spawning can still make this not the case, but without this change there is no chance of the actor location being correct.
	-In this case, I care about this for FN building actors who do not use deferred spawning.

	Added STAT_NetServerGatherPrioritizeRepActorsTime which is the total Server Rep Actor time minus the time spent in ReplicateActor.

	-Removed STAT_NumRelevantActors because it made no sense (set to whatever connection repped last).
	-STAT_NumReplicatedActors now sum of replicated actors on all connections for the frame.
	-STAT_NumReplicatedActorBytes now sum of replicated property bytes on all connections per frame. Does not track package map guid bytes.

	-FRepLayout BuildSharedSerializationForRPC/ClearSharedSerializationForRPC exposed as ENGINE_API for RepGraph to use.

	Non Networking Engine Changes:
	Added optional RenderColor parameter to K2_DrawBox.

	ULevel::HasVisibilityChangeRequestPending and ULevel::IsNetActor exposed as ENGINE_API so ReplicationGraph module can call it.

	Added AHUD::OnHUDPostRender callback for easier debug huds that don't revolve around players or debug actor targets.

	#AUTOMERGE using branch FNMain->DevNetworking of change#3914530 by david.ratti on 2018/02/28 10:53:10.

Change 4024210 by Ryan.Gerleve

	DemoNetDriver properly unreadies level status in OnLevelRemovedFromWorld.

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3919218 by ryan.gerleve on 2018/03/01 18:50:11.

Change 4024213 by Ryan.Gerleve

	UDemoNetDriver now properly associates actor channel close bunches with the actor's level. Fixes ensures & asserts that were occurring during replay playback due to trying to handle these channel closes while the level was streamed out.
	Moved the check for IsRecording in the ConditionallyCreatePacketManager functions to an if, since the check can now be triggered while the demo net driver is shutting down.

	#jira FORT-71916

	#AUTOMERGE using branch FNMain->DevNetworking of change#3919321 by ryan.gerleve on 2018/03/01 19:26:43.

Change 4024217 by Ryan.Gerleve

	Fix for placed actors not respawning in some cases when scrubbing in a replay: don't add startup actors that are destroyed due to level streaming out to a replay checkpoint's destroyed actor list. Added some verbose (off by default) logging to help detect these cases.

	#jira FORT-73939

	#AUTOMERGE using branch FNMain->DevNetworking of change#3923164 by ryan.gerleve on 2018/03/03 11:19:37.

Change 4024310 by Ryan.Gerleve

	Replication Graph:

	* Fix issue with dormancy node not fully reseting when spatialization grid is rebuilt
	* Improved some logging when failures do happen
	* Added Net.RepGraph.Spatial.BiasCreep cvar to force spatial rebuild every frame
	* Added blacklist of classes that can never cause a spatial rebuild.
	* Fixed issue with dynamic actors changing cull distances dynamically.
	* Removed unused rep graph node.

	#jira none

	#AUTOMERGE using branch FNMain->DevNetworking of change#3931497 by david.ratti on 2018/03/07 11:58:14.

Change 4024316 by Ryan.Gerleve

	Replication Graph
	-Fix issue where dependant actor channels could stay open
	-Fix global actor channel timeout property to actually be used

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3933936 by david.ratti on 2018/03/08 08:22:35.

Change 4024365 by Ryan.Gerleve

	Added some debug functions: Net.RepGraph.PrintAllActorInfo, FortRepGraph.PrintRouting
	Minor cleanup, additional comments

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3936644 by David.Ratti on 2018/03/09 11:13:37.

Change 4024369 by Ryan.Gerleve

	Fix repgraph crash with certain spawned actors
	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3937302 by David.Ratti on 2018/03/09 15:03:02.

Change 4024382 by Ryan.Gerleve

	Initial work for high priority RPCs. This will allow damage RPCs to be sent immediately at the top of a frame rather than at the end. Currently disabled while testing.
	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3944887 by David.Ratti on 2018/03/14 10:01:35.

Change 4024384 by Ryan.Gerleve

	#UE4 Explicitly discarding the ReplicationDriver in UNetDriver::Shutdown. Fixes a crash when shutting down a net driver when the replication graph object is listening to delegates.

	#jira nojira

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3946884 by Bob.Tellez on 2018/03/14 22:03:36.

Change 4024391 by Ryan.Gerleve

	GameplayDebugger support for ReplicationGraph. AGameplayDebuggerCategoryReplicator will start replicating once a replication owner is set on it.

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3949584 by David.Ratti on 2018/03/16 08:36:01.

Change 4024394 by Ryan.Gerleve

	Fix crash in rep graph when spatialization gets rebuilt while dormancy actors were in a particular state.

	Dormancy nodes still had delegates registered for their contained actors. Though they dumped the list of actors, they would still get notification when the actors' dormancy changed which would cause them to readd the actors some times. If these nodes overlapped between rebuilds, actors could get readded to the same node twice which ultimately leads to them not being fully removed when they do get destroyed, and garbage AActor* trying to replicate. Net.RepGraph.Verify can catch these problems.

	To fix, we are going to MarkPendingKill the GridCell nodes rather than keeping them around and just reseting their actor lists. They will get recreated as needed.

	They could have also manually unregistered each of their delegates but this is more complicated and probably performs worse overall (though spatial rebuild is rare/should never really happen in a  real game). Just marking the uobject pending kill will suppress the delegate callbacks to the nodes.

	#jira FORT-76555
	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3952558 by David.Ratti on 2018/03/19 09:19:09.

Change 4024395 by Ryan.Gerleve

	RepGraph was not "undormatizing" actors when streaming levels were reloaded like legacy was.

	#jira FORT-76729

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3959632 by david.ratti on 2018/03/22 12:51:19.

Change 4024398 by Ryan.Gerleve

	Fix for dormant actors not opening actor channel for multicast rpcs in some cases. Use the global cull distance rather than the per-connection which is cleaered for dormancy trickle.

	#jira FORT-76101

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3960888 by david.ratti on 2018/03/22 19:23:00.

Change 4024402 by Ryan.Gerleve

	Fix dormant actors being instant destroyed not playing their death gameplay cue

	#jira FORT-76101

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3965842 by david.ratti on 2018/03/26 17:23:31.

Change 4024403 by Ryan.Gerleve

	More robust fix for rep graph having multiple channels for the same actor open simulataneously. Guarded behind CVar_RepGraph_FixDuplicateChannels.
	Add a replication driver hook for UActorChannel::CleanUp.
	Don't replicate actors or RPCs if the channel is closing.
	Don't clear the channel pointer on FConnectionReplicationActorInfo as soon as the channel closes, but wait until it's cleaned up to either clear the channel if the actor's dormant or remove the actor info from the map completely otherwise.
	Fixed missing include in ReplicationGraphDebugging.

	#jira FORT-77769

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3975732 by ryan.gerleve on 2018/03/30 16:03:25.

Change 4024415 by Ryan.Gerleve

	Fix potential actor channel churning by making sure the close frame num is never lowered. This could happen for short-lived dependant actors.

	Removed CVar_RepGraph_FixDuplicateChannels: we definitely need this behavior to always be on.

	#jira FORT-79292

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3980479 by david.ratti on 2018/04/03 08:25:53.

Change 4024419 by Ryan.Gerleve

	Enable Net.RepGraph.EnableRPCSendPolicy by default. This makes damage/weapon firing RPCs be flushed immediately rather than at the end of the frame, resulting in less latency between clients while shooting.

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3981390 by david.ratti on 2018/04/03 13:24:34.

Change 4024423 by Ryan.Gerleve

	enable Replication csv category by default (when CSV profiling is enabled) on server builds

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3981553 by david.ratti on 2018/04/03 14:04:38.

Change 4024424 by Ryan.Gerleve

	Replication Graph. These are mostly for engine related purposes/cleanup.

	-Don't remove TornOff actors from rep graph when they are destroyed. They are removed when they are torn off already. Fixes benign log warnings.
	-When an actor causes spatialization rebuild, set the bias such that the actor is in the middle of new cell. This mitigates the issue where spatialization would be rebuilt every frame once an actor moves "away from the grid".
	-When rebuilding spatilization, force garbage collection after tearing down old nodes. This is to mitigate OOMs. You are already going to hitch because of the rebuild anyways.
	-Removed some dead/debug code that isnt needed.

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3984296 by David.Ratti on 2018/04/04 12:52:54.

Change 4024427 by Ryan.Gerleve

	Allow setting thresholds for actor replication frequency buckets to help balance them out if too many actors end up in one bucket.

	#jira none

	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3990318 by david.ratti on 2018/04/06 14:47:58.

Change 4024475 by Ryan.Gerleve

	Const-corrected a few parameters

	#jira none
	#AUTOMERGE using branch FortniteMainEngine_to_DevNetworkingEngine of change#3904240 by Ryan.Gerleve on 2018/02/22 15:18:50.

Change 4030975 by Jake.Leonard

	Fixing Linux configs to move the proper configs into the right files.

	#Jira none

Change 4031710 by Jake.Leonard

	Implementation #3 of Steam Auth:

	Features:
	----------------
	* Most of stuff from Implementation #2
	* Blocks users from progressing unless they pass valid keys to the auth system
	* Overrides for licensees to change the behavior
	* Requires little to no configs
	* Has no P2P mesh support

	#Jira UE-10686, UE-50441, UE-50444

Change 4034520 by David.Ratti

	Spot edit rep graph fixes from FN

	-Fix issue where actor channel is created to queue an unreliable rpc, but then times out before actor is returned from rep graph pull. (update time out frame when queueing the rpc)
	-Fix issue where we weren't properly handling DORM_Never when trying to detect dormancy changes.

Change 4037513 by Jon.Nabozny

	Fixup some misused clamps reported by users.

Change 4042569 by Brian.Bekich

	Add sample repgraph implementation to ShooterGame

	#jira UENET-879

Change 4046889 by Brian.Bekich

	- Rep graph and nodes now share the graph globals
	- Fix rep graph world not being updated when using seamless travel
	- Set ShooterSpectatorPawn to not replicate by default to fix rep graph spam
	- Move ShooterPickup actors to the static spatialized list

	#jira UE-58540

Change 4048648 by Ryan.Gerleve

	Change replication driver warning to log.

	#jira UE-58578

Change 4048939 by Brian.Bekich

	Adding null check for game viewport client to OnPreLoadMap

	#jira UE-58579

[CL 4051554 by Ryan Gerleve in Main branch]
2018-05-04 10:11:42 -04:00