This repository has been archived by the owner on Aug 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 141
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #894 from spatialos/0.4.0-rc
0.4.0 rc
- Loading branch information
Showing
118 changed files
with
4,529 additions
and
2,012 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,166 @@ | ||
# Changelog | ||
All notable changes to the SpatialOS Game Development Kit for Unreal will be documented in this file. | ||
|
||
The format of this Changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | ||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
||
## [Unreleased] - yyyy-mm-dd | ||
|
||
## [`0.4.0`](https://github.com/spatialos/UnrealGDK/releases/tag/0.4.0) - 2019-04-30 | ||
|
||
### New Known Issues: | ||
|
||
### Features: | ||
- The GDK now uses SpatialOS `13.6.2`. | ||
- Added this Changelog | ||
- 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](https://docs.improbable.io/reference/latest/shared/spatial-cli/spatial-local-launch#spatial-local-launch) to local deployments launched from the GDK toolbar. | ||
- You can now adjust the SpatialOS update frequency and the distance an action must move before we update its SpatialOS position. | ||
|
||
### Bug fixes: | ||
- The worker disconnection flow is now handled by `UEngine::OnNetworkFailure` rather than the existing `OnDisconnection` 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. | ||
|
||
## [`0.3.0`](https://github.com/spatialos/UnrealGDK/releases/tag/0.3.0) - 2019-04-04 | ||
|
||
### 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](https://docs.improbable.io/unreal/alpha/known-issues) 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 a `TearOff` 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 the `World` 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 their `Role` 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: | ||
|
||
* @DW-Sebastien | ||
* @GeorgeR | ||
|
||
## [`0.2.0`](https://github.com/spatialos/UnrealGDK/releases/tag/0.2.0) - 2019-02-26 | ||
|
||
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](https://docs.improbable.io/unreal/alpha/known-issues) 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 | ||
1. Will now loop through maps (skipping duplicates) during schema generation, to leverage the "iterative schema generation" feature | ||
2. 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" | ||
3. 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: | ||
@DW-Sebastien | ||
|
||
## [`0.1.0`](https://github.com/spatialos/UnrealGDK/releases/tag/0.1.0) - 2019-02-08 | ||
|
||
## 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](https://docs.improbable.io/unreal/alpha/known-issues). | ||
|
||
### 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
Increment the below number whenever it is required to run Setup.bat as part of a new commit. | ||
Our git hooks will detect this file has been updated and automatically run Setup.bat on pull. | ||
|
||
14 | ||
17 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+2.74 MB
SpatialGDK/Documentation/assets/screen-grabs/moving-across-boundaries.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+27.4 KB
SpatialGDK/Documentation/assets/screen-grabs/shooting-across-boundaries.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+2.81 KB
(100%)
SpatialGDK/Documentation/assets/screen-grabs/toolbar/multi-player-options.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+79.5 KB
SpatialGDK/Documentation/assets/set-up-template/template-two-client-inspector.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+530 KB
SpatialGDK/Documentation/assets/set-up-template/template-two-clients.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Cloud development workflow | ||
|
||
The following flowchart provides a reference of the cloud development workflow on the GDK. | ||
|
||
If you haven't already, please follow the [GDK Starter Template guide]({{urlRoot}}/content/get-started/gdk-template) which provides a detailed explanation of the different steps. | ||
|
||
<!-- This is a live embed of a google drawing --> | ||
|
||
<img src="https://docs.google.com/drawings/d/e/2PACX-1vQRmK7TxLji8pT7erPl54hqMMMDsdosZY1OZ2wuPYLQ23dWIrx86qCHggEeq-XasTCsqRe40fCKQvKN/pub?w=758&h=1162"> | ||
|
||
You may find the following command-line snippets useful as reference: | ||
|
||
### Build server-worker assembly | ||
|
||
``` | ||
Game\Plugins\UnrealGDK\SpatialGDK\Build\Scripts\BuildWorker.bat <YourProject>Server Linux Development <YourProject>.uproject | ||
``` | ||
|
||
Replacing `<YourProject>` with the name of your Unreal project. | ||
|
||
### Build client-worker assembly | ||
|
||
``` | ||
Game\Plugins\UnrealGDK\SpatialGDK\Build\Scripts\BuildWorker.bat <YourProject> Win64 Development <YourProject>.uproject | ||
``` | ||
|
||
Replacing `<YourProject>` with the name of your Unreal project. | ||
|
||
### Upload assembly | ||
|
||
``` | ||
spatial cloud upload <myassembly> | ||
``` | ||
|
||
Replacing `<myassembly>` with the name you choose to give your assembly. | ||
|
||
### Launch cloud deployment | ||
|
||
``` | ||
spatial cloud launch --snapshot=snapshots/default.snapshot <myassembly> <launch_config>.json <deployment_name> | ||
``` | ||
|
||
Replacing: | ||
|
||
* `<myassembly>` - identifies the worker assemblies to use (as chosen in the `spatial cloud upload` command). | ||
* `<launch_config>.json` - declares the world and load balancing configuration. | ||
* `<deployment_name>` - labels the deployment for SpatialOS to reference in the [Console]({{urlRoot}}/content/glossary#console). | ||
|
||
---- | ||
|
||
_2019-04-15 Page added with editorial review_ |
Oops, something went wrong.