How to store static online game data (maps, items etc)

Started by
1 comment, last by AdrianC 13 years, 2 months ago
Hi, I'm now at a point with my small RPG that other people could play it (it's going to be online). So far I have been storing all the data like maps, items and quests in XML, but a user can easily modify this data and change stuff. Then I thought about storing it server side, but this would require a lot of time looking up data.
Is the proper way to do this to store everything in some sort of a binary format and then add it to the game package itself? This would require that when there is an update people need to download the new files at the start up of the game, but I don't think that will be a very big problem.
Is this the way it is done in most online games that require static data?
Advertisement
I think you are searching for the problem in the wrong place.

Are players gaining advantage when they modify their data? For example if they set the damage of the rusty sword to a very big value, or if they remove a "blocking" tile from the map..
They shouldnt be gaining advantage because server must be deciding for all the critical situations.

If the answer is yes, there is no use in encrypting your own files into binary format because they can still change the data with memory editors easily.

My advice is in the first place make sure players can not gain advantage with changing local data, and you may encrypt your own files at your own will. I mean you might want to keep a picture or an algorithm or dropping chance of some specific item away from players' eyes, so it is good to encrypt :)

By the way storing big things like maps or all the items on server-side is not something you want to do. And even if you do they can change the downloaded data anyway..
Basically the way you want to do this is to store all the graphical data on the clients PC, and store all the collision/movement/stat/etc data on the server side. Even if the player changes the picture of an item, that change will only appear on his computer, since all the other player have their own set of graphical data. By handling movement/collision server side, no matter what the player does he can't change data that would influence the game play.

This topic is closed to new replies.

Advertisement