This repository has been archived by the owner on Aug 29, 2024. It is now read-only.
GDK for Unreal Release 0.14.0
Pre-release
Pre-release
The release notes are published in both English and Chinese. To view the Chinese version, scroll down a bit for details. Thanks!
Release notes 将同时提供中英文。要浏览中文版本,向下滚动页面查看详情。感谢!
English version
Unreal GDK version 0.14.0 has been released!
Release Notes
Breaking changes:
- The
Handover
variable specifier has been deprecated. It should be replaced with the standardReplicated
variable specifier and restricting the replication with the newCOND_ServerOnly
replication condition inGetLifetimeReplicatedProps
.Handover
variables will try to replicate using the new replication condition, but support will be removed in the next release. - Reworked AlwaysInterested functionality to run on authoritative servers, and owning clients. The previous behaviour was for it to only run on PlayerController classes, on the client only.
bUseNetOwnerActorGroup
actor setting has been removed with the default behavior now true inside LayeredLBStrategy. Extend this class if you wish to alter this default behavior.
Features:
- Added a "Clean and Generate Schema" option to the Schema menu, which lets you delete the SchemaDatabase.uasset, all generated schema files, and run a Full Scan in one click.
- GDK heartbeat settings are now used to control the worker heartbeat configurations.
- Added a setting to control which CrossServer RPC implementation is used. Both feature mentioned below are only enabled when the RoutingWorker is the chosen implementation. Spatial commands are still the default for now.
- Added reliable CrossServer RPC. Reliable CrossServer RPC now require a sender actor which will be the reference point for ordering in a multi-worker environment. An additional UFUNCTION Tag, Unordered, was added to opt-out of this requirement.
- Added NetWriteFence UFUNCTION Tag. This tag is used when Network writes to an actor should be ordered with regard to updates to another actor. This is relevant in worker recovery/snapshot reloading to get some ordering guarantees when SpatialOS can write updates to entities in any order.
- Inspector process is automatically started when starting PIE. This means you can re-use existing inspector browser sessions.
- Visual Logger now supports multi-worker environments.
- Gameplay Debugger now supports multi-worker environments.
- Added
StopInsights
command toSpatialExecServerCmd
, which takes no additional parameters and disables any Insight capturing on the target worker- Example usage: "SpatialExecServerCmd local StopInsights
- Renamed
StartInsights
command args -trace
->channel
andtracefile
->file
- Added bEventTracingEnabledWithEditor setting to separate out the ability to enable Event Tracing in Editor builds from non-Editor builds.
Bug fixes:
- An issue with
AActor::SetAutonomousProxy
has been fixed, where actors that were manually set asAutonomousProxy
could get downgraded toSimulatedProxy
. The functionsSetAutonomousProxyOnAuthority
andIsAutonomousProxyOnAuthority
have been added to USpatialActorChannel, along with a change toActorSystem::HandleActorAuthority
which will upgrade an actor's role fromSimulatedProxy
toAutonomousProxy
if the actor gains Authority whenIsAutonomousProxyOnAuthority
is true. - Added a pop-up message when schema generation fails, which suggests running a Clean and Generate to fix a bad schema state.
- Fixed a bug that left the SchemaDatabase.uasset file locked after a failed schema generation.
- Fixed an issue with migration diagnostic logging failing, when the actor did not have authority.
- Fixed an issue where migration diagnostic tool would crash if the target actor's owner couldn't be found.
- Fixed an issue where during shutdown unregistering NetGUIDs could cause an asset load and program stall.
- Fix RPC timeouts for parameters referencing assets that can be asynchronously loaded.
- Fixed the test settings overrides config filename in
Spatial World Settings
so that the file path is relative to the game directory. - Fix editor encountering exceptions when shutting down during a PIE session.
- The runtime will shut down slightly faster after a PIE session.
- Fixed a rare issue where one would see a change to the owner field but not the changes to owner-only fields.
- Prevented a client crash that occurs if there is a mismatch between the client and server schema hash.
- Fixed an issue for actors with bNetLoadOnClient. A dynamic subobject removed from such an actor while out of a client's view will now be properly removed on the client when the actor comes back into the client's view.
- Fixed an issue that caused
UnrealGDK/Setup.sh
to reportsed: can't read : No such file or directory
when run on macOS. - Static subobjects on bNetLoadOnClient actors are now removed on clients in a manner matching native unreal's behavior. This change affects subobjects removed by the server while the actor is not in the client's interest.
- Fixed an issue where multicast rpcs could be overwritten and then dropped on authority flicker.
- Fixed issue using the runtime snapshot endpoint with a local deployment, using
localhost:5006/snapshot
works again and creates a snapshot. - Dormant actors will now always have their channels closed correctly when entering dormancy.
Internal:
- Hide the Test MultiworkerSettings and GridStrategy classes from displaying in the editor. These are meant to only be used in Tests.
- Reserved entity IDs previously expired after 3 minutes. Reserved Entity IDs now no longer expire, and persist until used.
- A test was calling
SetReplicates
on an actor over which it did not have authority. This was causing warnings to be triggered. We've fixed this by reverting the actor's role at the end of the test, so that the actor is not left in an unexpected state. - Added support for clients to disconnect during a test in the automated test framework.
- Modified ActorSystem's Ownership and Simulated Subviews to take player ownership into account.
- Fixed an issue with registering spatial flow controllers in the Spatial Testing Framework.
Upgrading
- You can find the corresponding UnrealEngine version(s) here.
- You can find the corresponding UnrealGDKExampleProject version here.
Follow these steps to upgrade your GDK, Engine fork and Example Project to the latest release.
You can read the full release notes here or below.
Join the community on our forums, or on Discord.
Happy developing,
The GDK team