From 983ea3a1a2c1f510996b10ea3d6c36ad640a327f Mon Sep 17 00:00:00 2001 From: Laura <36853437+ElleEss@users.noreply.github.com> Date: Mon, 17 Sep 2018 08:58:22 +0100 Subject: [PATCH] Replaced ICG with GDoc WIP link. Tidied up content... (#348) * Replaced ICG with GDoc WIP link. Tidied up content to make sense in website and on GitHub. 1. Put in link to WIP GDoc for ICG 2. Titied up titles of files: license, how to port, how to generate a snapsjot 3. Added license to website ToC 4. Added all the relevant repo links to repo readme /index page UNR 513 5. Added docs/README so GitHub docs make sense. 6. Tidied up ToC to match SpatialOS ToC format. * Rebrand to "GDK for Unreal" * Fixed links * Fix "GDK for Unreal" branding. * Removed trailing spaces * Added why you should use the website * Added explanation and removed space. * Hid the Toc info in comments & added a temporary concepts link --- .github/CONTRIBUTING.md | 6 +- LICENSE.md | 6 +- README.md | 60 +++++++++------ docs/README.md | 47 ++++++++++++ docs/content/concepts.md | 11 +++ docs/content/directory-structure.md | 18 ++--- docs/content/generating-a-snapshot.md | 8 +- docs/content/getting-started.md | 8 +- docs/content/glossary.md | 10 +-- .../handover-between-server-workers.md | 8 +- docs/content/helper-scripts.md | 2 +- docs/content/interop.md | 76 +------------------ docs/content/porting-unreal-project-to-gdk.md | 2 +- docs/content/singleton-actors.md | 6 +- docs/content/troubleshooting.md | 14 ++-- docs/contributing.md | 4 +- .../unreal-gdk-coding-standards.md | 4 +- docs/index.md | 29 ++++--- docs/known-issues.md | 6 +- docs/license.md | 2 +- docs/toc.md | 26 ++++--- 21 files changed, 186 insertions(+), 167 deletions(-) create mode 100644 docs/README.md create mode 100644 docs/content/concepts.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 96857c72b8..43b886c30a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -7,11 +7,11 @@ later releases and we’ll keep you posted on this). However, we are taking issu [feedback](../README.md#give-us-feedback). ## Coding standards -See the [Unreal GDK C++ coding standards guide](../docs/contributions/unreal-gdk-coding-standards.md). +See the [GDK for Unreal C++ coding standards guide](../docs/contributions/unreal-gdk-coding-standards.md). ## Getting started -See [About the SpatialOS Unreal GDK](../docs/README.md) for - details on how to get started using the Unreal GDK. +See [About the SpatialOS GDK for Unreal](../docs/README.md) for + details on how to get started using the GDK for Unreal. ## Warning This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release is for evaluation purposes only, with limited documentation - diff --git a/LICENSE.md b/LICENSE.md index 46b074bb31..ff1ace9ffb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,9 +1,11 @@ -# Unreal +# License + +## Unreal Your access to and use of the Unreal Engine is governed by the [Unreal Engine End User License Agreement](https://www.unrealengine.com/en-US/previous-versions/udk-licensing-resources). Please ensure that you have agreed to those terms before you access or use the Unreal Engine. -# SpatialOS Unreal GDK +## SpatialOS GDK for Unreal Copyright 2018 Improbable Worlds Limited (“Improbable”) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation diff --git a/README.md b/README.md index 9a391cae21..e29c421154 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,38 @@ -# The SpatialOS Unreal GDK readme (pre-alpha) +# The SpatialOS GDK for Unreal (pre-alpha) -Welcome to the SpatialOS and Unreal GDK community. +<%(TOC)%> -Our SpatialOS community shapes the functionality of the Unreal GDK, so make sure you are part of the conversation. Come and find us on [Discord](https://discordapp.com/channels/311273633307951114/339471548647866368) or talk to us on the **Feedback** section in our [forums](https://forums.improbable.io/) (use the **unreal-gdk** tag - [this link](https://forums.improbable.io/new-topic?category=Feedback&tags=unreal-gdk) takes you there and pre-fills the category and tag). You can also [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. +Welcome to the SpatialOS and GDK for Unreal community. -#### What's the Unreal GDK all about? -The **SpatialOS Unreal GDK** is an Unreal Engine 4 (UE4) [module](https://docs.unrealengine.com/en-us/Programming/UnrealBuildSystem/ModuleFiles) made by Improbable. You can use the Unreal GDK to integrate persistent multiplayer worlds into your Unreal game using the SpatialOS platform. +Our SpatialOS community shapes the functionality of the GDK for Unreal, so make sure you are part of the conversation. Come and find us on [Discord](https://discordapp.com/channels/311273633307951114/339471548647866368) or talk to us on the **Feedback** section in our [forums](https://forums.improbable.io/) (use the **unreal-gdk** tag - [this link](https://forums.improbable.io/new-topic?category=Feedback&tags=unreal-gdk) takes you there and pre-fills the category and tag). You can also [sign up for SpatialOS GDK for Unreal updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. -Find out more about the GDK for Unreal in [our blogpost](https://improbable.io/games/blog/spatialos-unreal-gdk-pre-alpha). +#### What's the GDK for Unreal all about? +The SpatialOS GDK for Unreal is an Unreal Engine 4 (UE4) [module](https://docs.unrealengine.com/en-us/Programming/UnrealBuildSystem/ModuleFiles) made by Improbable. You can use the GDK for Unreal to integrate persistent multiplayer worlds into your Unreal game using the SpatialOS platform. Find out more about the GDK for Unreal in [our blogpost](https://improbable.io/games/blog/spatialos-unreal-gdk-pre-alpha). -You can [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. -* License: use of the contents of this repository is subject to the [Improbable license](LICENSE.md) +* License: use of the contents of this repository is subject to the [Improbable license]({{urlRoot}}/license)
+(Your access to and use of the Unreal Engine is governed by the [Unreal Engine End User License Agreement](https://www.unrealengine.com/en-US/previous-versions/udk-licensing-resources?sessionInvalidated=true). Please ensure that you have agreed to those terms before you access or use the Unreal Engine.) * Version: pre-alpha (for evaluation only) * Unreal Game Development Kit repository: [github.com/spatialos/UnrealGDK](https://github.com/spatialos/UnrealGDK) ## Recommended use -We are releasing the GDK in [pre-alpha](https://docs.improbable.io/reference/13.1/shared/release-policy#maturity-stages) so we can react to feedback and iterate on development quickly. To facilitate this, during our pre-alpha stage we don't have a formal deprecation cycle for APIs and workflows. This means that everything and anything can change. In addition, documentation is limited and some aspects of the GDK are not optimized. +We are releasing the GDK in [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) so we can react to feedback and iterate on development quickly. To facilitate this, during our pre-alpha stage we don't have a formal deprecation cycle for APIs and workflows. This means that everything and anything can change. In addition, documentation is limited and some aspects of the GDK are not optimized. -Given this, we don’t recommend using the the Unreal GDK for games in the production phase just yet. +Given this, we don’t recommend using the the GDK for Unreal for games in the production phase just yet. **Who is it for?**
We recommend you start using the GDK if: -* You don’t mind the rough edges and are interested in contributing to the GDK (see our [contributions](https://docs.improbable.io/unreal/pre-alpha/contributing) policy). + +* You don’t mind the rough edges and are interested in contributing to the GDK (see our [contributions]({{urlRoot}}/contributing) policy). * You want to start evaluating the GDK or prototyping on it for a future project. -Although every feature you need to build your optimal SpatialOS game may not be ready yet, this is a great time to get involved and shape the Unreal GDK. We are committed to improving the GDK rapidly, aiming for an alpha release in Fall 2018. +Although every feature you need to build your optimal SpatialOS game may not be ready yet, this is a great time to get involved and shape the GDK for Unreal. We are committed to improving the GDK rapidly, aiming for an alpha release in Fall 2018. ## Feature List -See the [full feature list](https://docs.improbable.io/unreal/pre-alpha/features) for what is supported in the Unreal GDK +See the [full feature list]({{urlRoot}}/features) for what is supported in the GDK for Unreal. ## Give us feedback -We have released the Unreal GDK this early in development because we want your feedback. Please come and talk to us about the software and the documentation via: +We have released the GDK for Unreal this early in development because we want your feedback. Please come and talk to us about the software and the documentation via: **Discord**
Find us in the [**#unreal** channel](https://discordapp.com/channels/311273633307951114/339471548647866368). You may need to grab Discord [here](https://discordapp.com/). @@ -42,22 +43,31 @@ Visit the **feedback** section in our [forums](https://forums.improbable.io/) an **GitHub issues**
Create an issue in [this repository](https://github.com/spatialos/UnrealGDK/issues). -## Contributions -We are not currently accepting public contributions - see our [contributions](https://docs.improbable.io/unreal/pre-alpha/contributing) policy. However, we are accepting issues and we do want your feedback. - -## Documentation -For guidance on using the SpatialOS Unreal GDK, see the [official documentation](https://docs.improbable.io/unreal/pre-alpha/index). +## Where to get the GDK and starter projects +The GDK and its starter projects are available on GitHub. +* [GDK: github.com/spatialos/UnrealGDK](https://github.com/spatialos/UnrealGDK) +* [Third Person Shooter Game](https://github.com/spatialos/UnrealGDKThirdPersonShooter) +* [Starter Project](https://github.com/spatialos/UnrealStarterProject) +* [The Test Suite](https://github.com/spatialos/UnrealGDKTestSuite) +* [The SpatialOS Unreal Engine fork](https://github.com/improbableio/UnrealEngine/tree/4.19-SpatialOSUnrealGDK)
+**NOTE:** This link may give you a 404. +In order to get access to this fork, you need to link your GitHub account to a verified Epic Games account, and to have agreed to Epic's license. You will not be able to use the GDK for Unreal without doing this first. To do this, see the [Unreal documentation](https://www.unrealengine.com/en-US/ue4-on-github). -For guidance on SpatialOS concepts see the documentation on the [SpatialOS website](https://docs.improbable.io/reference/13.1/shared/concepts/spatialos).
+## SpatialOS Documentation +* For guidance on SpatialOS concepts see the documentation on the [SpatialOS website](https://docs.improbable.io/reference/latest/shared/concepts/spatialos).
+* For information on the SpatialOS GDK for Unreal, we recommend you use the [GDK documentation on the SpatialOS website](https://docs.improbable.io/unreal/pre-alpha/index) because the documentation is designed for the website, however, you can look at the [documentation on GitHub](https://github.com/spatialos/UnrealGDK/tree/master/docs). ## Installation and setup -For prerequisites, installation and setup, see the [Installation and setup](https://docs.improbable.io/unreal/pre-alpha/setup-and-installing) documentation. +For prerequisites, installation and setup, see the [Installation and setup]({{urlRoot}}/setup-and-installing.md) documentation. ## Known issues -See the [Known issues](https://docs.improbable.io/unreal/pre-alpha/known-issues) documentation. +See the [Known issues]({{urlRoot}}/known-issues) documentation. + +## Contributions +We are not currently accepting public contributions - see our [contributions]({{urlRoot}}/contributing) policy. However, we are accepting issues and we do want your feedback. ## Troubleshooting -Run into problems? See the [troubleshooting](docs/content/troubleshooting.md) documentation. +Run into problems? See the [troubleshooting]({{urlRoot}}/content/troubleshooting) documentation. ## Support We are not supporting the pre-alpha release for game development, as this version is for evaluation only. However, please give us your [feedback](#give-us-feedback). @@ -67,9 +77,9 @@ See the [latest roadmap (Trello board)](https://trello.com/b/7wtbtwmL/unreal-gdk ## Unreal Engine changes In order to transform Unreal from a single server engine to a distributed model, we had to make a small number of changes to UE4 code. We will attempt to consolidate and remove (or submit as PR to Epic) as many of these changes as possible. You can see the changes in our forked [Unreal Engine repo, `4.19-SpatialOSUnrealGDK` branch](https://github.com/improbableio/UnrealEngine/tree/4.19-SpatialOSUnrealGDK). -> You may get a 404 error from this link. To get access, see [these instructions](https://docs.improbable.io/unreal/pre-alpha/setup-and-installing#unreal-engine-eula).
+> You may get a 404 error from this link. To get access, see [these instructions]({{urlRoot}}/setup-and-installing#unreal-engine-eula).
## Email updates -You can [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. +You can [sign up for SpatialOS GDK for Unreal updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. (c) 2018 Improbable diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..3a5f339320 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,47 @@ +# The SpatialOS GDK for Unreal (pre-alpha) documentation on GitHub + +This documentation on GitHub is a copy of the [GDK documentation on the SpatialOS documentation website](https://docs.improbable.io/unreal/pre-alpha). Due to this, the internal links do not work and the image links are broken. + +We recommend you use the GDK documentation on the SpatialOS documentation website and not on GitHub. + + + +[//]: # (Guide to ToC on the docs website) +[//]: # (The website's ToC doc is here ./toc.md) +[//]: # (Repository readme - ../README.md : the same as the website index page) + +[//]: # (--------------------------------) + +[//]: # (* SpatialOS GDK for Unreal - website index page - index.md : the same as the repository readme) + +[//]: # (#### Get started) +[//]: # (* Installation and setup - ./setup-and-installing.md) +[//]: # (* Feature list - ./features.md) +[//]: # (* Toolbar - ./content/toolbar.md) +[//]: # (* Glossary - ./content/glossary.md) +[//]: # (* License - ../LICENSE.md) + +[//]: # (#### Concepts) +[//]: # (* Interop Code Generator [ICG] - content/interop.md) +[//]: # (* Actor property handover - content/handover-between-server-workers.md) +[//]: # (* Singleton Actors - content/singleton-actors.md) + +[//]: # (#### How to...) +[//]: # (* Port an Unreal project to the GDK - content/porting-unreal-project-to-gdk) +[//]: # (* Generate a snapshot - content/generating-a-snapshot.md) + +[//]: # (#### Reference) +[//]: # (* Directory structure - content/directory-structure.md) +[//]: # (* Helper scripts - content/helper-scripts.md) + +[//]: # (#### Contributing to the GDK +[//]: # (* Contributions policy - ./contributing.md) +[//]: # (* Coding standards - ./contributions/unreal-gdk-coding-standards.md) + +[//]: # (#### Troubleshooting +[//]: # (* Troubleshooting/FAQ - content/troubleshooting.md) + +[//]: # (#### Known issues +[//]: # (* Known issues - known-issues.md) + +[//]: # (--------------------------------) diff --git a/docs/content/concepts.md b/docs/content/concepts.md new file mode 100644 index 0000000000..ecf244861b --- /dev/null +++ b/docs/content/concepts.md @@ -0,0 +1,11 @@ +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> + +# SpatialOS concepts + +See the SpatialOS documentation for guidance on the SpatialOS core concepts. + +* [What is SpatialOS](https://docs.improbable.io/reference/latest/shared/concepts/spatialos) +* [World, entities, components](https://docs.improbable.io/reference/latest/shared/concepts/world-entities-components) +* [Workers and load balancing](https://docs.improbable.io/reference/latest/shared/concepts/workers-load-balancing) +* [Interest and authority](https://docs.improbable.io/reference/latest/shared/concepts/interest-authority) +* [Schema](https://docs.improbable.io/reference/latest/shared/concepts/schema) \ No newline at end of file diff --git a/docs/content/directory-structure.md b/docs/content/directory-structure.md index 4ee19b2403..152ffb672e 100644 --- a/docs/content/directory-structure.md +++ b/docs/content/directory-structure.md @@ -1,22 +1,22 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> -# Unreal GDK directory structure -The table below contains the contents of the built Unreal GDK after running `BuildGDK.bat`. +# GDK for Unreal directory structure +The table below contains the contents of the built GDK for Unreal after running `BuildGDK.bat`. | Directory | Purpose |-----------|--------- -| `Binaries/ThirdParty/Improbable/` | (Not tracked in git) This folder contains all binaries required for your game project with the Unreal GDK. These files are generated by `BuildGDK.bat`. +| `Binaries/ThirdParty/Improbable/` | (Not tracked in git) This folder contains all binaries required for your game project with the GDK for Unreal. These files are generated by `BuildGDK.bat`. | `build/` | (Not tracked in git) Intermediate folder used for build steps while running `BuildGDK.bat`. -| `linting/` | Contains the linting scripts for checking the Unreal GDK. -| `docs` | Contains the documentation for the Unreal GDK. +| `linting/` | Contains the linting scripts for checking the GDK for Unreal. +| `docs` | Contains the documentation for the GDK for Unreal. | `fastbuild` | Contains files related to installing FASTBuild. **Note** these currently only work for Improbable engineers. | `packages/` | (Not tracked in git) Contains the dependencies for building the Unreal SDK codegen. -| `Plugins/SpatialGDK/SpatialGDKEditorToolbar/` | The [SpatialOS Unreal GDK toolbar]({{urlRoot}}/content/toolbar.md) within the Unreal Editor, from which you can take snapshots, generate interop code, start and stop deployments, and access the SpatialOS Inspector. +| `Plugins/SpatialGDK/SpatialGDKEditorToolbar/` | The [SpatialOS GDK for Unreal toolbar]({{urlRoot}}/content/toolbar.md) within the Unreal Editor, from which you can take snapshots, generate interop code, start and stop deployments, and access the SpatialOS Inspector. | `schema` | Contains the schema files required for the GDK to interact with SpatialOS. | `Scripts/` | Contains a set of helper scripts used to build a GDK worker. | `Source/Programs/` | Contains the Unreal SDK code generator. | `Source/SpatialGDK/Legacy/` | Contains the source code from the [GitHub-hosted Unreal SDK](https://github.com/spatialos/UnrealSDK/tree/master/Game/Source/SpatialOS). | `Source/SpatialGDK/Legacy/Deprecated/` | Contains the forked source code from the [GitHub-hosted Unreal SDK](https://github.com/spatialos/UnrealSDK/tree/master/Game/Source/SpatialOS) that the GDK does not depend on. This is present purely for backwards compatibility. | `Source/SpatialGDK/Public/WorkerSdk/` | (Not tracked in git) Contains the [C++ worker SDK](https://docs.improbable.io/reference/latest/cppsdk/introduction) headers. You install these when you run `BuildGDK.bat` -| `Source/SpatialGDK/Public` | Public source code of the Unreal GDK module. -| `Source/SpatialGDK/Private` | Private source code of the Unreal GDK module. +| `Source/SpatialGDK/Public` | Public source code of the GDK for Unreal module. +| `Source/SpatialGDK/Private` | Private source code of the GDK for Unreal module. diff --git a/docs/content/generating-a-snapshot.md b/docs/content/generating-a-snapshot.md index f095ab0b51..e12fc43222 100644 --- a/docs/content/generating-a-snapshot.md +++ b/docs/content/generating-a-snapshot.md @@ -1,10 +1,10 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> -# Generating a snapshot +# How to generate a snapshot If you're not familiar with snapshots in the context of SpatialOS, please look at the [full snapshot documentation](https://docs.improbable.io/reference/latest/shared/operate/snapshots) (SpatialOS documentation). -The SpatialOS Unreal GDK snapshots contain two kinds of entities: critical entities and placeholders. +The SpatialOS GDK for Unreal snapshots contain two kinds of entities: critical entities and placeholders. ### Critical entities @@ -21,7 +21,7 @@ These entities exists only to set up server-worker boundaries in a way that is e ## Generating a snapshot -To generate a snapshot, use the **Snapshot** button on the SpatialOS Unreal GDK toolbar in the Unreal Editor: +To generate a snapshot, use the **Snapshot** button on the SpatialOS GDK for Unreal toolbar in the Unreal Editor: ![Snapshot]({{assetRoot}}assets/screen-grabs/snapshot.png) diff --git a/docs/content/getting-started.md b/docs/content/getting-started.md index d6ff41ad21..499187cb13 100644 --- a/docs/content/getting-started.md +++ b/docs/content/getting-started.md @@ -1,9 +1,9 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> -# SpatialOS Unreal GDK documentation +# SpatialOS GDK for Unreal documentation ## How to get started -We recommend you start by following the [Installation and setup guide]({{urlRoot}}/setup-and-installing.md) to set up the Unreal GDK, the SpatialOS Unreal Engine fork, and the Starter Project (or your own Unreal project). +We recommend you start by following the [Installation and setup guide]({{urlRoot}}/setup-and-installing.md) to set up the GDK for Unreal, the SpatialOS Unreal Engine fork, and the Starter Project (or your own Unreal project). After you've run through the setup guide (including setting up Actor replication), take a look at the following pages, which explain some of the key concepts to understand when developing SpatialOS games: @@ -13,7 +13,7 @@ After you've run through the setup guide (including setting up Actor replication To get some background on the GDK, you can check out [our blogpost](https://improbable.io/games/blog/spatialos-unreal-gdk-pre-alpha). ## Give us feedback -We want your feedback on the Unreal GDK, its documentation and its [roadmap](https://trello.com/b/7wtbtwmL/unreal-gdk-roadmap) (Trello board) +We want your feedback on the GDK for Unreal, its documentation and its [roadmap](https://trello.com/b/7wtbtwmL/unreal-gdk-roadmap) (Trello board) **Discord**
Find us in the [**#unreal** channel](https://discordapp.com/channels/311273633307951114/339471548647866368). You may need to grab Discord [here](https://discordapp.com/). diff --git a/docs/content/glossary.md b/docs/content/glossary.md index f5d954d26f..53bc12f0a2 100644 --- a/docs/content/glossary.md +++ b/docs/content/glossary.md @@ -1,19 +1,19 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> # Glossary ## SpatialOS terms See the [SpatialOS glossary](https://docs.improbable.io/reference/latest/shared/glossary) for terms specific to SpatialOS. -## Unreal GDK repositories -* The SpatialOS Unreal GDK: https://github.com/spatialos/UnrealGDK +## GDK for Unreal repositories +* The SpatialOS GDK for Unreal: https://github.com/spatialos/UnrealGDK * Starter Project: https://github.com/spatialos/UnrealGDKStarterProject -* SpatialOS Unreal GDK fork of Unreal Engine: https://github.com/improbableio/UnrealEngine/tree/4.19-SpatialOSUnrealGDK
+* SpatialOS GDK for Unreal fork of Unreal Engine: https://github.com/improbableio/UnrealEngine/tree/4.19-SpatialOSUnrealGDK
You may get a 404 error from this link. To get access, see [these instructions]({{urlRoot}}/setup-and-installing#unreal-engine-eula). * Third-Person Shooter: https://github.com/spatialos/UnrealGDKThirdPersonShooter * Test Suite: https://github.com/spatialos/UnrealGDKTestSuite -## Unreal GDK terms +## GDK for Unreal terms ### Actor handover Handover is a new `UPROPERTY` tag. It allows games built in Unreal which uses single-server architecture to take advantage of SpatialOS’ distributed, persistent server architecture. See [Actor and entity property handover between server-workers]({{urlRoot}}/content/handover-between-server-workers.md). diff --git a/docs/content/handover-between-server-workers.md b/docs/content/handover-between-server-workers.md index fbe35ecbf9..dd4a9cb524 100644 --- a/docs/content/handover-between-server-workers.md +++ b/docs/content/handover-between-server-workers.md @@ -1,4 +1,4 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> # Actor property handover between SpatialOS servers ## Overview @@ -9,7 +9,7 @@ In Unreal’s native client-server architecture, your game server holds the cano In SpatialOS games, the work of the server is spread across several servers (known as “server-workers” in SpatialOS). (Note that in SpatialOS, game clients are “client-workers” - there’s more information on [workers](https://docs.improbable.io/reference/latest/shared/concepts/workers) in the SpatialOS documentation.) -As Unreal expects there to be only one server, rather than several servers, the SpatialOS Unreal GDK has a custom solution to take advantage of the SpatialOS distributed server architecture. This involves a handover of responsibility for an Actor and its properties between server-workers. (Actors approximate to “entities” in SpatialOS, so we refer to them as “entities” when we are talking about what happens to them in SpatialOS - handily, “properties” in an entity’s components in SpatialOS map to replicated Actor properties. You can find out more about [entities, components and properties](https://docs.improbable.io/reference/latest/shared/concepts/entities) in the SpatialOS documentation.) +As Unreal expects there to be only one server, rather than several servers, the SpatialOS GDK for Unreal has a custom solution to take advantage of the SpatialOS distributed server architecture. This involves a handover of responsibility for an Actor and its properties between server-workers. (Actors approximate to “entities” in SpatialOS, so we refer to them as “entities” when we are talking about what happens to them in SpatialOS - handily, “properties” in an entity’s components in SpatialOS map to replicated Actor properties. You can find out more about [entities, components and properties](https://docs.improbable.io/reference/latest/shared/concepts/entities) in the SpatialOS documentation.) Server-workers have [authority](https://docs.improbable.io/reference/latest/shared/design/understanding-access#understanding-read-and-write-access-authority) (SpatialOS documentation) over entities, meaning that they are responsible for properties of an entity. Only one server-worker has authority over the properties of an entity at a time. In order to [load balance](https://docs.improbable.io/reference/latest/shared/glossary#load-balancing) (SpatialOS documentation) between server-workers, each server-worker has only a certain area of authority, so each server-worker has a boundary. This means that, at the boundary between server-worker 1 and server-worker 2, server-worker 1 needs to transfer authority of entity properties to server-worker 2 so that server-worker 2 can seamlessly continue to simulate the entity exactly where server-worker 1 stopped. (See SpatialOS documentation on [`AuthorityChange`](https://docs.improbable.io/reference/latest/shared/design/operations#authoritychange).) @@ -33,7 +33,7 @@ float MyServerSideVariable; The GDK now ensures that server-workers transfer these tagged Actor’s properties between them. ## Native Unreal class properties handover -To ensure native Unreal classes work with the Unreal GDK, we are making handover-related changes on a class-by-class basis as we identify appropriate properties for `Handover` tags. +To ensure native Unreal classes work with the GDK for Unreal, we are making handover-related changes on a class-by-class basis as we identify appropriate properties for `Handover` tags. **Classes with properties tagged with `Handover` status (2018-07-31):** @@ -43,7 +43,7 @@ To ensure native Unreal classes work with the Unreal GDK, we are making handover We will continue to extend our support to more built-in Actor and component types. ## The difference between `Replicated` and `Handover` tags -It’s important to understand that the native Unreal tag `Replicated` and Unreal GDK `Handover` tag have different uses: +It’s important to understand that the native Unreal tag `Replicated` and GDK for Unreal `Handover` tag have different uses: * `Replicated` tags identify Actor properties that any client-worker or server-worker needs to have interest in. * `Handover` tags identify Actor properties that only server-workers need to have interest in and allow server-workers to transfer authority between them. diff --git a/docs/content/helper-scripts.md b/docs/content/helper-scripts.md index 56d7d140c2..0faaa2b9fd 100644 --- a/docs/content/helper-scripts.md +++ b/docs/content/helper-scripts.md @@ -1,4 +1,4 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> # Helper scripts diff --git a/docs/content/interop.md b/docs/content/interop.md index 298fdcfc88..ad1e749dc0 100644 --- a/docs/content/interop.md +++ b/docs/content/interop.md @@ -1,76 +1,8 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> # Interop Code Generator (ICG) -<%(TOC)%> +We are working on updating this document; please use the work-in-progress Google Doc about the [Interop Code Generator](https://docs.google.com/document/d/e/2PACX-1vSQPyE77VdherfGgk4Bd63i9bgABtXBjZ4KvifwnxKZsSHAQqAPJsazkgyTQy-LgLCBdtQy0QmzCcjc/pub). (2018-09-13) + + ------ -The Interop Code Generator (ICG) is part of the SpatialOS Unreal GDK toolbar. It takes a set of Unreal classes and generates routing code (called ["type bindings"]({{urlRoot}}/content/glossary#type-bindings)) that enables automated communication between Unreal and SpatialOS. - -The ICG creates SpatialOS `.schema` files from `UObject` class layouts via Unreal's reflection system (a system in Unreal for programs to self-examine). See the Unreal website’s blog on [the reflection system](https://www.unrealengine.com/en-US/blog/unreal-property-system-reflection) and SpatialOS [documentation on schema](https://docs.improbable.io/reference/latest/shared/schema/introduction). - -The `.schema` files enable SpatialOS to understand and store Unreal data. The ICG also creates `SpatialTypeBinding` classes (known as [type bindings]({{urlRoot}}/content/glossary#type-bindings)). - -You will want to generate type bindings for all **replicated Actors** and **replicated Actor Components** in your project. - -These classes: - -* convert entity property updates to and from SpatialOS in the form of [component updates](https://docs.improbable.io/reference/latest/csharpsdk/using/sending-data#sending-and-receiving-component-updates). -* send and receive Unreal RPCs (remote procedure calls) via [SpatialOS commands](https://docs.improbable.io/reference/latest/shared/design/commands). -* have logic to handle conditional replication based on Unreal Actor ownership. - -> [Known Issue]({{urlRoot}}/known-issues.md): the ICG is not optimized. - -## Running the Interop Code Generator (ICG) - -### When to use the ICG -You need to use the ICG to generate `.schema` files and type bindings for any new native class or new Blueprint class that you want to replicate (for simplicity we’ll call these “user-defined classes”) representing new features in your game. - -### How to use the ICG -As the Interop Code Generator is a plugin for the Unreal toolbar, to use it you must first: - -* build your game project to access the SpatialOS fork of Unreal Engine as well as the Unreal GDK. (You do this as part of the [installation and setup]({{urlRoot}}/setup-and-installing), swapping the “Starter Project” and its file location for your game’s name and file location.) -* tag the classes that you want to create typebindings for. For instructions on how to do this, see the guidance on [Setting up the Interop Code Generator](#setting-up-the-interop-code-generator), below. - -The SpatialOS build of Unreal has an **Interop Codegen** button; on the SpatialOS Unreal GDK toolbar, select **Interop Codegen** to trigger the ICG process: - -![Interop Codegen button on toolbar]({{assetRoot}}assets/screen-grabs/codegen.png) - -## Setting up the Interop Code Generator - -In order for the ICG to run correctly, you need to add any new user-defined class, along with its dependencies, to the **SpatialOS Unreal GDK** settings in the Unreal Engine 4 Editor tab before you run it. - -To do this: - -1. Go to **Edit** > **Project Settings...** > **SpatialOS Unreal GDK** > **Toolbar**. -1. In the entry **Classes to generate typebindings for**, add your user-defined class and the include dependencies that the typebinding requires to compile. - -For further information on the settings available through the Unreal GDK toolbar, see the [Settings]({{urlRoot}}/content/toolbar#settings) section of the toolbar documentation. - -### Example - -Identify the classes you want to replicate across SpatialOS, and tag each UClass with the `SpatialType` keyword. The code snippet below demonstrates how we set up the class `StarterProjectPlayerController` in the Unreal GDK Starter Project. -``` -UCLASS(SpatialType) -class STARTERPROJECT_API AStarterProjectPlayerController : public APlayerController -{ - GENERATED_BODY() - ... -} -``` - -This generates the appropriate `.schema` files and type bindings as `SpatialTypeBinding` files. Using the Starter Project example: - -* The generated `.schema` files are in the Starter Project repository. They are at `/spatial /schema/improbable/generated/`. -The `.schema` files have names relevant to the class name you give them. From the Starter Project example above: `StarterProjectPlayerController.Schema` and `PlayerCharacter.schema`. - - Some `.schema` files have a `Types` tag; in this situation `PlayerCharacter.schema` files have the filename `PlayerCharacterTypes.schema`. This indicates this is a schema containing RPC types which child classes can reuse. - -* The generated `SpatialTypeBinding` files are in the [Unreal GDK repository](https://github.com/spatialos/UnrealGDK) at `/workers/unreal/Game/source/GameName/Generated/`. - -### Editing the Interop Code Generator tool -If you edit the Interop Code Generator tool itself, you might wish to delete the ICG generated folders as they can cause compilation issues if any of your changes introduce badly generated code. - -[//]: # (Editorial review status: Full review 2018-07-13) -[//]: # (Issues to deal with, but not limited to:) -[//]: # (1. Update note about current lack of optimisation - JIRA: UNR-412) -[//]: # (2. Add screenshot of toolbar) diff --git a/docs/content/porting-unreal-project-to-gdk.md b/docs/content/porting-unreal-project-to-gdk.md index 3ae8238bf1..7da7f3f848 100644 --- a/docs/content/porting-unreal-project-to-gdk.md +++ b/docs/content/porting-unreal-project-to-gdk.md @@ -1,6 +1,6 @@ <%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> -# Porting a native Unreal project to the Unreal GDK +# How to port a native Unreal project to the Unreal GDK > This workflow is very subject to change. We're aware that it's not optimized, and one of our priorities is to improve iteration times. diff --git a/docs/content/singleton-actors.md b/docs/content/singleton-actors.md index 122a275a30..288e11e286 100644 --- a/docs/content/singleton-actors.md +++ b/docs/content/singleton-actors.md @@ -1,4 +1,4 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> # Singleton Actors @@ -9,7 +9,7 @@ There are two kinds of Singleton Actors: * **Public Singleton Actors** - Singleton Actors which are replicated to server-workers and client-workers. `GameState` is a Public Singleton Actor. * **Private Singletons** - Singleton Actors which are replicated to server-workers, but not accessible to client-workers. `GameMode` is a Private Singleton Actor. -You can define any class as a Singleton Actor. At the moment the Unreal GDK only supports Public Singleton Actors. +You can define any class as a Singleton Actor. At the moment the GDK for Unreal only supports Public Singleton Actors. Each server-worker should instantiate their own local version of each Singleton Actor. For `GameMode` and `GameState`, Unreal Engine does this automatically. @@ -59,5 +59,5 @@ In the `bridge` field of the worker configuration file, there should be a sectio This creates two streaming queries, one for the `GlobalStateManager` and one for the `ExampleGameGameState` component. For each Singleton Actor you register, you need to add another streaming query for that Singleton Actor’s `MultiClientRepData` component. We understand this workflow is a little clumsy and will be improved in the future. -And that's it! You have successfully specified a Singleton Actor. Make sure you generate a new snapshot and [type bindings]({{urlRoot}}/content/interop) using the [SpatialOS Unreal GDK toolbar]({{urlRoot}}/content/toolbar). +And that's it! You have successfully specified a Singleton Actor. Make sure you generate a new snapshot and [type bindings]({{urlRoot}}/content/interop) using the [SpatialOS GDK for Unreal toolbar]({{urlRoot}}/content/toolbar). diff --git a/docs/content/troubleshooting.md b/docs/content/troubleshooting.md index 3963038da3..574c092b91 100644 --- a/docs/content/troubleshooting.md +++ b/docs/content/troubleshooting.md @@ -1,8 +1,8 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> + +# GDK for Unreal Troubleshooting/FAQ -# Unreal GDK Troubleshooting/FAQ ------- **Q:** I’m getting the error `"Could not find definition for module 'SpatialGDK' (referenced via Target -> .Build.cs)"` when building my project. @@ -22,16 +22,16 @@ Validate that the SpatialOS entity that represents your Actor appears in the Ins ------ -**Q:** I've moved my game over to the SpatialOS Unreal GDK and am getting a crash in `UEngine::TickWorldTravel` when launching a PIE instance of my game. +**Q:** I've moved my game over to the SpatialOS GDK for Unreal and am getting a crash in `UEngine::TickWorldTravel` when launching a PIE instance of my game. **A:** Ensure that you have set up your Game Instance Class in your project settings (**Edit** > **Project Settings** > **Project** > **Maps & Modes** > **Game Instance Class**) to point to either `SpatialGameInstance` or a game instance that inherits from `USpatialGameInstance`. ------ -**Q:** Can I change between Unreal Engine’s networking stack and the SpatialOS Unreal GDK networking stack? +**Q:** Can I change between Unreal Engine’s networking stack and the SpatialOS GDK for Unreal networking stack? **A:** Yes you can! In Visual Studio open the Properties window for you game project (right-click on your project and select **Properties**). Select the **Debugging** tab and, in the **Command Arguments** field, add the following to the to the end of the existing command line arguments: -`-NetDriverOverrides=/Script/OnlineSubsystemUtils.IpNetDriver`. When you launch your project, it'll use the default Unreal networking stack. Just remove the line if you want to go back to the SpatialOS Unreal GDK networking stack. +`-NetDriverOverrides=/Script/OnlineSubsystemUtils.IpNetDriver`. When you launch your project, it'll use the default Unreal networking stack. Just remove the line if you want to go back to the SpatialOS GDK for Unreal networking stack. ------ @@ -49,7 +49,7 @@ Note that you may see similar errors if the same issue applies to the schema gen ------ -**Q:** My game uses reliable multicast RPCs - why does the SpatialOS Unreal GDK not support these? +**Q:** My game uses reliable multicast RPCs - why does the SpatialOS GDK for Unreal not support these? **A:** The underlying implementation of multicast RPCs uses SpatialOS [events](https://docs.improbable.io/reference/latest/shared/glossary#event) (SpatialOS documentation). SpatialOS events can only be sent unreliably. Additionally, the cost of a multicast RPC scales with the number of client-workers present in a deployment, which means they can get very expensive. A better approach would be to send RPCs to only the workers that are close to the broadcasting worker. diff --git a/docs/contributing.md b/docs/contributing.md index 306e23b65e..b4a88e1ff8 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -5,7 +5,7 @@ later releases and we’ll keep you posted on this). However, we are taking issu [feedback]({{urlRoot}}/index#give-us-feedback). ## Coding standards -See the [Unreal GDK C++ coding standards guide]({{urlRoot}}/contributions/unreal-gdk-coding-standards). +See the [GDK for Unreal C++ coding standards guide]({{urlRoot}}/contributions/unreal-gdk-coding-standards). ## Warning -This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use) \ No newline at end of file +This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use) \ No newline at end of file diff --git a/docs/contributions/unreal-gdk-coding-standards.md b/docs/contributions/unreal-gdk-coding-standards.md index 04e4c40bdf..6966eaf1f1 100644 --- a/docs/contributions/unreal-gdk-coding-standards.md +++ b/docs/contributions/unreal-gdk-coding-standards.md @@ -1,8 +1,8 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> ------- -# Unreal GDK C++ coding standards +# GDK for Unreal C++ coding standards > In general, we follow the [Coding Standard](https://docs.unrealengine.com/en-us/Programming/Development/CodingStandard) (Unreal documentation) set out by Epic. This page highlights some additions to Epic's guidelines. diff --git a/docs/index.md b/docs/index.md index a326669a9b..351a0cdd8e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,13 +7,11 @@ Welcome to the SpatialOS and Unreal GDK community. Our SpatialOS community shapes the functionality of the Unreal GDK, so make sure you are part of the conversation. Come and find us on [Discord](https://discordapp.com/channels/311273633307951114/339471548647866368) or talk to us on the **Feedback** section in our [forums](https://forums.improbable.io/) (use the **unreal-gdk** tag - [this link](https://forums.improbable.io/new-topic?category=Feedback&tags=unreal-gdk) takes you there and pre-fills the category and tag). You can also [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. #### What's the Unreal GDK all about? -The **SpatialOS Unreal GDK** is an Unreal Engine 4 (UE4) [module](https://docs.unrealengine.com/en-us/Programming/UnrealBuildSystem/ModuleFiles) made by Improbable. You can use the Unreal GDK to integrate persistent multiplayer worlds into your Unreal game using the SpatialOS platform. +The SpatialOS Unreal GDK is an Unreal Engine 4 (UE4) [module](https://docs.unrealengine.com/en-us/Programming/UnrealBuildSystem/ModuleFiles) made by Improbable. You can use the Unreal GDK to integrate persistent multiplayer worlds into your Unreal game using the SpatialOS platform. Find out more about the GDK for Unreal in [our blogpost](https://improbable.io/games/blog/spatialos-unreal-gdk-pre-alpha). -Find out more about the GDK for Unreal in [our blogpost](https://improbable.io/games/blog/spatialos-unreal-gdk-pre-alpha). -You can [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. - -* License: use of the contents of this repository is subject to the [Improbable license]({{urlRoot}}/license) +* License: use of the contents of this repository is subject to the [Improbable license]({{urlRoot}}/license)
+(Your access to and use of the Unreal Engine is governed by the [Unreal Engine End User License Agreement](https://www.unrealengine.com/en-US/previous-versions/udk-licensing-resources?sessionInvalidated=true). Please ensure that you have agreed to those terms before you access or use the Unreal Engine.) * Version: pre-alpha (for evaluation only) * Unreal Game Development Kit repository: [github.com/spatialos/UnrealGDK](https://github.com/spatialos/UnrealGDK) @@ -31,7 +29,7 @@ We recommend you start using the GDK if: Although every feature you need to build your optimal SpatialOS game may not be ready yet, this is a great time to get involved and shape the Unreal GDK. We are committed to improving the GDK rapidly, aiming for an alpha release in Fall 2018. ## Feature List -See the [full feature list]({{urlRoot}}/features) for what is supported in the Unreal GDK +See the [full feature list]({{urlRoot}}/features) for what is supported in the Unreal GDK. ## Give us feedback We have released the Unreal GDK this early in development because we want your feedback. Please come and talk to us about the software and the documentation via: @@ -45,11 +43,19 @@ Visit the **feedback** section in our [forums](https://forums.improbable.io/) an **GitHub issues**
Create an issue in [this repository](https://github.com/spatialos/UnrealGDK/issues). -## Contributions -We are not currently accepting public contributions - see our [contributions]({{urlRoot}}/contributing) policy. However, we are accepting issues and we do want your feedback. +## Where to get the GDK and starter projects +The GDK and its starter projects are available on GitHub. +* [GDK: github.com/spatialos/UnrealGDK](https://github.com/spatialos/UnrealGDK) +* [Third Person Shooter Game](https://github.com/spatialos/UnrealGDKThirdPersonShooter) +* [Starter Project](https://github.com/spatialos/UnrealStarterProject) +* [The Test Suite](https://github.com/spatialos/UnrealGDKTestSuite) +* [The SpatialOS Unreal Engine fork](https://github.com/improbableio/UnrealEngine/tree/4.19-SpatialOSUnrealGDK)
+**NOTE:** This link may give you a 404. +In order to get access to this fork, you need to link your GitHub account to a verified Epic Games account, and to have agreed to Epic's license. You will not be able to use the Unreal GDK without doing this first. To do this, see the [Unreal documentation](https://www.unrealengine.com/en-US/ue4-on-github). ## SpatialOS Documentation -For guidance on SpatialOS concepts see the documentation on the [SpatialOS website](https://docs.improbable.io/reference/latest/shared/concepts/spatialos).
+* For guidance on SpatialOS concepts see the documentation on the [SpatialOS website](https://docs.improbable.io/reference/latest/shared/concepts/spatialos).
+* For information on the SpatialOS GDK for Unreal, we recommend you use the [GDK documentation on the SpatialOS website](https://docs.improbable.io/unreal/pre-alpha/index) because the documentation is designed for the website, however, you can look at the [documentation on GitHub](https://github.com/spatialos/UnrealGDK/tree/master/docs). ## Installation and setup For prerequisites, installation and setup, see the [Installation and setup]({{urlRoot}}/setup-and-installing.md) documentation. @@ -57,6 +63,9 @@ For prerequisites, installation and setup, see the [Installation and setup]({{ur ## Known issues See the [Known issues]({{urlRoot}}/known-issues) documentation. +## Contributions +We are not currently accepting public contributions - see our [contributions]({{urlRoot}}/contributing) policy. However, we are accepting issues and we do want your feedback. + ## Troubleshooting Run into problems? See the [troubleshooting]({{urlRoot}}/content/troubleshooting) documentation. @@ -71,4 +80,4 @@ In order to transform Unreal from a single server engine to a distributed model, > You may get a 404 error from this link. To get access, see [these instructions]({{urlRoot}}/setup-and-installing#unreal-engine-eula).
## Email updates -You can [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. +You can [sign up for SpatialOS Unreal GDK updates](http://go.pardot.com/l/169082/2018-06-15/27ld2t) direct to your mailbox. \ No newline at end of file diff --git a/docs/known-issues.md b/docs/known-issues.md index 6d01654a7f..02a2283ddc 100644 --- a/docs/known-issues.md +++ b/docs/known-issues.md @@ -1,6 +1,6 @@ -<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS Unreal GDK is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> +<%(Callout type="warn" message="This [pre-alpha](https://docs.improbable.io/reference/latest/shared/release-policy#maturity-stages) release of the SpatialOS GDK for Unreal is for evaluation and feedback purposes only, with limited documentation - see the guidance on [Recommended use]({{urlRoot}}/index#recommended-use)")%> -# Unreal GDK known issues +# GDK for Unreal known issues Known issue = any major user-facing bug or lack of user-facing feature that: 1. diverges from vanilla Unreal design or implementation (e.g. ordering of reliable RPCs), **OR** @@ -19,6 +19,6 @@ Known issue = any major user-facing bug or lack of user-facing feature that: | Compilation error for RPCs that take structs with private members. | 2018-07-16 | [UNR-144](https://improbableio.atlassian.net/browse/UNR-144) | Add the type binding as a friend class. | |Interop codegen fails when the destination file is locked. The workflow is less than ideal as you can't run it again until you restart the Unreal Editor. | 2018-07-16 | [UNR-350](https://improbableio.atlassian.net/browse/UNR-350) | Ensure destination files/folders are unlocked. | | Deleting entities directly from the Inspector causes undefined behavior. | 2018-07-17 | [UNR-425](https://improbableio.atlassian.net/projects/UNR/issues/UNR-425) | None | -| Having generated files in the symlinked folder `Source/SpatialGDK` means you can’t work in two projects at the same time using the same clone of the SpatialOS Unreal GDK. | 2018-07-23 | [UNR-458](https://improbableio.atlassian.net/browse/UNR-458) | Clone the Unreal GDK separately for each project. | +| Having generated files in the symlinked folder `Source/SpatialGDK` means you can’t work in two projects at the same time using the same clone of the SpatialOS GDK for Unreal. | 2018-07-23 | [UNR-458](https://improbableio.atlassian.net/browse/UNR-458) | Clone the GDK for Unreal separately for each project. | | We don't support listen servers. | 2018-07-30 | | Use dedicated servers instead. | | Stably-named replicated actors cannot be referred to by their path after transitioning between servers | 2018-08-10 | [UNR-473](https://improbableio.atlassian.net/projects/UNR/issues/UNR-473) | None | diff --git a/docs/license.md b/docs/license.md index 46b074bb31..7f3f3099fc 100644 --- a/docs/license.md +++ b/docs/license.md @@ -3,7 +3,7 @@ Your access to and use of the Unreal Engine is governed by the [Unreal Engine En agreed to those terms before you access or use the Unreal Engine. -# SpatialOS Unreal GDK +# SpatialOS GDK for Unreal Copyright 2018 Improbable Worlds Limited (“Improbable”) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation diff --git a/docs/toc.md b/docs/toc.md index 924ec15652..68dc3a7953 100644 --- a/docs/toc.md +++ b/docs/toc.md @@ -1,21 +1,29 @@ --

[SpatialOS GDK for Unreal]({{urlRoot}}/index)

--

Get started

+-

[- SpatialOS GDK for Unreal]({{urlRoot}}/index)

+- *** +-

+ Get started

- [Installation and setup]({{urlRoot}}/setup-and-installing) - [Feature list]({{urlRoot}}/features) - [Toolbar]({{urlRoot}}/content/toolbar) - [Glossary]({{urlRoot}}/content/glossary) --

Concepts

- - [Interop Code Generator]({{urlRoot}}/content/interop) + - [License]({{urlRoot}}/license) +- *** +-

+ Concepts

+ - [SpatialOS concepts]({{urlRoot}}/content/concepts) + - [Interop Code Generator (ICG)]({{urlRoot}}/content/interop) - [Actor property handover]({{urlRoot}}/content/handover-between-server-workers) - [Singleton Actors]({{urlRoot}}/content/singleton-actors) --

How to...

+- *** +-

+ How to...

- [Port an Unreal project to the GDK]({{urlRoot}}/content/porting-unreal-project-to-gdk) - [Generate a snapshot]({{urlRoot}}/content/generating-a-snapshot) --

Reference

+- *** +-

+ Reference

- [Directory structure]({{urlRoot}}/content/directory-structure) - [Helper scripts]({{urlRoot}}/content/helper-scripts) --

Contributing to the GDK

+- *** +-

+ Contributing to the GDK

- [Contribution policy]({{urlRoot}}/contributing) - [Coding standards]({{urlRoot}}/contributions/unreal-gdk-coding-standards) --

[Troubleshooting]({{urlRoot}}/content/troubleshooting)

--

[Known issues]({{urlRoot}}/known-issues)

\ No newline at end of file +- *** +-

[- Troubleshooting]({{urlRoot}}/content/troubleshooting)

+-

[- Known issues]({{urlRoot}}/known-issues)

\ No newline at end of file