Hot answers tagged

50

If people want to bot, I don't think you can really stop them. You can of course implement many measures that make botting more or less of a pain. But you can only do so much before your codebase turns into a gigantic mess that's hell to maintain, error prone, and annoys legitimate users. Meanwhile the botters will always find a way to defeat your ...


24

The best and only effective defense against bots is to design your game in a way that players don't feel the need to automatize in the first place. When your players automatize simple tasks which do not actually require skill, it is a sign that your user interface is lacking and they are substituting an UI feature they are missing. Does your game include ...


23

Don't make your game so vulnerable to johnny-on-the-spot effort First, make sure that players who only play your game for twenty minutes or an hour a day in a single sitting aren't at a huge disadvantage to players who leave it open at work and play 16 hours a day. This may require a change in your game mechanics - for instance a move allotment that fills up ...


21

The only similar system I know is OGame. In OGame, players are protected from other players until the have a certain amount of points (I think it is 50.000). It makes more sense to protect players based on their score instead of time, as score gives you a better aproximation on how powerful players are. The theory is that with that many points, players are ...


14

I once found a very neat quote on the net that's very, very true for any online game: The client is in the hands of the enemy. As such, you can't really avoid people doing nasty things to your game client. Due to this, don't trust the client at all, i.e. everything important should at least be verified server side (better: calculated there). If this is ...


13

Here's my two cents: P2P: Pros: No need for a central server: this makes it much cheaper, and more viable for low-budget indie games. Scales very well (up to a certain point when the average client just can't handle the bandwidth). Very good for data distribution: Suits games where user-created content is dynamically synced (e.g. torrents). More Stable: ...


13

You can't stop them. But you can make their lifes miserable, as they have to spend lots of time writing their bots, and updating them. You have to use whatever you have to verify if user is valid. Check for request headers, and reject requests with invalid values. Either set custom headeror check for existing like user-agent. Sure it's easy to overcome, but ...


13

You could save all the data both locally on your player's computer, and sync it automatically to Steam Cloud, which indeed allows you to store stats/user preferences/progress/etc.. online. Steam Cloud API : header: ISteamRemoteStorage.h Game settings, savegames, and other user-specific bits can be replicated to the Steam Cloud to provide the ...


12

If you want the feature, implement it. If you don't want the feature don't implement it. If you're unsure if the player wants it, implement it and notify the user if the other player disconnects and give them an option to continue with the AI player.


10

Reduce progression in your game mechanics. Avoid making players stronger in a game-mechanical sense based on how far they progressed in the game. That way an experienced player has no unfair advantage over an inexperienced player except for their game knowledge, which a new player can also acquire when they do their research. Herd your players. When a player ...


10

One of the reasons why there are protections is that reading the game state could allow bots to know the state of the game and act accordingly. For instance, grinding in a MMO: if the "bot" knows what mob is around, it can send commands to the game clients to select the mob, hit it until its life is 0, pick up the loot, rinse and repeat. With this, even if ...


9

Online multiplayer is becoming an increasingly important factor in my decision to purchase games. While that may just be me, it appears that people overall like to play games with other people. Social media games are a good indicator of this, though, I don't really consider those multiplayer for the most part. They do indicate that people like being able to ...


8

In general, distinguishing between bots and humans fully automatically is hard, some form of human-assisted decision process works best. What I would do: define some heuristics that hint the user is probably a bot - doing a lot of actions, doing stuff 24/7, ... Then if these heuristics get over a certain threshold, do an invasive check. You can manually ...


8

Embrace the botter. You've built a restful API, perfect for a coder to experiment with automation of your game. Design your gameplay so that the bot doesn't gain an advantage over a human player due to being automated - eliminate the advantages of speed of execution etc that a machine has; design your game so the bot provides the same revenue as a human ...


7

In order to get a server list, you will need a central matchmaking server to which all game-servers connect and announce that they are online and to which all game-clients connect to obtain the list of currently online servers. How many servers are you going to have? For comparison, I remember that during the high-times of the original Counter Strike, the ...


6

A combination of both strategies would likely yield the best results. Just keeping track of when user join/leave might not account for situations where the user is unexpectedly disconnected. A periodic poll would likely have to happen too often to get reasonably updated list of players joining and leaving. So, update the list when a player joins or leaves ...


6

Many MMO's are designed with client-side hit prediction. So if there is a hit on the client, it sends that result to the server that there was a hit. In this case the server is not truly authoritative, and thus cheating is possible. To be honest, if I were designing an MMO, I would make the server fully authoritative, with the client only sending clamped ...


5

The essence of the "host advantage" is having a low ping (round trip time to the server). If you are the server, you'd have no ping time, but even being really close to the server would result in a small ping and still have a large "host advantage", so I'm just going to call it a "low ping advantage" instead. It really depends on the game and how the ...


5

I though about server asking client about its md5 however it's so easy to cheat. MMOs include a version checking system to help make sure that legitimate (non-cheating) users are using a compatible version, and to help them upgrade to a compatible version if they are not, in short its to make updating easier for the player rather than for any form of cheat ...


5

For statistics you can use ISteamUserStats, which is a part of the Steamworks offering. This interface allows you to define (from the Steamworks developer site) a set of tracked statistics with various properties, and can even auto-grant Steam achievements based on the stat values. The interface supports multiple types of numerical data (integer, floating ...


4

It's simple arithmetic and requires no loops or periodic DB updates. The player has a rate of resource gain. This is fixed until some external stimulus happens like the player buying an item to change speed. You need only know the current speed and resource counts for this to work. Take the current time. Take the last time the resource counts were ...


4

from my understanding, you send their servers your input, which is then processed by their machines. The whole action is processed, then the output is pushed to your screen, reducing the processing power by your computer a ton. i cant really get more technical than that, but from my understanding its pretty simple. Please correct me if i am wrong, i would ...


4

When you play a game online, you usually play it online because you want to play against a human opponent. So it doesn't make much sense to play when your opponent is computer-controlled. But when you have a multiplayer game which has more than two players and which becomes unplayable when one player drops out of the game (like Hearts), it would certainly ...


4

The main problem you want to solve is strong, powerful players pick on weak, new players after their protection ends. There are quite a few social solutions to this: Punish players for attacking those weaker than them: The spoils of defeating another player should be decreasingly lower the more weak your opponent is (and they can be multiplied the stronger ...


4

I don't neccessarily disagree with the soft-science answers but there are technical things you can do to detect botters and some things that just make life harder for them. Grade accounts by how much you suspect they're using a bot. This will feed into several other techniques and protect legitimate users from your wrath. Rotating the session cookie key. ...


4

According to the main Unity website, yes; you can implement free online multiplayer functionality in the personal edition, with up to 20 concurrent players.


3

Create a separate bot only server. Create a leaderboard and celebrate the winners. Look at the data this generates. Ban users from normal severs whose behaviour profile looks like that of a bot.


Only top voted, non community-wiki answers of a minimum length are eligible