1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. While the majority of active discourse on D20PRO has moved to our Discord Channels, this forum is still active and checked-in on regularly by our staff. However, for the very latest information, conversation and/or immediate support, please join us on Discord here: http://discord.gg/Ph38ckM
    Dismiss Notice

3.7.8 Slow Downs with 4 Players Connected

Discussion in 'Bug Reports & Installation Support' started by firebringer, Aug 5, 2019.

  1. firebringer

    firebringer Member

    Joined:
    May 17, 2011
    Messages:
    88
    Likes Received:
    2
    Hello all,

    I'm running a GM license of 3.7.8 RC, with a DnD 5e campaign.

    When no one is connected, things are pretty snappy, but as my group logs into my GM session, it bogs down.

    When all 4 are connected, my GM session slows to point where moving a token on a relatively small map takes seconds to complete. When they log off, performing the same action on the same map completes very fast.

    Are there any optimization tricks I can try? I have a beefy system (Intel i9 @ 3.30 GHz, 32 GB RAM, d20Pro installed on a SSD) running Windows 10 64 bit, and I've set the upper limit of memory allocated to d20Pro to 4.7 GB.

    Edit: also, not sure if it matters, but I launch d20Pro from the .bat file with the following settings:

    start .\jre\bin\javaw.exe -Xmx5512m -Dsun.java2d.ddoffscreen=false -Dsun.java2d.noddraw -Dsun.java2d.d3d=false -jar d20Pro.jar

    Thanks!
     
  2. Wesley Gorby

    Wesley Gorby Production/Community Manager
    Staff Member

    Joined:
    Aug 1, 2011
    Messages:
    2,443
    Likes Received:
    140
    Acceleration is currently disabled in the RC build. It will be back on in the release build. However, even with that caveat, it should not slow down that dramatically.

    Have you noticed if it is one user in particular? IE: if one user has a fairly bad connection, everyone has to work at his/her speed since it is waiting to proceed by the client informing the host it is ready to go which it then checks all clients are ready and 'on the same page' so to speak. The old concept of 'Clear to Send, Clear to Receive'.
     
  3. firebringer

    firebringer Member

    Joined:
    May 17, 2011
    Messages:
    88
    Likes Received:
    2
    We’ve had people connecting in different orders, and it’s more of a gradual, significant performance hit after 3 or more players are connected.

    We have a game session this weekend, so I’ll do a little testing at the start to verify.
     
  4. firebringer

    firebringer Member

    Joined:
    May 17, 2011
    Messages:
    88
    Likes Received:
    2
    Also I’ll start doing ping checks on players when they connect, just as a basic sanity check on their connections
     
  5. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    636
    Likes Received:
    160
    Hi @firebringer I think we've resolved some of this in the current RC build. There is still the possibility for someone to get kicked on out initial connection if the person in line in front of them take a longer than usual amount of time. However, a quick app restart and reconnect should resolve that.

    We'll be continuing to improve the networking now that we know what was going on and how to fix it. There was a core flaw in the networking logic which had everyone accessing things from the host like they were in line and had to wait till the person in front of them was completely done before they'd even get acknowledged.

    To fix this, we'll be adding a networking queue to the host side in the next build (3.8) which will allow for requests to be made to the Host by connecting players and stored for processing. The player will be able to know if they have pending requests in the queue which will give us the ability to provide visual feedback on what's happening during a connection. i.e. am I waiting because my request is still in the queue which would imply that the host is still processing something blocking which came in before me?

    Anyway, this is all good stuff, and I'm sorry I never realized these components were missing before. When I was digging through the transportation logic, I found a comment which simply read -- // Network QUEUE logic goes here, eventually.

    sigh... Still better to catch these things as we can and bring them online!

    3.7.9 (currently in release candidate versions) has some massive networking improvements. Speed between move actions is reduced to milliseconds in most cases and working with multiple lights on a map is fast and zippy as well. Once we add the queue and a couple of other quality of life networking improvements, I think we'll have a bang up 3.8 release! In the meantime, 3.7.9 is going to change your networking experience right away, in lots of good ways. I'd advise to check it out if you have not already.
     
  6. firebringer

    firebringer Member

    Joined:
    May 17, 2011
    Messages:
    88
    Likes Received:
    2
    @ Owlbear: that’s awesome news about the network code improvements.

    As a software engineer myself (C#, not java) I love/hate those head smack moments where you’re like “yeeeeeaah...this is not good...but at least I found you, evil bug!”

    We’ll probably give the 3.7.9 RC a try pretty soon.

    Thanks again!
     

Share This Page