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 ...
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 ...
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-...
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 ...
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 ...
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 ...
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....
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-...
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 ...
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 ...
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 ...
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.
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 ...
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.
...
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)
...
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. ...
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'...
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, ...
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 ...
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)...
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 ...
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
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. ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
multiplayer × 824networking × 253
unity × 174
client-server × 85
server × 65
c# × 57
game-design × 47
online × 47
java × 44
architecture × 42
mmo × 41
synchronization × 36
android × 35
unity-networking × 33
c++ × 30
javascript × 29
node.js × 26
photon × 25
udp × 24
interpolation × 22
unreal-4 × 21
physics × 20
unet × 19
anti-cheat × 18
socket × 18