Jump to content

An Update on Horses

 Share


501warhead

Recommended Posts

Hello!

 

So, basically the day has rolled around where we will begin to reduce the global population of Horses as stated in this post here. Obviously as some of you have noted you might consider this a non-permanent solution considering "Wont it just go back up once you're done?" and yes, this was true. Obviously when it comes to development implementing more permanent solutions is likely the right route over just attempting to implement temporary, easy solutions. So in that mind several things have changed when it comes to breeding that breeders might have already noticed (very likely) but don't quite know how it functions just yet - Don't worry! We'll get to that.

 

First, a further explanation is needed. So as showcased in the previous post I presented an image I had hoped most would read and understand why this decision was made. I'll relink it here for those who havent seen.

 

02ca48e33fcf5b9dec3e8b87629d2287.png

 

But this time, I'll explain exactly what you are seeing and why it's significant. So, this is basically a detailed breakdown of server load. What this program, VisualVM, allows us as those who maintain servers is to tell which processes use the most CPU power. If either the RAM or the CPU cap out we will begin losing Ticks Per Second at a steadily declining rate and this is when most players experience "Lag". Multiple things can cause our (or any server's for that matter) CPU or RAM to cap out due to how Minecraft is coded, some examples of things that we can't really fix that do this are about over 100 players in the same loaded chunks.

 

A few days ago we had been at the end of a long streak of crashes, one after another for a whole multitude of reasons. Isolating the issue(s) were getting harder and harder and it frustrated both myself and the staff team to try and narrow down exactly what was causing our issues. The server, on this particular day, got up to ~180 players which was nothing unusual but something unusual did happen. Suddenly, our TPS Dropped down to 15-16 and the entire server began to stutter in it's entirety. For a Vanilla MC server not running something absurd (which, for those who wish to cry out Nexus is laggy! I am here to tell you that none of our custom plugins use more processing power than either horses or even passive animals. The highest process from a plugin that takes the most process power is WorldGuard, and the custom plugin that takes the record is actually ArcheCore ('s SQL(ite)Handler for those who know/familiar with code) which handles Personas, Skills, and I would boast being one of our best plugins) the average TPS is about 18-20 as long as nothing crazy was happening.

 

However! There was something crazy happening. Our CPU, as I checked it, was fluctuating between 200 and 250% usage. For a professional grade server (which we possess) this is on the end of insane. So, I sent Tythus a message and he looked into it. He sent me the said snapshot of the server at that time and breaking it down I noted horses were using an absurd amount of processing power. More than any one plugin on the server at the time and it boggled my mind - how does this even happen? The main sources, to break it down further, seemed to be horse collision detection and movement - which would mean it would be very much directly related to the number of horses on the server.

 

Now, I'm (probably) not blind. I've seen several large farms myself and I knew they were a little on the size of large but as I began investigating on this day I realized several things. First, the normal horse farm was way, way too large. This was probably the most pressing issue. Secondly, horses didn't die. Now, I assume most people know by now that horses bred by high enough breeders can be labeled with the tag "immortal" because they actually were. I tested a sharpness 10000 (that's 200,000 attack damage roughly) diamond sword on one of Travista's horses (that were burning in lava, no need to pitch fork me Shrek, at least not for this) and it took 50 hits and kept on trucking. So, this issue was probably caused in part by the fact breeders actually cant kill horses.

 

So now onto the fixes! What you came here for, likely.

 

Simple notes;

  1. Horse breeding now scales negatively with the amount of Horses nearby. What this means is that for each horse you have in a farm past a certain point the stats will degrade in a multiplicative manner for each new horse bred. Stats will be normal for smaller farms.
  2. Resistance has been nerfed to reasonable levels across the board. Horses are no longer immune to death. Other stats remain untouched. (The resistance never was meant to go this high, Kowaman didn't anticipate when he added skills higher than Aengulic that some skills might scale too well without him knowing. Breeding is one of these skills)
  3. Resistance on all existing horses (should) have been retroactively reduced to reasonable levels. This is because death-immune horses are bad, mmk?

 

Now! Most of the breeders might feel like they're getting screwed over by this change - removing content without giving any in return? That's a terrible design choice! Yes, it is. That is why we won't be doing it in this manner! There will be changes to breeding soon that will add the amount of content breeders have available to explore to compensate for this. I implemented the "fix" before the "addition" due to the necessity of it in the moment but fret not, there will be more to come in the future (for your benefit!)

Link to post
Share on other sites

  1. Horse breeding now scales negatively with the amount of Horses nearby. What this means is that for each horse you have in a farm past a certain point the stats will degrade in a multiplicative manner for each new horse bred. Stats will be normal for smaller farms.

That explains a lot.

Link to post
Share on other sites

I'm an Aengulic breeder on my enepay character,

Firstly, tl;dr. But thank you for taking the time to write this and keep us in the loop. I wish this was done more often.

What sort of "new content" can we expect breeders to be getting? I don't need an exact detailing but some clues or hints would be nice if you could throw us a bone.

 

Link to post
Share on other sites

Why not make it so that players can store horses in code? It kills the horse, but keeps them so they may be called with the horse call command. After 20 mins (or whatever time you want) of not being used in any way, they vanish, to be called again by the command. That way, we need not lag up the server. For people who want a horse kept somewhere, a leash/lead could be attached to a post and keep the horse there for longer/an infinite amount of time.

I know nothing of how programming for this works, I am merely suggesting in hopes of helping :)

Link to post
Share on other sites

Why not make it so that players can store horses in code? It kills the horse, but keeps them so they may be called with the horse call command. After 20 mins (or whatever time you want) of not being used in any way, they vanish, to be called again by the command. That way, we need not lag up the server. For people who want a horse kept somewhere, a leash/lead could be attached to a post and keep the horse there for longer/an infinite amount of time.

I know nothing of how programming for this works, I am merely suggesting in hopes of helping :)

Alright, let me preface this with "it may be possible" - a lot of things via code are possible. It's whats feasible that I'm concerned with.

 

I tried this actually in several different methods - I thought the same as you, it seemed simplistic. How hard could it be? As it turns out much harder than I anticipated. First, it requires a redesign of the Pets system entirely. Let me explain why - Entities, just like players, have UUIDs. These are the "safe" way to find and ID entities as their name can be changed with as simple of an item as a NameTag. Now here's why this is important - They are unique for a reason. These are generated to be one in 368 (that's 2,821,109,907,456 possible numbers). This data is stored in Minecraft itself and interfacing with what we call NMS (net.minecraft.server, the Server portion of MC) is rather limited and difficult at times. Basically, there is no standard way to grab and save Mob data in such a way that you can recreate an entity from nothing. All entities that are generated, from what I have seen (and have been testing with a lot) are autogenerated with specific data that we cannot change without basically going in and changing some stuff when it comes to NMS. Theoretically if I wanted to code a patch for Spigot that created such (which is beyond my level, it's just theoretical) then it might be possible but Spigot updates so many times and i'd have to patch Spigot with my custom code every time we updated the server.

 

tl;dr It doesnt quite work that way.

Link to post
Share on other sites

Alright I cant edit my recent post so whatever just gonna double post (Sue me FMs)

 

 

I'm an Aengulic breeder on my enepay character,

Firstly, tl;dr. But thank you for taking the time to write this and keep us in the loop. I wish this was done more often.

What sort of "new content" can we expect breeders to be getting? I don't need an exact detailing but some clues or hints would be nice if you could throw us a bone.

 

I specifically did not tl;dr because the detailed nitty-gritty was needed for people to understand, any other form of shortened, quick way of explaining it simply wouldn't do.

 

 

About the extra stuff, there's actually additional things in breeding that I don't believe a single player has ever found. Mind boggling isn't it? These are actually some amazing mechanics and amazing rewards for those who wish to be experimental with their pets. Likely I'll be going down this route more or less to make the animals breeder possesses give more bang for their buck, so to speak and likely not in a linear way like increased stats/better drops or something. I'll probably pursue several new mechanics that will be enjoyable to find and enjoyable to use.

Link to post
Share on other sites

Now, I assume most people know by now that horses bred by high enough breeders can be labeled with the tag "immortal" because they actually were. I tested a sharpness 10000 (that's 200,000 attack damage roughly) diamond sword on one of Travista's horses (that were burning in lava, no need to pitch fork me Shrek, at least not for this) and it took 50 hits and kept on trucking. So, this issue was probably caused in part by the fact breeders actually cant kill horses.

 

This was legit the worst thing in my life. You should have seen my other stables.

https://gyazo.com/e40fbecb0da4e210b5ea0af545ee1741

Link to post
Share on other sites

Alright I cant edit my recent post so whatever just gonna double post (Sue me FMs)

 

 

I'm an Aengulic breeder on my enepay character,

Firstly, tl;dr. But thank you for taking the time to write this and keep us in the loop. I wish this was done more often.

What sort of "new content" can we expect breeders to be getting? I don't need an exact detailing but some clues or hints would be nice if you could throw us a bone.

 

I specifically did not tl;dr because the detailed nitty-gritty was needed for people to understand, any other form of shortened, quick way of explaining it simply wouldn't do.

 

 

About the extra stuff, there's actually additional things in breeding that I don't believe a single player has ever found. Mind boggling isn't it? These are actually some amazing mechanics and amazing rewards for those who wish to be experimental with their pets. Likely I'll be going down this route more or less to make the animals breeder possesses give more bang for their buck, so to speak and likely not in a linear way like increased stats/better drops or something. I'll probably pursue several new mechanics that will be enjoyable to find and enjoyable to use.

Flying pigs!?!?!?!?!?

 

Also, would it be possible to just download one of those bukkit plugins that store a horse in a vault, basically just saving the stats, instead of redesigning the pet system?

Link to post
Share on other sites

-snip-

Also, would it be possible to just download one of those bukkit plugins that store a horse in a vault, basically just saving the stats, instead of redesigning the pet system?

? ? ? ? ?

 

Did you not read my post?

 

  1. First, That is our breeding skill. I'm not going and getting a plugin to replace weeks or even months of hard work.
  2. Working with an off-the-shelf plugin is something we never wish to do unless we have to. Why? If it breaks, we have to fix it ourselves. Customization and unique features don't exist in this situation, if breeders "want something new" I tell them "too bad xdddddddd".
  3. We use an entirely custom nbt/attribute data system. This is basically one of the shining achievements of Arche/Sporadic and has been a wonderful boon to the Dev team in general to be able to use and while theoretically Attributes and NBT are all natural minecraft stuff we've had some issues with them persisting, if an error occurred where horses, say, re-spawned without stats and were slower than a tortoise whoever did it would be SOL.
  4. Most of these plugins will end up doing it in a simple, conventional way where the authors have to do the least amount of work for the most amount of publicity. This means that at the end of the day most of these will be sub-par, at best and not actually provide what we're looking for.
  5. Everything is persona based. This is good and promotes the gameplay style of LotC - introducing an arbitrary plugin that is player based is not good and getting it to work with personas instead of players would actually be nightmareish.

 

These are a few, I think I could manage to list 10 or even maybe 15 points if I wanted to write a paper for English class, but i'll let you fill in the blanks.

Link to post
Share on other sites

-snip-

Also, would it be possible to just download one of those bukkit plugins that store a horse in a vault, basically just saving the stats, instead of redesigning the pet system?

? ? ? ? ?

 

Did you not read my post?

 

  1. First, That is our breeding skill. I'm not going and getting a plugin to replace weeks or even months of hard work.
  2. Working with an off-the-shelf plugin is something we never wish to do unless we have to. Why? If it breaks, we have to fix it ourselves. Customization and unique features don't exist in this situation, if breeders "want something new" I tell them "too bad xdddddddd".
  3. We use an entirely custom nbt/attribute data system. This is basically one of the shining achievements of Arche/Sporadic and has been a wonderful boon to the Dev team in general to be able to use and while theoretically Attributes and NBT are all natural minecraft stuff we've had some issues with them persisting, if an error occurred where horses, say, re-spawned without stats and were slower than a tortoise whoever did it would be SOL.
  4. Most of these plugins will end up doing it in a simple, conventional way where the authors have to do the least amount of work for the most amount of publicity. This means that at the end of the day most of these will be sub-par, at best and not actually provide what we're looking for.
  5. Everything is persona based. This is good and promotes the gameplay style of LotC - introducing an arbitrary plugin that is player based is not good and getting it to work with personas instead of players would actually be nightmareish.

 

These are a few, I think I could manage to list 10 or even maybe 15 points if I wanted to write a paper for English class, but i'll let you fill in the blanks.

I never mentioned wiping the breeding skill. I merely suggested that one of the plugins from bukkit and the like might fit this need. I do understand the other points though.

 

I do have a few questions that I didn't ask in my initial response.

The scaling foe the farm sizes that lower horse stats, is the amount of horses 8 or something else?

And then why is it that horses cause more lag compared to other entities such as cows, which I believe there are more of. Is it the individual stats that each has?

 

Link to post
Share on other sites

Hello!

I realized several things. First, the normal horse farm was way, way too large. This was probably the most pressing issue. Secondly, horses didn't die. Now, I assume most people know by now that horses bred by high enough breeders can be labeled with the tag "immortal" because they actually were. I tested a sharpness 10000 (that's 200,000 attack damage roughly) diamond sword on one of Travista's horses (that were burning in lava, no need to pitch fork me Shrek, at least not for this) and it took 50 hits and kept on trucking. So, this issue was probably caused in part by the fact breeders actually cant kill horses.

Yo Travista paying you for this ad space? Because I would...

 

I'd pay double for one of those horses now, though.

 

Edited by Publius
Link to post
Share on other sites

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...