gameplay data in a cloud for mmo?

Started by
5 comments, last by robertrobert 6 years, 10 months ago

Hi guys,

I was wondering is it a good idea, to keep gameplay data in a cloud. In MMO games you have a lot of different for example weapons.
And balancing the game is crucial. Which means for example balancing unit properties, weapon properties like speed, health, damage etc.

What is the best way to keep those properties? static in an app or in a cloud?

In cloud you can change things in realtime. So if something is overpowered you can nerf it down without doing any app updates etc.  

How you would guys do it?

Advertisement

The cloud is just someone else's computer. So when you say "keep gameplay data in the cloud" what you're really referring to is what we mean when we say "store data on the server". Almost all MMO data is stored on the server - the player's computer usually just holds data needed for display and audio purposes, such as graphics, animations, sound effects, music, etc. The main gameplay data such as weapon and skill info has to exist on the server anyway, because the server has to run the game rules and decide who wins and loses (etc). And often it's not desirable to send it to each player because then a cunning player can examine their game data files to discover weapons and skills that they haven't yet uncovered in the game.

However, it is often still necessary to send patches to clients when server side data changes, for several reasons:

  • maybe the code needed to change to accommodate new data
  • maybe the client-side data references server-side data in some way and those references need updating
  • maybe the data needs caching on the client for performance reasons

"Gameplay data" is kind of a broad concept, but if we're talking about unit/item properties that might change in the future, I would go for storing them in the game server. And I'll assume that when you talk about "the cloud" you are talking about some sort of game server and you know roughly the purpose and effort that goes into implementing these things.

We're talking about a multiplayer game here, so you'll need to have the data available in the game servers for any calculation that affects multiple players anyway, unless you want to trust the client to do that calculation (hint: don't).

You could, of course, have that data hardcoded in the game client also and use it in the local simulation, but, as you mentioned, it's nice to be able to change that data dynamically, so I don't really see any benefits in hardcoding that data in the client besides it being easier to implement.

Hi guys,

Thank you for so fast answer. Yes by cloud I mean a server where we store data in db.
I want to store those properties on server, and in the game they are downloaded and stored in the memory. 

Basically everything would be taken from server and stored in memory, just assets of the game like graphics etc. will be stored normally in the app.

Sound ok? :)

Also I was thinking about be able to add new content for the game lets say a new weapon via in game downloads.

I want to do unnecessary game updates as user likes everything automatically. So maybe there is a way that I can just store assets and properties of new weapon in db and it gonna be downloaded to the game.

Is this a good way to do it? Of course not everything you will be able to do like that, just some parts.

Usually with an online game, you don't need to "download" the game data, because the actual game which uses that data is running on the server. Each player just has a client application which provides a view of the running game. It's just like this website - all the data for the threads and the users is stored on the gamedev.net server, and you just use your browser to see pages that the site sends you.

How to update a game that is running is a complex process and there's no simple right or wrong answer there. If you structure the data and code well, then you might not need any patches at all, again just like you don't need to update your browser if a website changes its articles or layout. It's certainly possible to send data to a client when it's needed instead of up-front in a big patch; but if the data is large, you can't send it only at the moment the player needs it, because it would take too long and hold up the game during play. So these are considerations you would need to weigh up.

Thank you Kylotan! That helps.

This topic is closed to new replies.

Advertisement