Dismiss Notice
Wynncraft, the Minecraft MMORPG. Play it now on your Minecraft client at (IP): play.wynncraft.com. No mods required! Click here for more info...
Dismiss Notice
Have some great ideas for Wynncraft? Join the official CT (content team) and help us make quests, builds, cinematics and much more!

Game Mechanics Add optional mod support to Wynncraft for entity animation and rendering.

Discussion in 'General Suggestions' started by Darkvial, Aug 16, 2024.

Thread Status:
Not open for further replies.
  1. Darkvial

    Darkvial Travelled Adventurer

    Messages:
    7
    Likes Received:
    1
    Trophy Points:
    5
    Minecraft:
    **DISCLAIMER: I am not an expert in matters of mod/plugin creation and development but I like to believe I do have a basic grasp of the concepts to make a suggestion. Thus, I request you take this suggestion with a grain of salt.**

    This suggestion is based on the latest message by Salted on the noticeboard on Discord as of August 16th 2024.
    The message talks about how entity model rendering and animation is extremely resource consuming and has, as Salted mentioned, caused an increase in bandwidth usage by about forty times.

    This happens due to minecraft being the unoptimized game that is and that resource packs are very limited by themselves without the support of mods. For example: Freshanimations and Freshmoves requires the mod Entity model features on fabric or optifine in the case of forge. These mods makes the games flexible enough for the resourcepacks to work.

    Wynncraft doesn't require a mod and can be played on with vannila minecraft, which means that the server has to specify exactly where the models needs to be rendered(in x,y,z) and where to apply the textures(also in x,y,z). Then it specifies the displacement, rotation. Mind you, each mob is constituted of more than one model. Even the most basic mobs are made up of more than 5 models with multiple joints, with bosses having upto 100 joints.

    The server has to animate each and every joint in a synchronous manner to make the motion look smooth. Also, the rotation and movement is a very time consuming process as it the joints need to be move very, very slightly 30-60 and above times per second to appear smooth. This whole process needs to be done because of vanilla minecraft's limitations.

    My suggestion:

    is that a client side mod could solve a lot of these issues. Having the models cached on the client side would not require the server to render it for the player. This could be done by the server sending a request to the client to render the model rather than render the model on server side. A lot of the movement animations could also be cached in the mod, and the server could just ask the client to play it when conditions are met. Another thing that could drastically increase server performance would be reapplying the entity collision glitch(which caused the client to calculate entity collisions even though the server already did that for them) in a reversed manner. This could be done in such a way that, the mod makes the client calculate the entity collisions rather than the server calculating it for them. The client could just relay the calculations to the server, saving resources.


    Now, I know that Wynn is proud of not needing the feature of not needing to download mods to enjoy the server and I too don't want it to change. Hence, the word "optional" in the title. I think it would be possible for the server to detect if a player is using the mod and apply these implementations to only those using the mod and not the ones not using it. Thus, these changes do not need to a server wide constant. The mod could also be configurable, so as to let the player be able to turn of features.

    **IMPORTANT**
    This suggestion was just my view on how the server's performance could be increased.
    I am in no way inferring that the devs are doing a bad job. I have been in the community for the last few weeks and am aware that our devs are amazing and we are lucky to have them so active.

    ANY AND ALL CRITICISM IS WELCOMED.
     
    Last edited: Aug 16, 2024
  2. Deusphage

    Deusphage but a beast Modeler Builder

    Messages:
    2,827
    Likes Received:
    4,591
    Trophy Points:
    207
    Creator Karma:
    Guild:
    Minecraft:
    doesn't work this way
     
  3. Darkvial

    Darkvial Travelled Adventurer

    Messages:
    7
    Likes Received:
    1
    Trophy Points:
    5
    Minecraft:
    I see... Thanks for the reply!
    Could you please explain why?
     
  4. Tzelofachad

    Tzelofachad Owner of the Rift, manager of the Uz hotel

    Messages:
    1,894
    Likes Received:
    1,452
    Trophy Points:
    115
    Guild:
    Minecraft:
    the famously helpful and specific deusphage, here with a helpful and specific answer to a genuine question.

    please be more detailed deus please
     
    alexphilgab likes this.
  5. Deusphage

    Deusphage but a beast Modeler Builder

    Messages:
    2,827
    Likes Received:
    4,591
    Trophy Points:
    207
    Creator Karma:
    Guild:
    Minecraft:
    deep breath

    Having the models cached client side through a modification doesn't change that the server still needs to render where they're going to be and their animations. You effectively already do this with the resourcepack; the visuals for the models are "cached" to your client. The bandwidth issues don't come from that, they come from the game calculating the positioning of every single one 20 times a second.

    To the server, it's not rendering the model's appearance, it's just moving around wooden pickaxe display entities.
    ________________________________
    Minecraft mob models can't actually support most angles, so to enable us to create models with the cube angles we desire, often it's not just bones that are broken up, but the cubes of a model as well. Instead of being one model that runs animations that the server is moving around like a normal entity, it's actually a handful of pieces its moving around, with all the animations simulated by the server moving those bones and cubes individually.
    ________________________________
    The other element is even if this was a solution, it requires an active decision and effort on a player's behalf. Most players likely wouldn't use this optimization mod, and thus there is the potential that in the hypothetical scenario where this would work, the outcome would be nugatory. The developer time would be better spent on better optimizing models, improving the systems bit by bit until they don't eat up bandwidth as much
     
    Last edited: Aug 17, 2024
    Elysium_ and Earthbrine like this.
  6. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    627
    Likes Received:
    826
    Trophy Points:
    146
    Guild:
    Minecraft:
    When a Minecraft modifications are involved, everything is possible. The correct way a client side modification should be implemented in this case is to create a custom entity type that handles animations that are loaded on the client through a data/resource pack, and such that the server only needs to send important keyframe/transformation information to the client, which should greatly reduce bandwidth requirements.

    However, since Wynncraft is advertised as a server that does not require client modifications, it doesn't make sense for such a mod to be created, since as mentioned most players would not use this mod.

    In my opinion, the first step to optimizing the model bandwidth is to reduce the update count per second per model part from Salted's supposed 20 to 10 or less, making use of the interpolation feature of display entities. It also seems like some models are pretty fragmented? Perhaps that may also be a path for optimization.
     
  7. Darkvial

    Darkvial Travelled Adventurer

    Messages:
    7
    Likes Received:
    1
    Trophy Points:
    5
    Minecraft:
    That was insightful! Thanks for replying.
     
  8. Tzelofachad

    Tzelofachad Owner of the Rift, manager of the Uz hotel

    Messages:
    1,894
    Likes Received:
    1,452
    Trophy Points:
    115
    Guild:
    Minecraft:
    thank you, this makes sense. I just want to know WHY it doesnt work this way. Thank you for elaborating!
     
  9. Voxels

    Voxels your local plural Wynncrafter(s) HERO

    Messages:
    50
    Likes Received:
    42
    Trophy Points:
    49
    Guild:
    Minecraft:
    While a solution like this would be a waste of dev time now (most players simply won’t use the mod), I can definitely see it being The Solution in the future. If you’ve been following Minecraft Java development, you’ll know that they’ve been transitioning more and more game elements from hardcoded to data-driven. It might not be for a while, but there will be a point in the future where entity models are defined in resource packs like block and item models, and I’m expecting that that will include animations.
     
  10. Darkvial

    Darkvial Travelled Adventurer

    Messages:
    7
    Likes Received:
    1
    Trophy Points:
    5
    Minecraft:
    Thank you for the response!
    To be honest, I am really interested in making modpacks and this solution just came to mind. It is very much true that they have been trying to make the game more flexible in the visual department as seen when fabulous graphics enabled players to use resourcepacks to achieve shader like visuals like ambient occlusion and some other stuff. But I just made this suggestion on a whim and was really surprised when I got such serious responses.
     
    Voxels likes this.
Thread Status:
Not open for further replies.