2022 Developer Survey is open! Take survey.
77 votes

Why do some games persistently have mostly one viable strategy, while others can have many?

In the end it all boils down to one axiom: Game design is hard! And multiplayer game design is even harder. After years of development, you think you came up with a perfectly balanced game design ...
user avatar
  • 111k
50 votes
Accepted

How to detect and prevent abuse (botting) of online game API?

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 ...
user avatar
  • 1,483
30 votes

How can I implement multiplayer cloaking with visuals that resists client-side hacking?

When you look at the countless other questions about preventing cheating in multiplayer games which are on this site you will easily see that there really is no technical measure to prevent client-...
user avatar
  • 111k
24 votes

How to detect and prevent abuse (botting) of online game API?

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 ...
user avatar
  • 111k
23 votes

How to detect and prevent abuse (botting) of online game API?

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 ...
user avatar
22 votes
Accepted

What to send to server in real time FPS game?

Simple answer: cheat or don't be that accurate! If you've played some shooter online, you'll most likely have experienced the so called "rubber banding" if your connection to the server is bad. This ...
user avatar
  • 8,272
20 votes
Accepted

How can I implement multiplayer cloaking with visuals that resists client-side hacking?

You can't implement a shimmer effect without making it easy to exploit... but what if you used an indirect means of showing that someone is around, a means that also applies to visible players? For ...
user avatar
19 votes
Accepted

Why can't cross-platform multiplayer games exist?

It's no real hardware or software limitation. Cross-platform gameplay is possible, if implemented. Final Fantasy XIV - A Realm Reborn is a perfect example, featuring cross-play between consoles and PC....
user avatar
  • 8,272
17 votes
Accepted

How do I create a simple RPG game server?

You're on the right track. The gist of the client-server networking model is that a server is that it's a central point of knowledge that clients connect to. A game server typically contains an in-...
user avatar
  • 13.3k
16 votes
Accepted

Creating a seamlessly looping 2D multiplayer level?

This system with all these triggers sounds a bit too complicated and error prone. You could wrap the position of the player using modulo with something like ...
user avatar
  • 667
16 votes

Why do some games persistently have mostly one viable strategy, while others can have many?

You said it: Dota has a mixture of RPS balance and fixed, hidden character selection. The characters that the enemy team chooses to play are hidden information, and thus you must evaluate your own ...
user avatar
  • 271
14 votes
Accepted

How to handle realtime random movement with client side prediction

You can use random seed. Select same 32-bit value in server and client (or server can send it to client at start). Use it as seed for random generator. You can send actual seed from server to client ...
user avatar
14 votes
Accepted

How do I efficiently send RTS unit selections over the network?

There is no reason to communicate over the network when the player selects units, because in most games just selecting a unit has no game-mechanical consequences. So this is an information which isn't ...
user avatar
  • 111k
13 votes
Accepted

Why bother with server-side hit detection?

Server-side hit detection isn't to prevent aimbots, it's to prevent cheaters who simply tell the server "I hit!" regardless of where they are aiming.
user avatar
  • 15.6k
13 votes

Creating a seamlessly looping 2D multiplayer level?

The canonical solution is to use portals. In your example, there is only one level, except there is a portal connecting the left and right ends. Anything moving across that portal will have its ...
user avatar
  • 14.5k
13 votes

How to detect and prevent abuse (botting) of online game API?

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. ...
user avatar
  • 344
13 votes

Best way to interpolate player movements in a very fast paced Unity game?

There are two common patterns for use of Lerp. The one you're using is: current = Lerp(current, target, sharpness) (where sharpness is a constant between 0 and 1) ...
user avatar
  • 113k
13 votes

Why do some games persistently have mostly one viable strategy, while others can have many?

Player of both here. DOTA has a set amount of damage for most attributes. A Lina ultimate will always deal X amount of damage unless the enemy has a debuff on them that increases the damage they take. ...
user avatar
  • 231
12 votes
Accepted

How do you allow networking code to be written in the later stages of the development?

Without knowing more about the exact game you're writing, and how you're writing it, it is very difficult to say generic solutions to your problem. However, you may want to consider this decision you'...
user avatar
  • 13.2k
11 votes
Accepted

How to avoid duplication using client-server model

As others have said, the first step is separating logic that's shared from logic that's not. While it's great to draw that line wherever it's clear, your addendum illustrates that sometimes you don't ...
user avatar
11 votes

Limiting number of user clicks to reduce micro: best method of implementation?

Simply limiting the number of clicks a user can make approaches the problem from the wrong angle. At best, your players will perceive your game's input controls as unresponsive and glitchy. At worst, ...
user avatar
  • 111k
11 votes
Accepted

Revenue model for an open-source multiplayer game

How much do you believe in the open source idea? When you are not 100% committed to the free software philosophy, then there are some interesting variants: Release the client under an open source ...
user avatar
  • 111k
10 votes
Accepted

How can I make permanent death in a MUD seem acceptable and fair to players?

When you want perma-death to matter as much for the victim as it matters in real-life, you also need equivalent consequences for the killer. In just about any real-life society (present or historical)...
user avatar
  • 111k
9 votes
Accepted

Does it make sense to use both TCP and UDP at once?

It results in packet loss for UDP due to contention between the two protocols - remember that UDP is not guaranteed delivery, while TCP is. More TCP packets will get through while UDP suffers - TCP ...
user avatar
  • 29.1k
9 votes
Accepted

Is it possible to control the difficulty of a multiplayer game?

So players in a competitive game either have fun or lose. Why not both? Losing doesn't have to feel bad, or rather, you can have fun without winning. A lot of team-based games do this by de-...
user avatar
  • 14.5k
8 votes

How is shot synchronization implemented in multiplayer FPS?

When dealing with different frames of reference interacting with each other instantaneously, you have to compromise somewhere, you cannot have everything consistent everywhere; that's a fact of life. ...
user avatar
  • 14.5k
8 votes

How to detect and prevent abuse (botting) of online game API?

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 ...
user avatar
8 votes

How to detect and prevent abuse (botting) of online game API?

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 ...
user avatar
8 votes
Accepted

How to compensate for moving objects with client side prediction?

During the 6 months since I asked this question, I ended up developing a complete open source game server to deal with this exact issue (and many others!): https://lance-gg.github.io/ The R&D ...
user avatar
  • 635

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