Jump to content

  • Log In with Google      Sign In   
  • Create Account


Quasi MMO and cheating


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
15 replies to this topic

#1 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 24 February 2012 - 05:34 PM

I'm in the process of designing a game where players host their own worlds but players can take their stuff gained from any certain world with them to other servers. Players will be able to literally take pieces of worlds into their inventory. The environments are voxelized so players can pick up a chunk of voxels of dirt or any other material and keep it in their inventory.

Player data will be kept on a central server.

I'm trying to think of a way to do this that will minimize cheating. I don't want to keep player created data on my own servers.

How could I validate gathered materials without actually hosting the maps?

I think I can host things like monster and treasure spawns but not player created content.

Sponsor:

#2 hplus0603   Moderators   -  Reputation: 5068

Like
0Likes
Like

Posted 24 February 2012 - 06:12 PM

The short answer is: you can't. You need to store something that gates the "value" created on servers that you trust.
The longer answer is: Is it that bad if players cheat? If they do, it means they like your game. As long as it doesn't ruin the experience (griefing) for others, it might not be worth fixing.
enum Bool { True, False, FileNotFound };

#3 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 24 February 2012 - 07:51 PM

I guess I will have to make real valueable stuff, like item crafting materials, only drop from monsters and treasure chests which would be controlled by an authorized server.

The materials gathered from the open world will have to be building material... or I guess I could have a dice roll on the central server when a player mines a chunk of ore to produce a random amount of valuable materials. Like I could have the player ran server say "Player A struck stone of this type with his pick" then maybe generate him some gold or something on the central server.

So the real basic stuff, like dirt, stone, and wood, etc. could be gained from cheating but the valuable materials couldn't

#4 Antheus   Members   -  Reputation: 2397

Like
0Likes
Like

Posted 25 February 2012 - 10:27 AM

Like I could have the player ran server say "Player A struck stone of this type with his pick" then maybe generate him some gold or something on the central server.


And now player has 2,004,154,223,413,558 + 1 pieces of gold. They use half of that to buy Epic Pickaxe from another player. Each of those players has bazillion of gold left.

It doesn't matter who generates the gold, unless entire generation chain is checked via authoritative server on each operation. In above case, when a transaction is performed, the central server would need to check that player really did gather 2,004,.... pieces of gold by summing up all loot rolls so far.

Since that is obviously not viable, one moves trading to this central server. Now people realize that gold is hard to dupe, so they start trading with dirt. So dirt is moved to central server. And so on...

Bitcoin is a concept that works around central authority by establishing a conversion between bitcoin and electricity. Anyone can take existing resource and convert it to bitcoins. As long as the conversion factor is sufficiently high, the "dupe" generation will be slowed down. In case of traditional item duping, this conversion factor is way too small to matter. Cost of duping billion items is a fraction of a cent.

#5 hplus0603   Moderators   -  Reputation: 5068

Like
0Likes
Like

Posted 25 February 2012 - 11:37 AM

Also, I can spin up N script, each of which just hits your server with the "I hit an Ore with a Pick-axe" at the right rate, and generate all the resources I want.
You have two options:
1) Run all the economy, which includes game rules, on your servers.
2) Accept that people are in control of the economy, and build the best game you can with an effectively unlimited resource supply.
enum Bool { True, False, FileNotFound };

#6 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 25 February 2012 - 12:12 PM

I would expect people to generate scripts or what have you to say they hit the ore that gives gold... but the thing is the rate of which gold is generated can be controlled, if they send those messages rapid fire I can easily validate that along with how long it takes to perform the action. And even if they do send the messages at the right times, the gold isn't generated on every hit. As I already said, it's based on a dice roll. Kind of like a chance of getting a magical item off a mob. Valuable materials like gold will have very low chances to drop any at all. Most of the time the player will get zero. So it almost doesn't matter if they actually are hitting stone or just sending a message saying they are, since the actual stone will be very prevalent and it takes almost no effort to perform the action in the first place.

In this case it would hardly be worth making a program that just pumps ore hit messages, but if it does happen it matters very little, as the gold flow is still controlled by the central server.

#7 Antheus   Members   -  Reputation: 2397

Like
0Likes
Like

Posted 25 February 2012 - 12:33 PM

In this case it would hardly be worth making a program that just pumps ore hit messages, but if it does happen it matters very little, as the gold flow is still controlled by the central server.


There was a story a while back about WoW. I don't recall the details, but some top guilds used permutation of their characters to get around the raid lockout while maximizing loot.

While normal player would take their main, raid, roll 1:25 chance on loot, these players arranged optimal groups of, say, 50*10 character, then ran 20 raids, giving very high probability that each of their characters gets required gear.


I think that original Diablo was the last attempt at making hybrid client/server logic. They tried to counter every attempt using GUIDs and whatnot but eventually just gave up.

Most of the time the player will get zero


Gold rushes are like that. In the beginning, everyone went to seek fortune. Chances of striking gold were good enough to make it worth. After a few years, these rewards diminished and people gave up.

Today, gold is mining by biggest companies by simply taking a mountain, chemically treating it and extracting the 0.00001% of gold residue. By lowering the chances, it becomes more viable for automated farming.

#8 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 25 February 2012 - 12:39 PM

Diablo had player data stored client side. All my player data, like inventory, is stored on an authorative server, and also all items are generated server side, except next to worthless things like dirt, which players can only fit so much of in their inventory.

#9 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 25 February 2012 - 12:51 PM

Hell, I might even provide players with programs that pump ore hit messages myself, just to keep everyone on even ground for the most part.

Actually, instead of a seperate program, I think I'll just build it right in to the game. Like give the player a minion that can mine for them. but they share some sort of linked energy so they can't both mine at the same time... if I let them both mine for double the speed then the cheaters would just make a cheat to send two messages at a time.

#10 hplus0603   Moderators   -  Reputation: 5068

Like
0Likes
Like

Posted 25 February 2012 - 07:22 PM

I can easily validate that along with how long it takes to perform the action.




But how can you tell if I spin up 200 (virtual/fake) servers, each of which runs the script for 500 different characters?

If you charge people money to run servers (or scripts that look like servers) then you can limit the drop rate per server. Then you've created something "of value" to gatekeep.
enum Bool { True, False, FileNotFound };

#11 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 26 February 2012 - 04:28 AM

Well, I plan on selling the game/accounts and only allowing each account to run one server. I don't want to charge players to actually run their own server, although a guess I could since it will also take up resources on the central server. Like maybe subscribed accounts can run their own server, but free accounts can only play on other players servers. I'd like to prevent every player that buys the game from running their own server since the central server will only have so much power for every player server.

Not sure exactly how I'm gonna do it yet, maybe I'll charge per day or something for a player ran server.

How much do you think I should charge for it?

#12 IceBreaker23   Members   -  Reputation: 603

Like
0Likes
Like

Posted 26 February 2012 - 03:27 PM

You said the player data is stored on a central master server. How would it be to make a report-system like tickets in wow for hackers etc. and then check those people, if it´s possible to have this amount of money/equip etc in this time. Its not the best approach but if you want to allow private servers you cannot control everything.

#13 hplus0603   Moderators   -  Reputation: 5068

Like
0Likes
Like

Posted 26 February 2012 - 10:04 PM

If you charge for accounts, and one account can run only one server, and players have to go through your central server to find other servers, then that's sufficient. No need to charge for running a server specifically.
enum Bool { True, False, FileNotFound };

#14 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 27 February 2012 - 03:47 PM

I thought of a new way to mine valuable materials today... instead of generating them randomly per ore hit, I would instead generate gold spawn chunks randomly for a player ran server, but the locations would only be kept on the central server. So if a player was mining at the same location as one of these gold spheres, then they'd get some gold, until there was no more in the spawn.

Since the locations are kept on the central server, and neither the client or the player server knows anything about them, players can't use any sort of cheat to track them either.

#15 hplus0603   Moderators   -  Reputation: 5068

Like
0Likes
Like

Posted 27 February 2012 - 07:57 PM

Sounds like a good way of enforcing rules on the server!
enum Bool { True, False, FileNotFound };

#16 Butabee   Members   -  Reputation: 212

Like
0Likes
Like

Posted 27 February 2012 - 11:18 PM

Sounds like a good way of enforcing rules on the server!


YES! I'm doing something right!

Thanks :P




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS