76
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 ...
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-...
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 ...
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 ...
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. ...
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, ...
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 ...
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 ...
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-...
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
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, ...
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 ...
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 ...
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 ...
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 ...
7
votes
Accepted
Decouple game entity from its owner when logic depends on it
The crux of the issue appears to be that you are tying the identity of an object to the implementation.
In it's simplest form a players ID could just be an integer (player 0,1,2,3...). Hence instead ...
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 ...
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 ...
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 ...
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-...
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 ...
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, ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
4
votes
Unity Online Multiplayer
According to the main Unity website, yes; you can implement free online multiplayer functionality in the personal edition, with up to 20 concurrent players.
4
votes
Accepted
What is a cheap (better free) way to make multiplayer in a shooter?
You could make the dedicated server software an executable and distribute it with the game, probably have a host&play option in the game itself which would launch this server in the background and ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
multiplayer × 857networking × 260
unity × 174
client-server × 90
server × 65
c# × 64
online × 47
game-design × 46
mmo × 46
synchronization × 45
java × 44
architecture × 42
unity-networking × 36
android × 35
javascript × 32
c++ × 28
node.js × 28
udp × 26
physics × 22
interpolation × 22
websocket × 22
photon × 20
unreal-4 × 19
anti-cheat × 19
unet × 19