Skip to content
This repository has been archived by the owner on Aug 29, 2024. It is now read-only.

Commit

Permalink
Merging final GDK for Unreal 0.14.0 release
Browse files Browse the repository at this point in the history
Release 0.14.0
  • Loading branch information
gdk-for-unreal-bot authored Aug 17, 2021
2 parents 90dd474 + e7bbf5d commit 01234e5
Show file tree
Hide file tree
Showing 251 changed files with 9,009 additions and 4,074 deletions.
6 changes: 3 additions & 3 deletions .buildkite/premerge.definition.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
agent_queue_id: trigger-pipelines
description: Build Unreal GDK
github:
branch_configuration: []
branch_configuration: ['!dry-run/* !skip-ci/* !doc/* !docs/*']
default_branch: "master"
pull_request_branch_filter_configuration: []
pull_request_branch_filter_configuration: ['!dry-run/* !skip-ci/* !doc/* !docs/*']
teams:
- name: Everyone
permission: BUILD_AND_READ
- name: gen/team/unreal
permission: MANAGE_BUILD_AND_READ
permission: MANAGE_BUILD_AND_READ
62 changes: 21 additions & 41 deletions .buildkite/premerge.steps.yaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
---
ci_version: &ci_version "1.2"
# This is designed to trap and retry failures because agent lost
# connection. Agent exits with -1 in this case.
agent_transients: &agent_transients
exit_status: -1
limit: 3

# BK system error
bk_system_error: &bk_system_error
exit_status: 255
limit: 3

# Job was interrupted by a signal (e.g. ctrl+c etc)
bk_interrupted_by_signal: &bk_interrupted_by_signal
exit_status: 15
limit: 3

# Hook failure
bk_hook_failure: &bk_hook_failure
exit_status: 127
limit: 3
ci_version: &ci_version "${CI_VERSION:-0.14.0}"
common_env_vars: &common_env_vars
BUILD_TYPE: "GDK"
GDK_BRANCH: "main_branch::${BUILDKITE_BRANCH}"
PROJECT_BRANCH: "${PROJECT_BRANCH:-match_branch_name_pref::0.14.0}"
USE_FASTBUILD: "${USE_FASTBUILD:-True}"
IS_BUILDKITE_BUILD: "${IS_BUILDKITE_BUILD:-True}"
BUILD_ANDROID: "${BUILD_ANDROID:-False}"
CLEAN_BUILD: "${CLEAN_BUILD:-False}"
RUN_DEFAULT_TESTS: "${RUN_DEFAULT_TESTS:-True}"
SLOW_TESTS: "${SLOW_TESTS:-False}"
EXTRA_TESTS: "${EXTRA_TESTS:-}"
EXTRA_TESTS_RUN_NATIVE: "${EXTRA_TESTS_RUN_NATIVE:-False}"
EXTRA_TESTS_RUN_REPGRAPH: "${EXTRA_TESTS_RUN_REPGRAPH:-False}"
EXTRA_TESTS_RUNS: "${EXTRA_TESTS_RUNS:-1}"

steps:
# New build pipeline
Expand All @@ -30,17 +24,10 @@ steps:
build:
branch: *ci_version
message: "gdk-4.26 ${BUILDKITE_MESSAGE}"
env:
BUILD_TYPE: "GDK"
GDK_BRANCH: "main_branch::${BUILDKITE_BRANCH}"
ENGINE_BRANCH: "${ENGINE_BRANCH_426:-match_branch_name_pref_engine::4.26-SpatialOSUnrealGDK-0.13.1}"
env:
<<: *common_env_vars
ENGINE_BRANCH: "${ENGINE_BRANCH_426:-match_branch_name_pref_engine::4.26-SpatialOSUnrealGDK-0.14.0}"
ENGINE_MAJOR: "4.26"
PROJECT_BRANCH: "${PROJECT_BRANCH:-match_branch_name_pref::0.13.1}"
USE_FASTBUILD: "True"
IS_BUILDKITE_BUILD: "True"
BUILD_ANDROID: "False"
SKIP_TESTS: "False"
CLEAN_BUILD: "False"

# Trigger a 4.25 build
- trigger: "unrealgdkbuild-ci"
Expand All @@ -49,17 +36,10 @@ steps:
build:
branch: *ci_version
message: "gdk-4.25 ${BUILDKITE_MESSAGE}"
env:
BUILD_TYPE: "GDK" # GDK or ENGINE
GDK_BRANCH: "main_branch::${BUILDKITE_BRANCH}"
ENGINE_BRANCH: "${ENGINE_BRANCH_425:-match_branch_name_pref_engine::4.25-SpatialOSUnrealGDK-0.13.1}"
env:
<<: *common_env_vars
ENGINE_BRANCH: "${ENGINE_BRANCH_425:-match_branch_name_pref_engine::4.25-SpatialOSUnrealGDK-0.14.0}"
ENGINE_MAJOR: "4.25"
PROJECT_BRANCH: "${PROJECT_BRANCH:-match_branch_name_pref::0.13.1}"
USE_FASTBUILD: "True"
IS_BUILDKITE_BUILD: "True"
BUILD_ANDROID: "False"
SKIP_TESTS: "False"
CLEAN_BUILD: "False"

# Trigger an Example Project build for any merges into master, preview or release branches of UnrealGDK
- trigger: "unrealgdkexampleproject-nightly"
Expand Down
3 changes: 3 additions & 0 deletions .github/pull-request-template.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#### This is a public repo
So don't post or commit non-public information.

#### Description
Describe your changes here.

Expand Down
63 changes: 56 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
**Note**: Since GDK for Unreal v0.10.0, the changelog is published in both English and Chinese. The Chinese version of each changelog is shown after its English version.<br>
**注意**:自虚幻引擎开发套件 v0.10.0 版本起,其日志提供中英文两个版本。每个日志的中文版本都置于英文版本之后。

## [`x.y.z`] - Unreleased

## [`0.14.0`] - 2021-08-16

### Breaking changes:
- The `Handover` variable specifier has been deprecated. It should be replaced with the standard `Replicated` variable specifier and restricting the replication with the new `COND_ServerOnly` replication condition in `GetLifetimeReplicatedProps`. `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 to `SpatialExecServerCmd`, 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` and `tracefile` -> `file`

### Bug fixes:
- 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 report `sed: 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.

## [`0.13.1`] - 2021-06-02

### Breaking changes:
- Event tracing has been optimised to reduce overhead when tracing events in general and in particular when events are not sampled. The tracing API has been modified to accommodate these improvements. You will have to modify your project if you use the API.

Expand All @@ -23,6 +69,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Event tracing filter support (configured via `UEventTracingSamplingSettings`).

## [`0.13.0`] - 2021-05-17

### Breaking changes:
- Removed support for Unreal Engine 4.24.
- `MaxRPCRingBufferSize` setting has been removed. This was previously used to specify the RPC ring buffer size when generating schema. Now, `DefaultRPCRingBufferSize` is used, and can be overridden per RPC type using `RPCRingBufferSizeOverrides`.
Expand Down Expand Up @@ -57,6 +104,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `bOnlyRelevantToOwner` is now supported. Ownership must be setup prior to the first replication of the `Actor` otherwise it will be ignored.
- Added a property to specify the test settings overrides config filename in the `World Settings` so that maps can share config files during automated testing. This replaces the option to automatically use the map name to determine the config filename.
- Added a `-FailOnNetworkFailure` flag that makes a Spatial-enabled game fail on any NetworkFailure.
- Simulated Player deployments no longer depend on DeploymentLauncher for readiness. You can now restart them via the Console and expect them to reconnect to your main deployment. DeploymentLauncher will also restart any crashed or incorrectly finished simulated players applications.
- Added `URemotePossessionComponent` to deal with Cross-Server Possession. Add this componenet to an AController, it will possess the Target Pawn after OnAuthorityGained. It can be implemented in C++ and Blueprint.

### Bug fixes:
- Fixed the exception that was thrown when adding and removing components in Spatial component callbacks.
Expand All @@ -78,6 +127,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed an issue with replicating references to stably named dynamically added subobjects of dynamic actors.
- Fixed an issue during client logout where a client's corresponding Actors were not cleaned up correctly.
- Fixed issue with `SpatialDebugger` crashing when client travelling.
- Fixed an issue where a NetworkFailure won't be reported when connecting to a deployment that doesn't support dev_login with a developer token, and in some other configuration-dependent cases.
- Fixed a Windows compile issue when updating the worker SDK which did not recompile code dependent on the updated libs/dlls.

## [`0.12.0`] - 2021-02-01

Expand All @@ -102,6 +153,7 @@ These functions and structs can be referenced in both code and blueprints and it
- Running without Ring Buffered RPCs is no longer supported, and the option has been removed from SpatialGDKSettings.
- The schema database format has been updated and versioning introduced. Please regenerate your schema after updating.
- The CookAndGenerateSchemaCommandlet no longer automatically deletes previously generated schema. Deletion of previously generated schema is now controlled by the `-DeleteExistingGeneratedSchema` flag.
- Event tracing has been optimised to reduce overhead when tracing events in general and in particular when events are not sampled. The tracing API has been modified to accomidate these improvements. You will have to modify your project if you use the API.

### Features:
- The DeploymentLauncher tool can be used to start multiple simulated player deployments at once.
Expand Down Expand Up @@ -155,15 +207,13 @@ These functions and structs can be referenced in both code and blueprints and it
- Inspector URL is now http://localhost:33333/inspector-v2
- Inspector version can be overridden in the SpatialGDKEditorSettings under `Inspector Version Override`
- The SpatialNetDriver can disconnect a client worker when given the system entity ID for that client and does so when `GameMode::PreLogin` returns with a non-empty error message.
- Unreal Engine version 4.26.0 is supported! Refer to https://documentation.improbable.io/gdk-for-unreal/docs/keep-your-gdk-up-to-date for versioning information and how to upgrade.
- Unreal Engine version 4.26.0 is supported! Refer to https://networking.docs.improbable.io/gdk-for-unreal/v0.14.0/workflows/keep-your-gdk-up-to-date for versioning information and how to upgrade.
- Running with an out-of-date schema database reports a version warning when attempting to launch in editor.
- Reworked schema generation (incremental and full) pop-ups to be clearer.
- Added cross-server variants of ability activation functions on the Ability System Component.
- Added `SpatialSwitchHasAuthority` function to differentiate authoritative server, non-authoritative server, and clients. This can be called in code or used in blueprints that derive from actor.
- Added blueprint callable function `GetMaxDynamicallyAttachedSubobjectsPerClass` to `USpatialStatics` that gets the maximum dynamically attached subobjects per class as set in `SpatialGDKSettings`
- Simulated Player deployments no longer depend on DeploymentLauncher for readiness. You can now restart them via the Console and expect them to reconnect to your main deployment. DeploymentLauncher will also restart any crashed or incorrectly finished simulated players applications.
- Reworked schema generation (incremental + full) pop-ups to be clearer.
- Added `URemotePossessionComponent` to deal with Cross-Server Possession. Add this componenet to an AController, it will possess the Target Pawn after OnAuthorityGained. It can be implemented in C++ and Blueprint.

### Bug fixes:
- Fixed a bug that stopped the travel URL being used for initial Spatial connection if the command line arguments could not be used.
Expand Down Expand Up @@ -200,7 +250,6 @@ These functions and structs can be referenced in both code and blueprints and it
- Fixed a bug where consecutive invocations of CookAndGenerateSchemaCommandlet for different levels could fail when running the schema compiler.
- Fixed an issue where GameMode values won't be replicated between server workers if it's outside their Interest.
- Fixed gameplay cues receiving OnActive/WhileActive events twice on the predicting client in a multi-worker single-process PIE environment.
- Fixed an issue where a NetworkFailure won't be reported when connecting to a deployment that doesn't support dev_login with a developer token, and in some other configuration-dependent cases.
- Fixed a crash that occured when opening the session frontend with VS 16.8.0 using the bundled dbghelp.dll.
- Spatial Debugger no longer consumes input.
- Fixed an issue where we would always create a folder for a snapshots for a deployment even when we made no snapshots
Expand All @@ -212,7 +261,7 @@ These functions and structs can be referenced in both code and blueprints and it
## [`0.11.0`] - 2020-09-03

### Breaking changes:
- We no longer support Unreal Engine version 4.23. We recommend that you upgrade to the newest version 4.25 to continue receiving updates. See [Unreal Engine Version Support](https://documentation.improbable.io/gdk-for-unreal/docs/versioning-scheme#section-unreal-engine-version-support) for more information on versions. Follow the instructions in [Update your GDK](https://documentation.improbable.io/gdk-for-unreal/docs/keep-your-gdk-up-to-date) to update to 4.25.
- We no longer support Unreal Engine version 4.23. We recommend that you upgrade to the newest version 4.25 to continue receiving updates. See [Unreal Engine Version Support](https://networking.docs.improbable.io/gdk-for-unreal/v0.14.0/support/versioning-scheme#section-unreal-engine-version-support) for more information on versions. Follow the instructions in [Update your GDK](https://networking.docs.improbable.io/gdk-for-unreal/v0.14.0/workflows/keep-your-gdk-up-to-date) to update to 4.25.
- We have removed multi-worker settings from the `SpatialWorldSettings` properties and added them to a new class `USpatialMultiWorkerSettings`. To update your project, create a derived `USpatialMultiWorkerSettings` class mimicking your previous configuration. Then, in your level’s World settings, select that class as the `Multi-worker settings class` property.
- The `-nocompile` flag used with `Buildworker.bat` is now split into two. Use the following flags:
- `-nobuild` to skip building the game binaries.
Expand Down Expand Up @@ -690,7 +739,7 @@ Features listed in this section are not ready to use. However, in the spirit of
1. Run `Setup.bat`, which is located in the root directory of the `UnrealEngine` repository.
1. Run `GenerateProjectFiles.bat`, which is in the same root directory.

For more information, check the [Keep your GDK up to date](https://documentation.improbable.io/gdk-for-unreal/docs/keep-your-gdk-up-to-date) SpatialOS documentation.
For more information, check the [Keep your GDK up to date](https://networking.docs.improbable.io/gdk-for-unreal/v0.14.0/workflows/keep-your-gdk-up-to-date) SpatialOS documentation.

### Features:
- You can now call `SpatialToggleMetricsDisplay` from the console in your Unreal clients in order to view metrics. `bEnableMetricsDisplay` must be enabled on clients where you want to use this feature.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ We welcome any and all

## Coding standards

See the [GDK for Unreal C++ coding standards guide](https://documentation.improbable.io/gdk-for-unreal/docs/coding-standards).
See the [GDK for Unreal C++ coding standards guide](https://networking.docs.improbable.io/gdk-for-unreal/v0.14.0/get-involved/contribute-to-the-gdk/coding-standards).

## Branches
Most of our active development is in the `master` branch, so we prefer to take pull requests there. If you're contributing to our [Unreal Engine fork](https://github.com/improbableio/UnrealEngine/tree/4.26-SpatialOSUnrealGDK), please target your pull requests at the `4.26-SpatialOSUnrealGDK` branch, which is our development branch in that repo.
Expand Down
Loading

0 comments on commit 01234e5

Please sign in to comment.