Tag Info

New answers tagged

0

Disclaimer: I am a Nextpeer employee. If this issue is still relevant, you can use our service for keeping two racing players synchronised (or even more). A problem inherent with multiplayer games is that each of the players may use devices with different performance levels. One player may be using a high-end device, while the other may be using an old, ...


0

Disclaimer: I am a Nextpeer employee. If this issue is still relevant, Nextpeer supports a simple Player-to-Player communication model that empowers games and lets them perform real time interactions between players. This can be used to have a action taken by some player affect the rest of the players in the current tournament. For example, a player ...


3

Answering by just focusing on the question and not the other information. Identification I think the key to solving any problem is identifying what's causing the problem. If you're trying to find out how to motivate players more, then it may be critical to gather player feedback on what motivates and what doesn't motivate. Unfortunately, I don't think ...


2

The main problem is see is the fact that only 2 roles have any method of influencing your death characters. I think you should strive to more interesting death character roles. Why not assign various roles to various ghosts to give them options? You could have a type of ghost with the power to see what other characters roles are, another that is able to ...


3

Something seems wrong to me in your implementation of the authoritative server. Basically an authoritative server controls everything. It is the pivot of your network architecture. Clients just "ask gently" when they want to do some actions, and the server has the authority to say "NO I DON'T WANT YOU TO DO THAT BECAUSE I'M THE BOSS HERE!"... That said, I ...


2

Your server is more authoritative than it needs to be. The client needs to start moving as soon as the button is pressed, so there is no perceived lag. The server can then essentially replicate packets for other players, (maybe run a physics-sanity-check against a stored world model to prevent cheating, like warping through walls and such). Time stamping the ...


7

In order to get a server list, you will need a central matchmaking server to which all game-servers connect and announce that they are online and to which all game-clients connect to obtain the list of currently online servers. How many servers are you going to have? For comparison, I remember that during the high-times of the original Counter Strike, the ...


1

For simple matchmaking only, you can create an ASP.Net or PHP website that the players login to (via your game app) and push a notification when they create a server. The problem is securing the server to make sure only your players are accessing critical services like advertising a host or requesting the available host list. There are also services like ...


1

The way I see it there are effectively 2 ways to handle this. every "command" a user intends to issue is stacked up in a local list then sent to the "server" at the end of each turn who then forwards on the lists from other players to ensure the data is replicated to all players. Every time a player issues a command to be added to the list of things for ...


3

The overall problem by using any text-based solution is that they are highly unreliable and naive implementations are often prone to data integrity issues. This is where david's suggestion to use a database becomes important. Databases offer you the ability to write entries to a table without worries about concurrent operations from other connections. ...


2

You might want to consider logging to a database, such as MySQL or one of the various "nosql" plain old tables. (If your user base is "massive", there's paths to scaling with more servers or outside services like Amazon or Azure...) In one table, you can have a row for each log entry, and a column with things like the time, the player, the action (log on, ...


1

It depends a lot of how your game actually works, but in most games it is not necessary to send all positions of all objects after every frame. In most cases, most of the information will either not change right now or will be changing in very predictable ways (like an object moving in a straight line). It is often a lot more bandwidth-economic to only ...


2

From my knowledge using the Serializable language feature for realtime game networking thats running at 40+ FPS is very bad. I would send data in a plain binary stream for example Ive got to send the following variable in a class... (String) player name, (Integer) player health, (Integer) player model id, (Integer) player x, (Integer) player y I would ...


0

To your 3rd question, yes, you could preload the necessary models and just update positions and whenever a new players connects, load the extra info (you could do this asynchronously so as to prevent lag spikes). You could also calculate movement cycles (animations) on the client or on the server and then send the player's current animation 'step' to the ...


5

From a performance standpoint, having data in memory is orders of magnitudes faster than having it in a database. There are two reasons to put data into a database instead of storing it in memory: You have more data than fits into memory You want to make sure no data is lost in case of a (intentional or unintentional) server shutdown As you already said, ...


1

It's called NAT punchthrough. Today costs of dedicated servers are so low (and advantages of having it are so much better) almost nobody uses it. When you're behind NAT your router will forward packets from outside to you only if you initiated communication first, so router has mapped that outside IP and random port to your computer. Solution: basically ...



Top 50 recent answers are included