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

0.3.0 rc #804

Merged
merged 112 commits into from
Apr 4, 2019
Merged

0.3.0 rc #804

merged 112 commits into from
Apr 4, 2019

Conversation

oblm
Copy link
Contributor

@oblm oblm commented Apr 4, 2019

Description

Merges the 0.3.0 release branch into release.
This release candidate has successfully passed our release testing process.

Release note

Unreal GDK version 0.3.0 is go!

Corresponding Engine version: https://github.com/improbableio/UnrealEngine/tree/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:

  • If the Query Based Interest Enabled checkbox in the SpatialOS GDK for Unreal Runtime Settings is ticked, level streaming will be supported, but at the cost of poorer performance.
  • 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 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.
  • Multiple server-workers can now be used in conjunction with the use multiple processes setting.
  • 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.

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:

Vatyx and others added 30 commits February 7, 2019 18:32
… call OnStart() if on Client (#645)

* Fix USpatialGameInstance::StartPlayInEditorGameInstance() to properly call OnStart() if on Client

* Removing CORVUS_BEGIN & END
* Pass player name and login options in the login URL

* Fix compile
* Disabled component update loopback

* Uniform initalization
bNetLoadOnClient (the previous way to check) is set for actors
which are not necessarily startup actors. This caused a character
controller to not be destroyed when moving out of the view of an
observing client.
* Player lifecycle (heartbeat) WIP

* Use a single net connection for all actor channels on server

* Addressing PR comments

* Address PR comments
* Moving events to NetDriver

* Adding disconnection callback

* Tidying up

* Adding comments

* Adding additional check for when Spatial networking is disabled

* Addressing review comments

* Adding getter for NetDriver

* Adding TODO comment

* Adding missing declaration

* Review feedback

Co-Authored-By: padhansell <[email protected]>

* Changing iterator type

* Remove whitespace

Co-Authored-By: padhansell <[email protected]>

* Update SpatialReceiver.h

* Including World

* Changing World access

* Adding GEngine check
…ing issues (#638)

* adding in send/receive request code for shutdowning servers

bugfix for unr-935

* added shutdown command to gsm for unr-935

* setup.bat needs to be re-ran when updating due to schema change to GSM

* made new component and added it to the GSM object for creation

* only bind to the editor delegate if we aren't running under one process

* Update SpatialGDK/Source/SpatialGDK/Private/Interop/GlobalStateManager.cpp

Co-Authored-By: chrisfields0 <[email protected]>

* incorporating feedback from pr review

* fixing issues from merge

* adding in feedback from review

* Update GlobalStateManager.cpp

* incorporating feedback from review

* Update SpatialGDK/Source/SpatialGDK/Private/Interop/GlobalStateManager.cpp

Co-Authored-By: chrisfields0 <[email protected]>

* Update SpatialGDK/Source/SpatialGDK/Private/Interop/GlobalStateManager.cpp

Co-Authored-By: chrisfields0 <[email protected]>

* readding deleted bracket from resolving conflicts

* Update GlobalStateManager.cpp
* Blanket replaced existing functionality with functionality that supports specifying a single map to generate for. Added loading of sub-levels to ensure generated schema has all required components.

* Added support to specify multiple maps by delimiting the MapName argument with semicolons.

* First significant implementation of leveraging iterative schema generation.

* Added missing TEXT macro for consistency.

* Update SpatialGDK/Source/SpatialGDKEditorCommandlet/Private/Commandlets/GenerateSchemaAndSnapshotsCommandlet.cpp

Co-Authored-By: jed-improbable <[email protected]>

* Alphabetized the UE4 #include statements

* Updated comment about a Jira task being waited on, with the actual Jira task code.

* Extended sublevel loading code to also handle loading sublevels that were configured as a part of the World Composition System.

* Changed out some manual string manipulation for a call to FString::PathAppend()

* Added missing return statement after an error condition wrote to log.

* Added a single space after every // in comment lines.

* Added some extra logging so it's easy to monitor loading sublevels.

* Wrapped a while loop in braces.

* Update SpatialGDK/Source/SpatialGDKEditorCommandlet/Private/Commandlets/GenerateSchemaAndSnapshotsCommandlet.cpp

Co-Authored-By: jed-improbable <[email protected]>

* Enforced that directory paths must end with "/", and all other failures of FPackageName::IsValidLongPackageName() will result in outputting an error and not entering into a strange fail state/crash.

* Renamed GameDirName to AssetPathGameDirName so future maintainers will be aware that it is only applicable to asset/package paths, and not file system paths.
**Contributions**: We are not currently taking public contributions - see our [contributions](CONTRIBUTING.md) policy. However, we are accepting issues and we do want your [feedback](../README.md#give-us-feedback).

-------

#### Description
In the situation that you have selected a default GameMode and not set an override, your default GameMode will not be loaded at bootup until you access the asset or load your project settings. This meant that schema would not be generated for this GameMode resulting in a runtime crash. This fix simply force loads the GlobalDefaultGameMode before generating schema ensuring it is in memory for generation.

#### Release note
Bugfix: Fixed an issue with schema generation for the default GameMode.

#### Tests
Tested on TPS with DefaultGameMode set and no map override, without fix we have a runtime crash. With fix the GameMode gets scheme generated and no crash.

#### Documentation
Known issue needs removing

#### Primary reviewers
@Vatyx @m-samiec
… start at 10000 (#670)

* Change handcrafter schema components to use Ids starting at 9999 and counting down
* Update constants that reference handcrafted schema types
* Increment RequireSetup to copy over updates handcrafted components
* Better error reporting during schema generation

* Error on class names with leading digits

* Rename function
* Added new doc for Schema

New doc added to explain schema gen, when to generate schema, source control considerations, etc.

* Update schema.md

* Update SpatialGDK/Documentation/content/generating-a-snapshot.md

Co-Authored-By: NotRobSheridan <[email protected]>

* Update SpatialGDK/Documentation/content/generating-a-snapshot.md

Co-Authored-By: NotRobSheridan <[email protected]>

* Edited and removed Snapshot info from multiplte pages

* Update generating-a-snapshot.md

* Objects out, classes in.

* Fixed some linting errors

* Update schema.md

* Update SpatialGDK/Documentation/content/generating-a-snapshot.md

Co-Authored-By: NotRobSheridan <[email protected]>

* Update schema.md
* Bug fix - COND_InitialOnly not doing anything

* Restructure the fix

* Slight comment change/specification
* Removed locator login check

* Vatyx

* Cleanup
* Add the 'cloud launch blocks local launch' bug to known issues

* Update SpatialGDK/Documentation/known-issues.md

Co-Authored-By: BenNaccarato <[email protected]>

* Respond to PR feedback
* Error if blueprint RPCs have by ref arguments

* Add known issue

* Update SpatialGDK/Documentation/known-issues.md

Co-Authored-By: improbable-valentyn <[email protected]>
improbable-valy and others added 20 commits March 19, 2019 13:32
…cesses (#745)

* Added support for starting multiple servers as separate processes

* Use constant

* Update RequireSetup

* Remove TODO
* Clone, not move the GDK

* Toolbar screenshots

* Toolbar and Play Dropdown Screenshots

* Shouldn't use absolute version links

* local dpl clarification

* spacing

* Update outdated Inspector Screenshots

* Removed unused inspector asset

* kebab case required

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

Co-Authored-By: ernopp <[email protected]>

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

Co-Authored-By: ernopp <[email protected]>

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

* Update gdk-template.md

* Update tutorial.md

* Update SpatialGDK/Documentation/content/get-started/tutorial.md
* Fixes associated with re-order of Multiserver shooter tutorial

(1) Introduction - re-ordered text to match ToC
(2) Introduction Added editorial review
(3) Multiserver shooter
- slight title reformatting near the top,
- added pre-requisites,
- removed broken link to missing image
- added  line breaks to do a quick break up of the monolith (white space helps  you understand the sections and makes it less of an information dump)
 - updated the edit status

* Update SpatialGDK/Documentation/content/get-started/introduction.md

* Update SpatialGDK/Documentation/content/get-started/introduction.md

Co-Authored-By: ElleEss <[email protected]>

* Update SpatialGDK/Documentation/content/get-started/tutorial.md

Co-Authored-By: ElleEss <[email protected]>
* multi layer stage 1 c layer, needs testing

* Update SpatialGDK/Documentation/content/multi-layer.md

oops

Co-Authored-By: alastairdglennie <[email protected]>

* Update SpatialGDK/Source/SpatialGDKEditor/Private/SnapshotGenerator/SpatialGDKEditorSnapshotGenerator.cpp

formatting

Co-Authored-By: alastairdglennie <[email protected]>

* pr comments

* typo

* Splitting out separate external schema op dispatcher pipeline

* add static component view reference to op callback template

* lint

* const functions

* iwyu

* add virtual init method in op callback template, add external schema ops to view auth map

* Update SpatialGDK/Source/SpatialGDK/Private/Interop/SpatialDispatcher.cpp

Co-Authored-By: alastairdglennie <[email protected]>

* added op and layers as glossary terms

* valentyn comments, glossary changes

* updated doc

* multi layer stage 1 c layer, needs testing

* Update SpatialGDK/Documentation/content/multi-layer.md

oops

Co-Authored-By: alastairdglennie <[email protected]>

* Update SpatialGDK/Source/SpatialGDKEditor/Private/SnapshotGenerator/SpatialGDKEditorSnapshotGenerator.cpp

formatting

Co-Authored-By: alastairdglennie <[email protected]>

* pr comments

* typo

* Splitting out separate external schema op dispatcher pipeline

* add static component view reference to op callback template

* lint

* const functions

* iwyu

* add virtual init method in op callback template, add external schema ops to view auth map

* Update SpatialGDK/Source/SpatialGDK/Private/Interop/SpatialDispatcher.cpp

Co-Authored-By: alastairdglennie <[email protected]>

* added op and layers as glossary terms

* valentyn comments, glossary changes

* updated doc

* Update SpatialGDK/Documentation/content/glossary.md

Co-Authored-By: danielimprobable <[email protected]>

* Updated review feedback

* Update SpatialGDK/Source/SpatialGDK/Public/Interop/SpatialDispatcher.h

Co-Authored-By: danielimprobable <[email protected]>

* Updated docs

* Update SpatialGDK/Documentation/content/multi-layer.md

Co-Authored-By: danielimprobable <[email protected]>

* Removed unused lambda

* Review feedback

* Fixed authority trakcing for custom components

* sami comments, fixing links

* undo random formatting changes to md files

* more rogue formatting
The function could be called in BP, but not C++. This change fixes that.
* Add soft reference schema not supported to docs

* Update SpatialGDK/Documentation/known-issues.md

Co-Authored-By: BenNaccarato <[email protected]>

* Update SpatialGDK/Documentation/known-issues.md

Co-Authored-By: BenNaccarato <[email protected]>
* Warning message update and other small changes

* Standardised warning messages and fixed any dead ends.
* Small format fixes/updates
* Added editorial update meta data.
*  No significant change.

* Added closing quote!
* Improved UnrealGDKEditorCommandlet to support only a map name (without a path) being passed in.

* Comment spacing
* Update logging on rpc sending and receiving

* Fix

* PR feedback
… on real time (#779)

* Use a separate TimerManager in SpatialNetDriver that ticks on real time

* Change TimerManager to an instance variable, include header
* Add toggle for using QBI to spatial settings - First pass

Also

* Add toggle for using QBI to spatial settings - Second pass

Add to known issues, make a better documented toggle button.
TODO - update config for projects.

* Bugfix - make editor only code editor only

(Failed to build client without this)

* Add missing include

* Remove unused IsUsingQBI in SpatialNetDriver

(Got re-added due to a bad merge)

* PR feedback

Remove ToString, assorted cleanup & neatenings

* Bug fix PR feedback

* Add command line override - useQBI

* Add missing import

* Add the out-of-date launch config to known issues

* Update SpatialGDK/Source/SpatialGDK/Private/Utils/InterestFactory.cpp

Co-Authored-By: BenNaccarato <[email protected]>

* Update SpatialGDK/Source/SpatialGDK/Public/SpatialGDKSettings.h

Co-Authored-By: BenNaccarato <[email protected]>

* remove forward declaration

* make variable names match

* Update known-issues.md

* Update known-issues.md
* Fix the command line override of using QBI

* Replace hacky fix with PostInitProperties

* Update SpatialGDK/Source/SpatialGDK/Public/SpatialGDKSettings.h

Co-Authored-By: BenNaccarato <[email protected]>
* Quick fixes to broken link & outdated command

* Update dependencies.md

* Update gdk-template.md
* change variable type to ensure linux builds work

* add the fix to the header too
* Bug fix - ensure Begin play occurs after GSM is ready (GDK-side)

* Just jump straight into NotifyBeginPlay

* Respond to PR feedback

Move the GSMReadyForPlay call, to remove the need for two calls

* Build against modified engine version
* Added a local state record for which players have been spawned
* Switch default network protocol to TCP

* Set multiplex level to 2
@improbable-prow-robot improbable-prow-robot added the size/XXL Denotes a PR that changes 600+ lines, ignoring generated files. label Apr 4, 2019
@oblm
Copy link
Contributor Author

oblm commented Apr 4, 2019

Closing as we are instead re-pointing release to the release candidate tag.

@oblm oblm closed this Apr 4, 2019
@oblm oblm deleted the 0.3.0-rc branch April 4, 2019 14:24
@oblm oblm restored the 0.3.0-rc branch April 4, 2019 14:25
@oblm oblm merged commit 7110a93 into release Apr 4, 2019
@oblm oblm deleted the 0.3.0-rc branch April 4, 2019 16:18
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
size/XXL Denotes a PR that changes 600+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.