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 ...
Philipp's user avatar
  • 119k
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-...
Philipp's user avatar
  • 119k
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 ...
IndigoFenix's user avatar
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 ...
Kafein's user avatar
  • 271
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) ...
DMGregory's user avatar
  • 134k
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. ...
IT Alex's user avatar
  • 231
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, ...
Philipp's user avatar
  • 119k
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 ...
Philipp's user avatar
  • 119k
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 ...
Engineer's user avatar
  • 29.4k
9 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 ...
OpherV's user avatar
  • 655
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-...
congusbongus's user avatar
  • 14.8k
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 ...
Stephane Hockenhull's user avatar
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 ...
Cobertos's user avatar
  • 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 ...
HRSE's user avatar
  • 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 ...
Philipp's user avatar
  • 119k
7 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 ...
DMGregory's user avatar
  • 134k
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, ...
Ron's user avatar
  • 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 ...
Philipp's user avatar
  • 119k
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 ...
Cobertos's user avatar
  • 1,634
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 ...
Tom Tsagkatos's user avatar
6 votes
Accepted

Multiplayer RPG allowing offline solo play using server signed replays - how can you cheat?

A useful mantra to bear in mind is "the client is in the hands of the enemy". Any capability that you build into the client that can run offline is one that you have delivered in a gift-...
DMGregory's user avatar
  • 134k
5 votes
Accepted

Different physics engines on the client and server sides

When you use two different physics engines, it will be almost impossible that they will always come to the exact same results. Large physics systems can behave quite chaotically (small changes in ...
Philipp's user avatar
  • 119k
5 votes

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

Here's a quote by Sam Jansen from a comment on gafferongames.com: Speaking as a network researcher and not a game developer, the conclusion to never use TCP and UDP together seems a bit strong. TCP ...
Pubby's user avatar
  • 699
5 votes
Accepted

What keys should I use for a four-player game with one keyboard?

Just as a heads up, most keyboards have a finite limit of keys that can be pressed. For example, I have an Asus Transformer Book and you can only press around ~5 keys at a time. Some keyboards also ...
Mr_Rockers's user avatar
5 votes
Accepted

How to organize messages queue in a fast-paced multiplayer game

You should implement your UDP reliable as TCP. On http://gafferongames.com/ you can read about packing packets, resending them, correcting errors. There is some pseudo-code (or this is written in C, ...
Jacob's user avatar
  • 2,522
5 votes
Accepted

How to solve "server lag" problems that break the game

The easiest solution to the "who did it first?" problem is an authoritative server. Both players connect to the server which handles all the game mechanics. Whatever arrives first at the server is ...
Philipp's user avatar
  • 119k
5 votes
Accepted

realtime multiplayer game database design

Databases usually only make sense for data "at rest". As in data which someone might or might not look at at a much later point in time and which you want to be searchable by different keys. If you ...
Philipp's user avatar
  • 119k
5 votes
Accepted

How to generate join codes?

Store the active codes in the database. Once they are no longer active, you remove them. To create a new code, you can generate the code by whatever means you want (I'm going to suggest to use a ...
Theraot's user avatar
  • 26.2k
5 votes
Accepted

What makes the network coding for MUDs different from that of MMORPGs?

I'm going to put forward the opinion that there is actually no netcode at all in a MUD server. I've seen the phrase 'netcode' thrown about quite a bit in multiplayer gaming - usually as a criticism of ...
Skrrp's user avatar
  • 186
4 votes

How to handle multiplayer in JavaScript?

Both the question and the accepted answer were published in 2011, and the times have quite changed since :) Websockets is quite prevalent, but an even better technology is WebRTC which allows for ...
OpherV's user avatar
  • 655

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