question

MoonHeonYoung avatar image
MoonHeonYoung asked

Playfab Questions for rpg

Let me tell you the specs of the game I want to make.

I want to make a Diablo-like game

i.e

1. I want to validate the game.

(To prevent cheating, I want to call the Playfab CloudCode function every time the user attacks the monster,

because users can't cheat on the client side when the damage calculation is done in the cloud code.

(For cheating behaviors such as critical probability cheating)

Is that right ?

This is likely to cause huge Playfab server code calls. I understand that cloud code has limitations.

And I know that item creation probability and other important logic should be written on the server.

If so, the user will be putting a lot of pressure on the server every time he needs to run important logic.

When I asked a question, I was told to use a dedicated dedicated server.

But I'm a beginner and want to use existing playfab service.

What should I do? Please advise

2. I thought about a solution to the details listed above.

-Photon pun This is a room based multiplayer and I know it can be integrated with Playfab.

If in-game sync uses photons and background uses playfabs, is it the best for now?

(This is the solution I'm considering now, please point out if it's wrong)

-Play Fab I want to make rpg by combining with photon on top.

-Play Fab Multiplayer Server

I've searched and found that this is suitable for pubG-LIKE games, that is, games like Battleground.

Is this solution not suitable for rpg games like Diablo OR WORLD of warcraft?

In conclusion, I want to make an online room-based (not necessarily room-based) rpg game.

Since cheating prevention is important, I want to write all-logic to the server.

But cloud code has a lot of restrictions

hm... what should i do?

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Sarah Zhang avatar image
Sarah Zhang answered

>> But I'm a beginner and want to use existing playfab service. What should I do? Please advise

If it’s a single-player mode RPG game which only has a few networking elements. CloudScript can achieve a part of damage calculation. But there is no existing PlayFab service that can achieve a real-time multiplayer game except PlayFab Multiplayer Server. And as you said in the second question, PlayFab Multiplayer Server is suitable for MOBA and pubG-like games which with a non-persistent real-time server.

>> If in-game sync uses photons and background uses playfabs, is it the best for now?

It can be good a choice, you can consult the relevant information of the photon to choose the service that is most suitable for you.

>> Is this solution(Play Fab Multiplayer Server) not suitable for rpg games like Diablo OR WORLD of warcraft?

We could say currently the design of PlayFab Multiplayer Server is not suitable for the persistent servers. Besides, to clarify some points, Play Fab Multiplayer Server is a server hosting service, even if you use this service you need to write the server logic yourself. Play Fab Multiplayer Server is also suitable for some Multi-player Online RPG games with non-persistent real-time servers. It’s not suitable for WORLD of warcraft or FF14. But if it’s a room-based online game, you can try Play Fab Multiplayer Server for it. Anything depends on the design of the game.

>> Since cheating prevention is important, I want to write all-logic to the server. But cloud code has a lot of restrictions. what should i do?

You can consider writing your own custom server and hosting it on a suitable server hosting platform. If you think you are a beginner, you can get started with some out-of-the-box MMORPG Kit. You can search for such kits on the search engine or game assets store (such as Unity Assets) by yourself. For server hosting solutions, except PlayFab Multiplayer Server, you can refer to Photon websites, or related documentation of Azure Game Stack, etc.

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

MoonHeonYoung avatar image
MoonHeonYoung answered

Thank you!!

You answered exactly what I want to know.

so,

Assuming current situation,

Possible solutions are as follows:

1. Playfab + photon

2. Playfab multiplayer server (if I'm building a room-based rpg game)

3. Asset Store (I've searched all mmo related assets, but couldn't find a product that I'm happy with).

I have a question here.

I'm interested in # 2 (multiplayer server).

1. Can Playfab-Multiplay Server be used with existing services?

(e.g. existing leaderboard / catalog / friends..etc)

2. In your answer above,

if I use a multiplayer server, you said I have to write my own server logic.

If so, should I move all my existing cloud code to a multiplayer server?

In other words, can I move all of the client side logic to the server?

3. Playfab communicated with client with json.

Is the multiplayer server packet (not sure) networking?(Called asynchronous server)

4. Are there any additional fees for using the multiplayer server?

It's best in my situation to read the related documentation,but Please explain briefly.

finally I want to create room-based online games

(like Diablo 2-only need to sync when they exist in the same room).

2 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

brendan avatar image brendan commented ·

If you specifically mean Photon Realtime, you would not be able to host any server-side logic in that service unless you're in an Enterprise contract with them. So that isn't a realistic option if you want to have frequent interactions with server-authoritative code.

I'd recommend reading our info on server hosting, which includes the costs: https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/

The core issue here is that you want to have server authority to prevent cheating, and high frequency updates. To do that, you would indeed need to use a hosted game server - it hosts the session state, and only periodically updates the backend data in PlayFab for longer-term persistence (say, at the end of the session). The code for this would be the logic you use for your core game loop updates, though you obviously wouldn't need any rendering (so a "headless" server).

But you'll also want to use the Server API from your server - not the Client API. You could also then disable via API permission policy any Client API calls you don't want the player using.

0 Likes 0 ·
MoonHeonYoung avatar image MoonHeonYoung brendan commented ·

Thank you!! The question has been resolved. I will read the documentation.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.