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 ...
  • 115k
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 ...
  • 1,493
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-...
  • 115k
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 ...
  • 115k
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 ...
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 ...
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....
  • 8,377
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-...
  • 13.3k
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 ...
  • 271
13 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 ...
  • 115k
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. ...
  • 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) ...
  • 125k
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. ...
  • 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'...
  • 13.3k
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, ...
  • 115k
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 ...
  • 115k
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 ...
  • 29.3k
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-...
  • 14.8k
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 ...
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 ...
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 ...
  • 635
8 votes
Accepted

Where should multiplayer games start? Client or server?

You develop both at the same time, inside the same executable or a DLL loaded by the game executable. The game always run on a server, even when running single-player. When running single player ...
7 votes

How to Send Voice over Unity Networking - UNET

TL;DR: You can't do it natively in Unity Microphone.Start returns an AudioClip which has 3 load types, none of which fit your ...
  • 1,624
7 votes

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

What other posts have described from a gaming perspective is simply called a stable mixed strategy equilibrium in game theory. Here are some requirements for this: You generally want to have a game ...
  • 171
7 votes

Multithreading MMO Server. A thread per area OK?

I think this might be a viable architecture. The biggest source of bugs in multithreaded applications is shared access to data. So when the rooms have little to no communication with each other and ...
  • 115k
6 votes
Accepted

Networked projectiles in an authoritative server

This is what we ended up doing: Client side Detect player clicks button to shot missile Immediatley simulate rocket visuals on client In parallel, send command to server Once predict hit something, ...
  • 656
6 votes
Accepted

Network protocol for chat -- UDP or TCP

When it comes to chat systems, reliability is far more important than latency and bandwidth. That would usually make it a typical TCP/IP use-case. However, using both TCP and UDP in parallel through ...
  • 115k
6 votes
Accepted

When to use Command and RpcClient

Background In normal client-server games, the server is authoritative meaning it has the final say over how the games state exists and is in charge of making sure the clients know the current game ...
  • 1,624
6 votes
Accepted

Randomly generated maps in Multiplayer

It slightly depends on what kind of game you are making. Generate Server side and transfer to client If the player can make their own maps, or the map can be generated when a player is playing ...
  • 4,373
6 votes
Accepted

How to develop both a client and headless server together in Unity

Myself, I'd recommend keeping the server and client authored in a single Unity project. This minimizes the chance for mistakes where you change something in either the server or client and miss ...
  • 125k

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