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 ...
  • 114k
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,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-...
  • 114k
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 ...
  • 114k
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,302
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
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 ...
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 ...
  • 114k
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) ...
  • 121k
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
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 ...
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, ...
  • 114k
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 ...
  • 114k
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.2k
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.7k
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,634
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 ...
  • 114k
6 votes

Are completely dumb client multiplayer games feasible?

It is working already. Many games were running through telnet connection. Even now you can play NetHack and many other ASCII compatible games with 80x25 console. It means for pretty fast gameplay you ...
  • 161
6 votes

Are completely dumb client multiplayer games feasible?

This is exactly what NVIDIA is doing with GRID. The idea is that the game runs completely on a server. The client sends their keyboard- and mouse input to the server and receives a video stream (...
  • 114k
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 ...
  • 114k

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