Skip to content

Commit

Permalink
https://api.playfab.com/releaseNotes/#180906
Browse files Browse the repository at this point in the history
  • Loading branch information
PlayFabJenkinsBot committed Sep 7, 2018
2 parents be81e8b + a35a7ba commit 29b8def
Show file tree
Hide file tree
Showing 18 changed files with 183 additions and 24 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
# Visual Studio 2015 user specific files
.vs/

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
Intermediate/
Saved/
Binaries/

# Visual Studio 2015 database file
*.VC.db

Expand Down
8 changes: 8 additions & 0 deletions ExampleProject/Plugins/PlayFab/Config/FilterPlugin.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[FilterPlugin]
; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and
; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively.
;
; Examples:
; /README.txt
; /Extras/...
; /Binaries/ThirdParty/*.dll
4 changes: 2 additions & 2 deletions ExampleProject/Plugins/PlayFab/PlayFab.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"FriendlyName": "PlayFab Marketplace Plugin",
"Version": 0,
"EngineVersion": "4.20",
"VersionName": "1.1.180829",
"VersionName": "1.2.180906",
"CreatedBy": "PlayFab and Phoenix Labs",
"CreatedByURL": "https://playfab.com/",
"DocsURL": "https://api.playfab.com/",
"SupportURL": "https://community.playfab.com/index.html",
"Category": "PlayFab",
"Description": "PlayFab Marketplace plugin for Unreal Engine 4.20 Current API version: 1.1.180829",
"Description": "PlayFab Marketplace plugin for Unreal Engine 4.20 Current API version: 1.2.180906",
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/217fdf581b784571af03d3fb6580368f",
"Modules": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ struct FLocalizationGetLanguageListResponse
{
GENERATED_USTRUCT_BODY()
public:
/** The list of Playfab-supported languages */
/** The list of allowed languages, in BCP47 two-letter format */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PlayFab | Localization | Localization Models")
FString LanguageList;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ class UPlayFabProfilesAPI : public UOnlineBlueprintCallProxyBase
// callbacks
DECLARE_DYNAMIC_DELEGATE_TwoParams(FDelegateOnSuccessSetProfileLanguage, FProfilesSetProfileLanguageResponse, result, UObject*, customData);

/** Updates the entity's language */
/**
* Updates the entity's language. The precedence hierarchy for communication to the player is Title Player Account
* language, Master Player Account language, and then title default language if the first two aren't set or supported.
*/
UFUNCTION(BlueprintCallable, Category = "PlayFab | Profiles | Account Management ", meta = (BlueprintInternalUseOnly = "true"))
static UPlayFabProfilesAPI* SetProfileLanguage(FProfilesSetProfileLanguageRequest request,
FDelegateOnSuccessSetProfileLanguage onSuccess,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ void UPlayFabProfilesAPI::HelperSetGlobalPolicy(FPlayFabBaseModel response, UObj
this->RemoveFromRoot();
}

/** Updates the entity's language */
/** Updates the entity's language. The precedence hierarchy for communication to the player is Title Player Account language, Master Player Account language, and then title default language if the first two aren't set or supported. */
UPlayFabProfilesAPI* UPlayFabProfilesAPI::SetProfileLanguage(FProfilesSetProfileLanguageRequest request,
FDelegateOnSuccessSetProfileLanguage onSuccess,
FDelegateOnFailurePlayFabError onFailure,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

namespace PlayFabCommon
{
const FString PlayFabCommonSettings::sdkVersion = "1.1.180829";
const FString PlayFabCommonSettings::buildIdentifier = "jbuild_unrealmarketplaceplugin_1";
const FString PlayFabCommonSettings::versionString = "UE4MKPL-1.1.180829";
const FString PlayFabCommonSettings::sdkVersion = "1.2.180906";
const FString PlayFabCommonSettings::buildIdentifier = "jbuild_unrealmarketplaceplugin__sdk-slave2016-2_2";
const FString PlayFabCommonSettings::versionString = "UE4MKPL-1.2.180906";

FString PlayFabCommonSettings::serverURL;
FString PlayFabCommonSettings::productionEnvironmentURL = ".playfabapi.com";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ namespace LocalizationModels

struct PLAYFABCPP_API FGetLanguageListResponse : public FPlayFabBaseModel
{
// [optional] The list of Playfab-supported languages
// [optional] The list of allowed languages, in BCP47 two-letter format
TArray<FString> LanguageList;
FGetLanguageListResponse() :
FPlayFabBaseModel(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ namespace PlayFab
*/
bool SetGlobalPolicy(ProfilesModels::FSetGlobalPolicyRequest& request, const FSetGlobalPolicyDelegate& SuccessDelegate = FSetGlobalPolicyDelegate(), const FPlayFabErrorDelegate& ErrorDelegate = FPlayFabErrorDelegate());
/**
* Updates the entity's language
* Given an entity profile, will update its language to the one passed in if the profile's version is at least the one passed in
* Updates the entity's language. The precedence hierarchy for communication to the player is Title Player Account
* language, Master Player Account language, and then title default language if the first two aren't set or supported.
* Given an entity profile, will update its language to the one passed in if the profile's version is at least the one passed in.
*/
bool SetProfileLanguage(ProfilesModels::FSetProfileLanguageRequest& request, const FSetProfileLanguageDelegate& SuccessDelegate = FSetProfileLanguageDelegate(), const FPlayFabErrorDelegate& ErrorDelegate = FPlayFabErrorDelegate());
/**
Expand Down
4 changes: 2 additions & 2 deletions PlayFabPlugin/PlayFab/PlayFab.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"FriendlyName": "PlayFab Marketplace Plugin",
"Version": 0,
"EngineVersion": "4.20",
"VersionName": "1.1.180829",
"VersionName": "1.2.180906",
"CreatedBy": "PlayFab and Phoenix Labs",
"CreatedByURL": "https://playfab.com/",
"DocsURL": "https://api.playfab.com/",
"SupportURL": "https://community.playfab.com/index.html",
"Category": "PlayFab",
"Description": "PlayFab Marketplace plugin for Unreal Engine 4.20 Current API version: 1.1.180829",
"Description": "PlayFab Marketplace plugin for Unreal Engine 4.20 Current API version: 1.2.180906",
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/217fdf581b784571af03d3fb6580368f",
"Modules": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ struct FLocalizationGetLanguageListResponse
{
GENERATED_USTRUCT_BODY()
public:
/** The list of Playfab-supported languages */
/** The list of allowed languages, in BCP47 two-letter format */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PlayFab | Localization | Localization Models")
FString LanguageList;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ class UPlayFabProfilesAPI : public UOnlineBlueprintCallProxyBase
// callbacks
DECLARE_DYNAMIC_DELEGATE_TwoParams(FDelegateOnSuccessSetProfileLanguage, FProfilesSetProfileLanguageResponse, result, UObject*, customData);

/** Updates the entity's language */
/**
* Updates the entity's language. The precedence hierarchy for communication to the player is Title Player Account
* language, Master Player Account language, and then title default language if the first two aren't set or supported.
*/
UFUNCTION(BlueprintCallable, Category = "PlayFab | Profiles | Account Management ", meta = (BlueprintInternalUseOnly = "true"))
static UPlayFabProfilesAPI* SetProfileLanguage(FProfilesSetProfileLanguageRequest request,
FDelegateOnSuccessSetProfileLanguage onSuccess,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ void UPlayFabProfilesAPI::HelperSetGlobalPolicy(FPlayFabBaseModel response, UObj
this->RemoveFromRoot();
}

/** Updates the entity's language */
/** Updates the entity's language. The precedence hierarchy for communication to the player is Title Player Account language, Master Player Account language, and then title default language if the first two aren't set or supported. */
UPlayFabProfilesAPI* UPlayFabProfilesAPI::SetProfileLanguage(FProfilesSetProfileLanguageRequest request,
FDelegateOnSuccessSetProfileLanguage onSuccess,
FDelegateOnFailurePlayFabError onFailure,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

namespace PlayFabCommon
{
const FString PlayFabCommonSettings::sdkVersion = "1.1.180829";
const FString PlayFabCommonSettings::buildIdentifier = "jbuild_unrealmarketplaceplugin_1";
const FString PlayFabCommonSettings::versionString = "UE4MKPL-1.1.180829";
const FString PlayFabCommonSettings::sdkVersion = "1.2.180906";
const FString PlayFabCommonSettings::buildIdentifier = "jbuild_unrealmarketplaceplugin__sdk-slave2016-2_2";
const FString PlayFabCommonSettings::versionString = "UE4MKPL-1.2.180906";

FString PlayFabCommonSettings::serverURL;
FString PlayFabCommonSettings::productionEnvironmentURL = ".playfabapi.com";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ namespace LocalizationModels

struct PLAYFABCPP_API FGetLanguageListResponse : public FPlayFabBaseModel
{
// [optional] The list of Playfab-supported languages
// [optional] The list of allowed languages, in BCP47 two-letter format
TArray<FString> LanguageList;
FGetLanguageListResponse() :
FPlayFabBaseModel(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ namespace PlayFab
*/
bool SetGlobalPolicy(ProfilesModels::FSetGlobalPolicyRequest& request, const FSetGlobalPolicyDelegate& SuccessDelegate = FSetGlobalPolicyDelegate(), const FPlayFabErrorDelegate& ErrorDelegate = FPlayFabErrorDelegate());
/**
* Updates the entity's language
* Given an entity profile, will update its language to the one passed in if the profile's version is at least the one passed in
* Updates the entity's language. The precedence hierarchy for communication to the player is Title Player Account
* language, Master Player Account language, and then title default language if the first two aren't set or supported.
* Given an entity profile, will update its language to the one passed in if the profile's version is at least the one passed in.
*/
bool SetProfileLanguage(ProfilesModels::FSetProfileLanguageRequest& request, const FSetProfileLanguageDelegate& SuccessDelegate = FSetProfileLanguageDelegate(), const FPlayFabErrorDelegate& ErrorDelegate = FPlayFabErrorDelegate());
/**
Expand Down
132 changes: 130 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,130 @@
# UnrealMarketplacePlugin
Source code for the PlayFab Marketplace Plugin for Unreal
# Unreal 4 Marketplace Plugin for PlayFab README

## 1. Overview:

Unreal 4.17 thru 4.20 Marketplace Plugins for PlayFab

The Unreal Marketplace plugin includes:

* PlayFabSDK Folder: Unreal-Plugin - Put this plugin in your new or existing project to utilize PlayFab
* ExampleProject Folder: Unreal Plugin ExampleProject - Use this project to start your new game, or demo/test the PlayFab system.

This sdk contains a settings option to set developerSecretKey. For the security of your title, this must be blank for client builds.


## 2. Prerequisites:

* Users should be very familiar with the topics covered in our [getting started guide](https://api.playfab.com/docs/general-getting-started).

To connect to the PlayFab service, your machine must be running TLS v1.2 or better.
* For Windows, this means Windows 7 and above
* [Official Microsoft Documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/aa380516%28v=vs.85%29.aspx)
* [Support for SSL/TLS protocols on Windows](http://blogs.msdn.com/b/kaushal/archive/2011/10/02/support-for-ssl-tls-protocols-on-windows.aspx)


## 3. Installation:

The following instructions apply the SDKs in the plugin provided.

Assumptions

* Windows operating system
* [Microsoft Visual Studio](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) already installed
* [Unreal Engine](https://www.unrealengine.com/dashboard) already installed

A new project can be built directly from the example project included with the plugin:

* Extract the Unreal Plugin package to {UnrealPackageLocation}
* Navigate to {UnrealPackageLocation}/ExampleProject
* Right click on ExampleProject.uproject, and "Generate Visual Studio project files" - This process may take several minutes
* Once finished, open {UnrealPackageLocation}/ExampleProject/ExampleProject.sln in Visual Studio
* In Visual Studio, "Rebuild Solution" - This process may take several minutes
* You should now be able to utilize the PlayFab APIs

To use the plugin as a project plugin in Existing Projects:
* Extract the Unreal SDK package to {UnrealPackageLocation}
* Navigate to {UnrealPackageLocation}/PlayFabPlugin
* Copy the PlayFab folder into the "Plugins" directory in your existing Unreal project (If the "Plugins" folder does not exist, create it)
* Right click on YourProject.uproject, and "Generate Visual Studio project files" - This process may take several minutes
* Once finished, open your *.sln project file with Visual Studio
* Open the YourProject.Build.cs file and update the PublicDependencyModuleNames with "PlayFab" (for the Blueprints module) and "PlayFabCpp" (for the C++ module)
* In Visual Studio, "Rebuild Solution" - This process may take several minutes
* You should now be able to utilize the PlayFab APIs

To use the plugin as an engine plugin in Existing Projects:
* In the Epic Games launcher, go to the ![Unreal Marketplace](images/Marketplace.PNG) and search for the PlayFab SDK
* Click on the PlayFab SDK and click "Install to Engine"
* If you were previously using the plugin as a project plugin, delete the PlayFab folder under "Plugins" directory in your existing Unreal project.
* Update the YourProject.uproject file with the Plugin section as follows :
```
"Modules": [
{
"Name": "YourProject",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"Engine"
]
}
],
"Plugins": [ // <---
{
"Name": "PlayFab",
"Enabled": true,
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/217fdf581b784571af03d3fb6580368f"
}
]
```
* Right click on YourProject.uproject, and "Generate Visual Studio project files" - This process may take several minutes
* Once finished, open your *.sln project file with Visual Studio
* Open the YourProject.Build.cs file and update the PublicDependencyModuleNames with "PlayFab" (for the Blueprints module) and "PlayFabCpp" (for the C++ module)
* In Visual Studio, "Rebuild Solution" - This process may take several minutes
* You should now be able to utilize the PlayFab APIs

Once the plugin is properly installed, run the Unreal Engine environment editor.
Navigate to the dropdown menus: Edit -> Project Settings
On the left menu, scroll to the bottom, find Plugins -> PlayFab
Fill in the TitleId with the appropriate value from your project, found in the PlayFab [Game Manager](https://developer.playfab.com/en-us/studios)
If this is a server process, you can also fill in the developerSecretKey. For the security of your title, this must be blank for client builds.

## 4. Troubleshooting:

If you experience this error:
Plugin 'PlayFab' failed to load because module 'PlayFab' could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.

Your Unreal project is not set up to be a C++ project. Here is a tutorial that will help fix this problem.
http://idkudk.blogspot.com/2015/02/how-to-get-plugins-to-package-correctly.html


General troubleshooting:

For a complete list of available APIs, check out the [online documentation](http://api.playfab.com/Documentation/).

#### Contact Us
We love to hear from our developer community!
Do you have ideas on how we can make our products and services better?

Our Developer Success Team can assist with answering any questions as well as process any feedback you have about PlayFab services.

[Forums, Support and Knowledge Base](https://community.playfab.com/index.html)


## 5. Acknowledgements

The PlayFab Unreal C++ SDK was built by [Phoenix Labs](http://www.phoenixlabs.ca/), and submitted to PlayFab November, 2015

On September 2017, Montana Tuska rebuilt this plugin, adding support for 4.17 and other major improvements, on September, 2017.

The initial draft of PlayFab UnrealBlueprintSDK and the Blueprint Tutorial in this document were built by Joshua Lyons, and submitted to PlayFab October, 2015

Montana Tuska also makes and supports another plugin which combines the Unreal OnlineSubsystem, and the PlayFab API. You can see it on his [GitLab repo](https://gitlab.com/mtuska/OnlineSubsystemPlayFab)

This plugin is based off of the above mentioned plugins.

## 6. Copyright and Licensing Information:

Apache License --
Version 2.0, January 2004
http://www.apache.org/licenses/

Full details available within the LICENSE file.
Binary file added images/Marketplace.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 29b8def

Please sign in to comment.