Changing the fate of Minecraft single-threading for version 1.17

Discussion in 'Performance Tweaking' started by Carl0Jonshon, Sep 2, 2020.

?

Voted?

  1. Yes

    110 vote(s)
    94.0%
  2. No

    7 vote(s)
    6.0%
    • The game that was released in 2011 has been unable to create multithreading for the server side of the game for 9 years, although it is present in a single-player game, as for me it's a shame! Let's vote on an important change and save our servers from terrible performance drops!
    • Let Microsoft finally take this into account, and then we can run our servers on powerful hardware, and then we can accommodate 100-200 players on 1.17+ versions!

    https://feedback.minecraft.net/hc/e...cements-For-Minecraft-Servers-Multithreading-

    17.09.2020 Update
    Mojang Studios is integrating a new library into Minecraft to improve server performance.

    Yesterday, Mojang Studios partnered with startup Hadean to integrate a library called "Aether" into Minecraft. This innovation will increase the capacity of players on servers, provide new gameplay opportunities and game modes.

    For example, in Early Access, one of the game's developers used this library in order to increase the limit of players in the lobby from the standard 99 to over 1000.
    The integration of "Aether" will begin this month.
     
    #1 Carl0Jonshon, Sep 2, 2020
    Last edited: Sep 17, 2020
    • Like Like x 1
  1. joehot200

    Supporter

    It's undeniable that performance has done a nosedive since ~1.8, however multithreading would come with a lot of challenges, and a huge amount of plugins would break.

    Not to say it wouldn't be beneficial, however there isn't a big "press here for multi-threading" button that'll magically transform it into multithreading without any consequence.
     
    • Agree Agree x 2
  2. Sometimes it's better to do something now than to do it late
     
    • Like Like x 3
    • Agree Agree x 3
  3. They'll do that right after they complete the modding API that was supposed to be finished in 2014.
     
    • Funny Funny x 8
    • Winner Winner x 4
    • Like Like x 1
    • Optimistic Optimistic x 1
  4. They should actually fix the source of the performance issues rather than band-aid it by multithreading (however you're supposed to implement that, anyway).
     
    • Like Like x 3
  5. Optic_Fusion1

    Resource Staff

    Why not both?
     
    • Agree Agree x 2
  6. This is already on their long term roadmap. What it entails, they haven't revealed or even likely know, but Dinnerbone told me that the future will be there is no main thread in the sense we have it today.

    We already have multiple threads used now in 1.14+.
    Light uses a thread per world, Chunk Gen uses a thread per world. (Out of the fixed sized thread pool)

    We will see what more keeps going down this model.
     
    • Like Like x 5
    • Optimistic Optimistic x 2
    • Winner Winner x 1
  7. They are semi working on it now. My team has been drilling them constantly lately on this, and they have responded in acknowledgement that they understand. Now commitment to undoing recent changes... we'll see.
     
    • Like Like x 2
  8. I'd rather they fix all the security problems with the client/server protocol, so we don't need multiple plugins to block hacks.
     
    • Like Like x 2
  9. With subsequent updates, there will be more and more of these sources, so you can only dream
     
  10. Literally all of the code in vanilla isn't thread-safe (besides maybe a few things, and some things Bukkit/Spigot have added/changed). It would take a long ass time to say the least. Honestly I doubt Mojang would do it.
     
  11. Well they better start cracking down on it!
     
  12. joehot200

    Supporter

    I think Mojang's logic here is that if they implement an 'anti-cheat', people will just find ways around it. The client/server protocol is inherently insecure, after all (e.g. relies on client for location information).

    In a way, an anti-cheat plugin is like a bandage around the current, insecure system.
     
  13. Sadly with game development, you almost have to do movement this way. Games have tried server controlled movement in the past such as World of Warcraft, it went HORRIBLE.....
    They quickly reverted.

    anti cheat isn't really something mojang's likely to go down much. It has less meaning/context in vanilla, and its also a never winning battle that mojang can't afford to focus on.

    best they can do is stop framework/abstract level issues, which they do on occasion.

    But anything heuristical doesn't belong in the game.
     
    • Like Like x 2
    • Agree Agree x 2
  14. A significant number of games (primarily competitive) have managed to implement lot of the movement on the server side quite successfully. Take CS:GO and Brawlhalla for instance. Implementation isn't too difficult nor computationally expensive.

    Overview: https://www.gabrielgambetta.com/client-side-prediction-server-reconciliation.html
    Input prediction: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Input_prediction

    For a long time I wished that Mojang would follow this approach, but since Minecraft is a sandbox game, that probably isn't their priority at this moment.
     
    • Like Like x 1
    • Informative Informative x 1
  15. While ever the client is based upon upon a local client impementation there is allways scope for the client to be recompiled.

    Even then some creative programers will endevour to create a sudo client.

    We are not likely to see a resoultion to this !
     
  16. sudo?
     
  17. Optic_Fusion1

    Resource Staff

    I think they meant pseudo
     
    • Agree Agree x 1
  18. I'm gonna go ahead and say this is not for java.... given that there isn't a hard limit for us. Though hopefully they will clarify. And if this isn't Java hopefully we can see our own changes to improve as well.
     
    • Agree Agree x 2