Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

README overhaul: More complete, and organize as separate pages #101

Merged
merged 25 commits into from
Nov 11, 2021

Conversation

pgilmorepf
Copy link
Contributor

@pgilmorepf pgilmorepf commented Oct 29, 2021

First, the main readme page is now just sequential list linking the other pages.
Each other page has a specific limited scope and goal.
The other pages sequentially link to each next page, and back to the main page.
Previous details that were in the singular readme are transferred to the individual section documents.
New documents are created to cover gaps in the setup which were previously just assumed.

Copy link
Contributor

@stkrwork stkrwork left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one note that maybe should still be added, and that is to not call ReadyForPlayers in the callback of a web request or in the callbacks of PlayFab API calls from the PlayFab SDK, as otherwise the game enters a deadlock, because the HTTP module uses a mutex internally to lock adding in new http requests to the queue. If the then calls ready for players, it will mean that the heartbeat requests will wait for this lock to be released

Cross reference new and existing files.
Add a new file for testing new deployments locally (Placeholder)
Determined that I missed a guide/step which is the required various build configurations for the example project.
Sequentially linking all the docs together in navigation.
Fixing typos, bugs, and clarifications
@pgilmorepf
Copy link
Contributor Author

Acknowledge your comment about ReadyForPlayers. I'm going to investigate a code level fix (Like throw an exception instead of deadlock). If I can't work it out, I'll add the comment as you suggest.

UnrealPlugin/README.md Outdated Show resolved Hide resolved
Copy link
Contributor

@dgkanatsios dgkanatsios left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@AmieDD
Copy link

AmieDD commented Nov 5, 2021

When linking other documents in the readme guides you should leave out /en-US/ as this is country specific. This will ensure the linked documentation will point to the country/language link of the user.

Example

https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/Networking/HowTo/DedicatedServers/
should be
https://docs.unrealengine.com/4.27/InteractiveExperiences/Networking/HowTo/DedicatedServers/

@pgilmorepf pgilmorepf changed the title Update README.md README overhaul: More complete, and organize as separate pages Nov 5, 2021
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
UnrealPlugin/README.md Outdated Show resolved Hide resolved
Copy link

@joannaleecy joannaleecy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a few more comments. Tons of great information. I love all the details. Just need more time to make it shine. :)

@@ -1,4 +1,5 @@
# Instructions on Integrating the PlayFab GSDK Unreal Plugin Preview

This Unreal Plugin is implementing the GSDK directly in Unreal Engine.
Copy link

@joannaleecy joannaleecy Nov 10, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This article describes how to integrate PlayFab Multiplayer Server SDK (GSDK) Unreal Online Subsystem (OSS) plugin with your Unreal game project."

@@ -1,4 +1,5 @@
# Instructions on Integrating the PlayFab GSDK Unreal Plugin Preview

This Unreal Plugin is implementing the GSDK directly in Unreal Engine.

This plugin offers both a Blueprint API and a C++ API. This does however not mean that the Blueprint API does not require the game to be a C++ project. If it is currently a Blueprint only project, then you need to convert it beforehand, before adding the plugin.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slightly unclear on what game project it should be.

Perhaps you mean that the game project needs to be a C++ project using Blueprint or a C++ project? Only one of the two types?

If so, consider changing the sentence.

"This plugin supports two specific types of Unreal project types&mdash ;C++ and C++ with Blueprint. If your project is currently a Blueprint only project but is not using C++, you'll need to convert it into a C++ Blueprint project before adding the plugin."

Good to add instructions or links on how to convert to a C++ project. Highlight that the link is an external link.


### Adding the plugin to the project

When using the plugin a few things need to be taken care off.
Copy link

@joannaleecy joannaleecy Nov 10, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to a list so it's easier to follow.

"

  • Go to your Unreal game project
  • Open File Explorer and create a "Plugins" folder in your games' root directory. In the Plugins folder, create a folder called "PlayFabGSDK".
  • Go to the location where you've downloaded and saved the GSDK Unreal plugin. Drag all the files from the UnrealPlugin folder into the Plugins/PlayFabGSDK folder.
  • Lastly, open your game project's .uproject file in a text editor of your choice. In the plugins array, add the PlayFabGSDK plugin.
    "

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bold actual folder and file names to adhere to Microsoft style.


## Blueprint implementation

In a folder of your choice in the Content Browser right-click and create a Blueprint class. In the All classes dropdown menu find the GameInstance class. In this example the blueprint is named "BP_GameInstance".

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use similar principles as above. Use bulleted list to make it easier to follow the steps. Have a summarized list of all the steps if it's a multiple step process.

* [Optional] [PlayFab Marketplace plugin](https://www.unrealengine.com/marketplace/product/playfab-sdk) or the [source version on GitHub](https://github.com/PlayFab/UnrealMarketplacePlugin/tree/master/4.26/PlayFabPlugin/PlayFab). This plugin is not required for GSDK but is required for many PlayFab services, including login.

## C++ Implementation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a summary list of all the steps here at the top. It looks like there are multiple steps.

Example:

  1. Add PlayFab GSDK Unreal OSS plugin to the game project
  2. Include plugin in the module
  3. Update project source code to use PlayFab Multiplayer Servers
  4. Create or update GameInstance class

@@ -0,0 +1,118 @@
# ThirdPersonMP Example Project Local Deployment and Debugging

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How to deploy and debug game servers locally

@@ -0,0 +1,118 @@
# ThirdPersonMP Example Project Local Deployment and Debugging

The purpose of this guide is to demonstrate running your game-server on your local machine, in a MPS-compliant way, so you can test and debug your server before uploading it to PlayFab.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This guide uses the ThirdPersonMPLocalDeploy sample to demonstrate how to run game servers on your local machine and ensure that they are compliant with PlayFab Multiplayer Server service. It enables you to test and debug servers locally before uploading them to PlayFab."

* ["Development Server"](ThirdPersonMPBuild.md) configuration of your project built from Visual Studio
* [Optional] Download the [LocalMultiplayerAgent](https://github.com/PlayFab/MpsAgent/releases)
* [Optional] Alternatively, download [LocalMultiplayerAgent source](https://github.com/PlayFab/MpsAgent/tree/main/LocalMultiplayerAgent).
* "Debug" or "Release" configuration of LocalMultiplayerAgent built from this repo with Visual Studio

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build LocalMultiplayerAgent using Visual Studio.

* [Optional] Download the [LocalMultiplayerAgent](https://github.com/PlayFab/MpsAgent/releases)
* [Optional] Alternatively, download [LocalMultiplayerAgent source](https://github.com/PlayFab/MpsAgent/tree/main/LocalMultiplayerAgent).
* "Debug" or "Release" configuration of LocalMultiplayerAgent built from this repo with Visual Studio
* Load [MpsAgent.sln](https://github.com/PlayFab/MpsAgent/blob/main/MpsAgent.sln) in Visual Studio, select configuration, build LocalMultiplayerAgent project

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pgilmorepf pgilmorepf merged commit cff49e0 into master Nov 11, 2021
@pgilmorepf pgilmorepf deleted the pg/GettingStarted branch November 11, 2021 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants