Releases: spatialos/UnrealGDK
GDK for Unreal Alpha Release 0.4.0
Unreal GDK version 0.4.0 is go!
The corresponding Engine version is: 4.20-SpatialOSUnrealGDK-0.4.0
Make sure to upgrade your GDK and Engine fork to the latest release. Either use the 0.4.0
tagged commits or switch your projects to the release
branches and git pull
.
Make sure to run Setup.bat
and regenerate your project files after upgrading!
Happy developing!
GDK team
Release Notes 0.4.0
Features:
- The GDK now uses SpatialOS
13.6.2
. - Added CHANGELOG.md.
- Added an error when unsupported replicated gameplay abilities are found in schema generation.
- Demoted various logs to Verbose in SpatialSender and SpatialReceiver.
- You can now use the Project Settings window to pass command line flags to local deployments launched from the GDK toolbar.
- You can now adjust the SpatialOS update frequency and the distance an actor must move before we update its SpatialOS position.
Documentation:
- New Technical Overview section describing how the GDK works.
- New Unreal features support page showing the state of support of different Unreal features with the GDK.
- New Known Issues and Public Roadmap boards (moved to Github).
- New Workflow reference pages - local development, cloud development.
Bug fixes:
- The worker disconnection flow is now handled by
UEngine::OnNetworkFailure
rather than the existingOnDisconnection
callback, which has been removed. - Fix duplicated log messages in
spatial CLI
output when running in PIE. - Fixed deserialization of strings from schema.
- Ensure that components added in blueprints are replicated.
- Fixed potential loading issue when attempting to load the SchemaDatabase asset.
- Add pragma once directive to header file.
- Schema files are now generated correctly for subobjects of the Blueprint classes.
- Fixed being unable to launch SpatialOS if project path had spaces in it.
- Editor no longer crashes when setting LogSpatialSender to Verbose.
- Server-workers quickly restarted in the editor will connect to runtime correctly.
- Game no longer crashes when connecting to Spatial with async loading thread suspended.
GDK for Unreal Alpha Release 0.3.0
Unreal GDK version 0.3.0 is go!
The corresponding Engine version is: 4.20-SpatialOSUnrealGDK-0.3.0
Make sure to upgrade your GDK and Engine fork to the latest release. Either use the 0.3.0
tagged commits or switch your projects to the release
branches and git pull
.
Make sure to run Setup.bat
and regenerate your project files after upgrading!
Happy developing!
GDK team
Release Notes 0.3.0
New Known Issues:
- Enabling Query Based Interest is needed for level streaming support, but this might affect performance in certain scenarios and is currently being investigated.
- Replicated
TimelineComponents
are not supported.
For current known issues, please visit this docs page
Features:
- The default connection protocol is now TCP.
- Query Based Interest is now supported as an opt-in feature.
- Level streaming is now supported. You must enable Query Based Interest checkbox in the Runtime Settings to use level streaming.
- The GDK Toolbar now recognises when a local deployment is running, and contextually displays start and stop buttons. - (@DW-Sebastien)
- Added interface support for Unreal Engine 4.21
UNetConnection
. - (@GeorgeR) - Unreliable RPCs are now implemented using events instead of commands. This resolves associated performance issues.
- The
delete dynamic entities
setting now works when used in conjunction with multiple processes. - You can now determine the type of a SpatialOS worker from within the game instance.
- Entity IDs are now reserved in batches instead of individually. This accelerates the creation of SpatialOS entities.
- You can now serialize and deserialize component data defined in external schema (schema that is not-generated by the Unreal GDK). You can use this to send and receive data, and edit snapshots.
- Improved logging during RPCs.
Bug fixes:
- The GDK now automatically compiles all dirty blueprints before generating schema.
- Attempting to load a class which is not present in the schema database now causes the game to quit instead of crashing the entire editor.
Actor::ReplicateSubobjects
is now called in the replication flow. This means that Subobjects are now replicated correctly.- Schema generation is no longer fatally halted when blueprints fail to compile.
AActor::TornOff
is now called when aTearOff
event is received. This is in-line with the native implementation.- References to objects within streaming levels, that are resolved before the level has streamed in, no longer cause defective behavior on the client.
- Attempting to replicate a
NonSpatial
actor no longer causes a crash. - The SpatialOS Launcher now launches the correct game client, even when
UnrealCEFSubProcess.exe
is present in the assembly. - Duplicate startup-actors are no longer created when a server-worker reconnects to a deployment.
BeginPlay
is no-longer called authoritatively when a server-worker reconnects to a deployment.- Fast Array Serialization now operates correctly in conjunction with
GameplayAbilitySystem
. - Reference parameters for RPCs are now correctly supported.
- Clients now load the map specified by the global state manager, rather than loading the
GameDefaultMap
before querying the global state manager. - Automatically generated launch configurations for deployments with a prime numbers of server-workers are now generated with the correct number of rows and columns.
- Generating schema for a level blueprint no longer deletes schema that has been generated for other levels.
- Deleting recently created actors no longer causes crashes.
- Having multiple EventGraphs no longer causes incorrect RPCs to be called.
TimerManager
, which is used by SpatialOS networking, is no longer subject to time dilation in theWorld
instance.- Clients no longer crash after being assigned multiple players.
GetWorkerFlag
can now be called from C++ classes.- Pathless mapname arguments are now supported by the GDK commandlet.
- When
NotifyBeginPlay
is called,BeginPlay
is no longer called on actors before theirRole
is correctly set. - Deployments containing multiple server-workers no longer fails to initialize properly when launched through PIE with the
use single process
option unchecked.
External contributors:
In addition to all of the updates from Improbable, this release includes 2 improvements submitted by the incredible community of SpatialOS developers on GitHub! Thanks to these contributors:
GDK for Unreal Alpha Release 0.2.0
Unreal GDK version 0.2.0 is go!
Corresponding Engine version: https://github.com/improbableio/UnrealEngine/tree/4.20-SpatialOSUnrealGDK-0.2.0
Make sure to upgrade your GDK and Engine fork to the latest release. Either use the 0.2.0
tagged commits or switch your projects to the release
branches and pull.
With this release we’ve completely revamped how we handle startup-actors in the world, your snapshot no longer contains every entity in your world and instead your servers will spawn the entities when connecting to your deployment. We've also created a new GDK Template project available in Editor.
Additionally, we’ve simplified our default connection logic to be closer to native Unreal.
Make sure to run Setup.bat
and regenerate your project files after upgrading!
Happy developing!
GDK team
Release Notes 0.2.0
Startup actors revamp is merged! Snapshots are now simpler. Many bugfixes.
New Known Issues:
- A warning about an out of date net driver is printed at startup of clients and server.
For current known issues, please visit this docs page
Features:
- Actors placed in the level are no longer saved to the snapshot. They are instead spawned dynamically at the start of the game. This should fix quite a few issues such as missing references, and non-replicated instanced data being incorrectly set
- Pass player name and login options in the login URL
- Server will identify clients that have been disconnected from Spatial and trigger the cleanup on their NetConnection
- Exposed SpatialOS connection events in
USpatialNetDriver
- Dynamic Component Ids now start from 10000, Gdk Components will now use 9999 - 0 to avoid future clashes
- Report an error during schema generation if a blueprint RPC has a "by reference" argument
- Launch configs can now be auto-generated to match the selected number of servers to launch from within the PIE editor
- Placeholder entities placed into the generated snapshot are now optional with a UI switch in the SpatialOS Settings
- Implemented updated functionality for UnrealGDKEditorCommandlet: Whenever loading a map for schema/snapshot generation, all sublevels will also be loaded before generation is started
- Will now loop through maps (skipping duplicates) during schema generation, to leverage the "iterative schema generation" feature
- Accepts an additional argument -MapPaths that can specify a collection of specific maps and/or directories (recursive) containing maps, delimited by semicolons. If not provided, defaults to "All maps in project"
- The paths passed in via -MapPaths are flexible
Bug fixes:
- StartPlayInEditorGameInstance() now correctly call OnStart() on PIE_Client - (@DW-Sebastien)
- Redirect logging in the cloud to output to the correct file
- Changed type of key in
TMap
so Linux build will not give errors - Disabled loopback of component updates
- Fix hanging on shutdown for PIE when disconnected from SpatialOS
- Fixed an issue which caused a character controller to not be destroyed when leaving the view of an observing client
- Fixed crash on multiserver PIE shutdown
- Fixed single-worker shutdown issues when launching SpatialOS through Unreal Engine 4 with Use - - Single Process unchecked in Play Options
- Fixed crash on closing client from cloud deployment
- Fix
DeleteDynamicEntities
not getting used correctly in shutdown - Only call
BeginPlay()
on Actors if the World has begun play - Fixed an issue with schema generation for the default GameMode
- Deleting the schema database reset the starting component ID
- Report invalid name errors during schema generation instead of when launching a deployment.
SchemaDatabase
can now be deleted and component ids will reset.COND_InitialOnly
are only replicated once at the start- Fixed a bug where standalone clients run locally would not connect to spatial
- Missing classes when connecting via a non-editor client
- Schema is now generated for classes that only have RPCs
- Fixed issue where properties won’t be replicated at the start of the game sometimes
- Fixed path bug when specifying snapshot output file in the settings
- Fixed up default connection flows
- Fixed issue will stale shadow data when crossing worker boundaries.
- Removed actors from replication consider list if Unreal server-worker is not authoritative over said actor
- Remove legacy flag "qos_max_unacked_pings_rate" in generated default config - (@DW-Sebastien)
External contributors:
GDK for Unreal Alpha Release 0.1.0
To improve the stability and communication of Unreal GDK releases, we will now be tagging release commits periodically in the GDK and its corresponding projects.
We start with version 0.1.0 which has just been released.
The default branch of our repositories will now become the release
branch which will always be up to date with the latest tagged commit. The master
branch will contain the latest, unverified work and is not recommended except for experimental use. We recommend switching your development from master
to release
. If you have no local changes to the GDK, typing git checkout release
will get you onto the latest pinned release.
Note: With the recent changes you will have to regenerate your project files to avoid compilation errors.
Happy developing!
GDK team
Release Notes 0.1.0
Support for the new Player Auth APIs has been added and general stability improvements.
New Known Issues:
Level streaming is currently not supported.
For other current known issues, please visit this docs page.
Features:
- Support for the new Player Auth APIs
- FUniqueNetId support
- Support for the new network protocol KCP
- Lazy loading of FClassInfo
- Augmented BuildWorker.bat to support additional UBT parameters
- Add IsValid() to FUnrealObjRef
Bug fixes:
- Fixed critical errors related to Unresolved Objects
- Fixed a bug with Player State appearing to be null
- Fixed a bug related to Create Entity responses coming off the wire after a corresponding actor has been deleted
- Fixed a bug with activating actor components. We now check Initial Data for Actor components and only apply updates if
bReplicates
is true - Fixed a bug when replicating a null list / array
- Fixed a crash with unresolved handover properties
- Changed RakNet to default network protocol temporarily to avoid performance issues with KCP
- Fixed a bug where cloud logging would not work correctly
Pre Alpha Static Typebindings
This is being tag as the last commit that is supporting static typebindings.