Jump to content
  • Advertisement

Gfrast

Member
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

118 Neutral

About Gfrast

  • Rank
    Newbie
  1. Hi guys,   i'm working on a multiplayer game, and i was wondering if there is something like a "most common internet-connection" that the game should play well with.   i know, the question might sound like "whats the standart PC of a gamer?" (which is, of course, not answerable), but i thought that there must be some sort of limitation that studios set themselves when developing multiplayer games, and i'm curious what these are.   its an action game with realtime combat - so, its not turn-based and ping/connection really does matter.   does it have to play well with packet-loss, throttle, duplicated packets, etc.... or is it more like "well, if you've got 15% packet loss and a ping of 200, then you cant expect to play that game properly!".   cheers and thanks for your oppinion!
  2. hi frob, thanks for your time!     unfortunatly, thats what i thought. as for the approach i'm using right now:     do you think that this approach in general could work and be stable enough? or do you see some possible upcoming problems with it? by following your advice and periodically correcting either the client or the server-position slightly, im quite convinced that i can sync the characters nicely... i'm just not sure if thats how it "should" be done, or if i'm missing something that could cause severe problems in the future?
  3. Thanks for the reply, maybe it didnt came out clear enough from my last post.     i'm using the unity engine with the character controller component. actually the character controller is quite deterministic, since you move it not by applying forces, but by giving him a vector to move to. yet, when collisions occur, a desync happens SOMETIMES - especially with spherical collisions.
  4. Thanks a lot for your answers.   I made some progress on the syncing-issue. Currently the syncing works like that:   When the Client changes his Input: -) Client sends Input to Server -) Client starts recording how often this input is executed (so called „ticks“?)   When the Client then changes his Input again, he <b>sends the tick-count of the last input along with the new input</b>.   What happens on the Server-Side in the meanwhile is, that the server replays the input delayed (based on the client-ping) and stores the „ticks“ he already processed for the input as well. When the client now sends a new update that includes the maximum „ticks“ of the last input, <b>the server keeps executing the last input until the tick-count on the server reached the just received tick-count of the client</b>.   By doing this, i managed to match the client and the server perfectly. <b>De-sync only occurs from time to time when the player collides with static objects in the scene</b>. Does anybody know what could cause this problem? Maybe i should mention here, that i am using the Unity Engine. I noticed that spherical-colliders seem to be more of a problem than flat-colliders....   I thought that maybe the „Skin Width“ attribute of the character controller could have something to do with the imprecision, since (according to the documentation) it lets the character „penetrate“ into other colliders for a certain distance?   Also, do you guys see any problem with this approach? Could this be stable enough? It must be somehow possible to achieve the exact same outcome on server and client, at least when the latency is low and there is no packet loss?   any further help/ideas would be highly appreciated! :)   cheers and thanks!!
  5. Hi everyone, i'm having troubles syncing character movement(with charactercontrollers). i've read a lot of articles about how rewind/replay works for multiplayer games, and i think i basically understand the concept, but i run into a problem that i havent been able to solve for quite a while. My system works like that at the moment: -) client sends movement input (e.g. timestamp: 100) -) server stores the input + timestamp (100) in an array, and adds a "margin-value"(50) to the timestamp. -) when the server-network time goes PAST the stored timestamp+margin value (150) the server accepts the received input and processes movement. basically this works, yet, i do have a big problem: due to the fact that the player doesnt send inputs at a fixed timestep, the server never reaches the stored timestamp EXACTLY, but goes always past it, and therefore processes different inputs different long. those are just small values in the beginning, but they add up and become noticable quite fast. any ideas/input/help on this would be REALLY awesome - i've been stuck on this for quite a while, and just can't manage to get it working! PS: i try to avoid constant state-sync to reduce bandwidth. also i need the server to really "simulate" the inputs because of collisions, cheating, etc... hopefully one of you network-gurus knows an answer . cheers and thanks!
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!