As we accumulate more players our server TPS is becoming more of an issue. To the point where with 15 people online our TPS is around 10, when we ideally want it at 20. We don't know if this is a symptom of the amount of players or the cause of extravagant automated farms. As such, we'll be exploring a wide variety of solutions.

I've brought up lowering the max player count to 20 from 50. As it stands, our server will not be playable if we have all 50 player slots filled. Lowering this to 20 shouldn't be an issue since the most we've ever had online since the server started was 20. So, I don't feel too bad lowering this count.

We've also discussed destroying all item frames on the server. This is an extreme scenario but a majority of us feel these could be the culprit.

Googling around has shown me that it is important to lay some ground rules that you guys can follow if you'd like to due diligence with aiding the server TPS.

Ways to be proactive about lag!
  1. Do not idle or afk longer than you need to: We have an AFK timer on the server, after you meet the threshold you will be kicked automatically. The point of the server is to play on it.
  2. Get out and explore!: Most of your farms and redstone handiwork are inside of the towns you guys create. If the server starts to lag, it would be a good time to explore! Check out the abba world.
    • I sympathize that the worlds are small. If exploring is not something that's conducive at the moment - Already explored abba? - then make sure all of your farms can be switched on and off. Switch it on when you need it, and off when you leave.
  3. Be self sufficient! Only make farms that can adequately sustain yourself. There's no way you need a gigafactory of automatically farmed crops. On that note, you don't need to run a literal farm of animals. Again, just enough to be self sufficient, whether it's just you or for your town. Having every town create a farm to feed the server several times over is not helpful.
  4. If you aren't going to use it, don't store it. Admittedly, this is probably a very minimal issue but items in chests do count towards lag. As do hoppers and furnaces. If you have 8 double chests full of cobblestone, maybe you can dump seven of those double chests. Unless you're planning on building a castle in the next few days.

Some server side solutions to debate:
  1. We lower the AFK timer.
  2. With more users hopping on from other servers it's imperative we are respective of their experience. Maybe this means we start limiting the sort of farms we allow. For instance, maybe we prohibit iron farms (even current ones) and increase Abba regeneration to a 4-5 times a week so users can explore for iron ore. Maybe once a day so users have an opportunity to explore a brand new Abba if they can't get on the two days a week it currently regenerates.
  3. Admins fly around in game mode 3 and look for abnormally large farms. We'll ask you questions about the size and output. If we determine that it's too big for it's serving population we'll kindly ask you to scale it down.
  4. Admins fly around in game mode 3 and look for storage rooms. We'll ask you questions about the plans with the materials and resources. If we determine that it's too big for the plans and time frame provided we'll kindly ask you to scale it down.
    • We aren't slow, if you tell us something will be built in a week and it isn't even close, we'll likely just downscale the storage room for you and hand you a temporary ban or something to get our message across.


On top of these things that we're considering, we are also looking for a few plugins to monitor activity more closely. These should track where players spend the most time and I can refer to these numbers to figure out where lag is coming from the most. Ideally I'm looking at plugins that produce a heat maps so I can visually identify regions that show the most player activity, which should help us locate areas of the map that require additional resources and thus lower our TPS. I'm already testing one plugin on my test server before I roll it over to Cemetech. Which I hope goes better than the Corpses plugin! Also, since I don't plan to need this plugin very often I'm also looking at containers that I can load a copy of the world into, which loads every chunk and measures the ticks required for each chunk. I'd use that info to determine where on the map to start focusing attention on first.

We are a server that prides creativity. As such I don't want to needlessly limit redstone circuits. I think a primary byproduct of the redstone circuitry are all of our automated farms and sorters. We have some amazing builds too. But if you aren't going to share it with anyone then please downscale it. If you're incredibly proud of your work and don't want to delete a large portion of it then work on getting members to your town. Work on merging with existing towns too.

Additionally, I said furnaces can become a giant strain on the server. Really if there are dozens running at once. Perhaps we have some shops at spawn that take in Cobblestone for Smooth Stone. That way the server isn't running ticks to make stack after stack of smooth stone across dozens of furnaces. Same with meat, trade in uncooked meat for cooked meat. We need to start compromising here before this issue becomes a larger problem.

We're getting new members almost every day. Tifreak8x streams occasionally from the server and we can directly attribute several new members to his actions. We had another member join "there are no good MC servers in the US" and that we "are like one of 20 that has people." If we take that face value, we can expect him to tell his friends about us. He's sticking around because, if I read into it, we are one of the 20 active servers in the US. We're moving from a server that served as a small community of Cemetech members to a server that has an actual draw to the Minecraft players at large.

Lastly, I'm not saying any particular or every member of the Cemetech server is at fault or engages in this sort of behavior. Just that these are things we'll be keeping an eye on going forward as well as the avenues we're exploring to deal with it. We'd greatly appreciate any support you guys can lend us, such as minimizing the number of entities you have loaded at any time. If you need a refresher on what an entity is you should watch this YouTube video where the author covers the difference between blocks, entities and, tile entities.

Some numbers:
Today we had ~15 players online (me+14). We had a TPS between 10 and 14. With about 4000 entities loaded and 13,800 tiles loaded.
As of this post, with 2 players online (me+1). We have a TPS 19.99 and 793 entities and 3,716 tiles across 1,145 chunks.

I sadly don't remember the number of chunks loaded from earlier.
I think that one of the big lag-causers is chicken farms. While tile entities do slow things down significantly, I believe one of the major causes of lag is the many collisions being checked for with chickens crammed into a 1 block space to produce eggs. A possible solution to this would be to make a shop to sell eggs and discourage chicken farms. Another might be to disable the collisions of chickens if there are more than 2 or 3 in one place, using a plugin. Alternatively, I could make a plugin where you could craft 9 chicken eggs into an egg that spawns a single entity that lays eggs at ten times the rate, to bring the entity count down.

As an admin, you could reduce the radius of chunks that players can load (which is by default 10 or 160 blocks in each direction), which would reduce the number of chunks loaded at any given time.

Hopper minecarts and/or water streams can be more efficient than long chains of hoppers, and placing bright lights inside redstone circuitry inside can stop laggy lighting updates.

Spreading farms out so that only one is loaded at a time can also help reduce lag, although that might be hard given the render distance compared to the world size.
Great post! I think another issue might simply be that Minecraft isn't well designed for having large numbers of players, which might be why Realms has a ten player limit (just a conjecture, though).

I know that I had a huge FPS issue in my area when I tried to build an omnisorter that would sort literally every sortable item. The huge number of tile entities caused a giant FPS drop, so I scaled back my design to just things I commonly get while caving. Another thing I did was move a lot of my items into shulker boxes, and then store the shulker boxes in chests, which allowed me to seriously reduce my tile entity count. Unfortunately, not everybody has a special agreement with Rivereye for bulk deals on shulker boxes. (I helped him build his shulker farm.) I also labeled my chests with signs instead of item frames, with one sign having up to four labels on it for four chests. And I've found that I really only need four furnaces. It's nice to have instant gratification, but I've found I can usually find something else to do while things smelt. So that's my experience with addressing a performance issue.
commandblockguy wrote:
A possible solution to this would be to make a shop to sell eggs and discourage chicken farms.


A shop to sell eggs is a great idea, we'll consider this too!

The reducing chunk radius is also a good idea but we'll need to be cautious as not to break any mob farms that utilize 2 or more spawners. But that's probably an acceptable compromise if we do lower the radius.

DrDnar wrote:
Great post! I think another issue might simply be that Minecraft isn't well designed for having large numbers of players


Perhaps that's a byproduct of Java. Hopefully the C++ (or C?) version takes off. But I suspect that's more of the servers programming and not the client.
Alex wrote:

The reducing chunk radius is also a good idea but we'll need to be cautious as not to break any mob farms that utilize 2 or more spawners. But that's probably an acceptable compromise if we do lower the radius.

Reducing the radius wouldn't be an issue with mob spawner farms. Players standing more than 16 blocks away won't allow them to spawn mobs, even when the chunk is loaded. Unloaded spawners aren't really an issue unless the chunk load radius is brought down to the lowest value, since the spawners won't be active anyway.

If you are talking about darkroom spawners, the limit on those is 128 blocks or 8 chunks before mobs stop spawning. However, these are some of the laggier farms as they involve either large amounts of block updates with pistons or water, or involve mob AI checks. It might be a good thing to have some of these inactive most of the time.
Alex wrote:
Again, just enough to be self sufficient, whether it's just you or for your town. Having every town create a farm to feed the server several times over is not helpful.


Could we have a central farming area? Possibly one farm of everything? Therefore we wouldn't have to have everyone build a farm.
That's against the core idea behind Cemetechs' philosophy of allowing members to create and build. It will also probably not solve our lag problem. If we have a central farm then all those farms would be loaded at once. Where as if towns and users work together, each town can farm specific items, thus distributing the load across the map. Doing a central farm would undermine the Bazaar, where users sell their goods and items they farm.

But going back to the distributed load. It's not it's going to magically fix the server lag but if everyone in Town Y is offline, their farms are too. If you need to buy an item from their farm, you can visit their Bazaar shop. Doing this prevents that farm from being loaded in and requiring resources from the server. If every farm was in one area, even one person could cause a lag spike if they were there.

So by having the farms spread out and producing slightly more than enough goods, it would take quite a few members to strain the server.
So to help reduce tile entities and such, I've been going around my base and clearing things out. I've eliminated numerous chests around my base, a lot that didn't have anything in them. I've replaced almost all of my item frames with signs, and I've eliminated various farms that had little to no use anymore (like I've reduced my egg farm to 2 chickens, since the dub chest is full, and I no longer have sheep or cows in the pens)

Hopefully, we can count on our users to assist in reducing the lag issues we've got on our server. Smile
The lag might be reduced if Spigot was used instead of CraftBukkit.
Spigot was designed to offer performance improvements over CraftBukkit, without taking away from the variety of plugins available. A quick search showed that in some cases there were 200% CPU performance improvements. This does come at a cost, however it is very minor. Many timings are changed, which break some farms, but mostly ones that exploit bugs, so spawner farms and darkroom farms should be unaffected. Multi-village iron golem farms will most likely be broken, however.
I do need to point something out. Last server, we had the issue with extravagant farms causing lag and passed several rules: mob caps, toggleable, not too much redstone, etc. Our tps after that and now on this version has been great. Our existing and new players have followed the rules for the most part. Now, we are getting more players, and the server is struggling to keep up. While I agree that we all should take steps to come up with a smart way to distribute server load, it's starting to get to a point where we're affecting user's gameplay experience over problems that they aren't causing (with the implication in the topic-starting post that we'd be handing out bans for failing to shrink farms beyond an already capped size...??) and that's not exactly right. Here's what I'm observing:

1. Players who come on who enjoy redstone more than building are less able to build redstone because we've called it "laggy".
2. We are again considering cutting back farm sizes, or perhaps ruling them out altogether because of lag, which in turn is going to destroy the economy, making it harder to earn money, and thus to upkeep towny.
3. Hand in hand with cutting back farms, players are going to have to turn more to going out for their food and iron and other resources, and less time on building, moving the server further away from creative build and more to "spend your time mining for money to upkeep towny and now to just survive".

Farms are an integral part of gameplay on a multiplayer survival server, especially one with the theme we do, and if our server cannot support the style of gameplay we want to promote, we need to either change the style of gameplay or get a better server. Simple as that. Players individually should not be made to bear that burden so much that it detracts from their gaming experience, or we won't have to worry about the increased load because people will leave! Perhaps instead of thinking about ways to cut back load, we do a bit of that within reason, but brainstorm ways to upgrade the server's capabilities.
I did some testing, and it isn't large amounts of redstone causing the problem. In fact, I'm able to have worlds with *hundreds* of redstone contraptions, and only drop a few fps while flying around.
Redstone clocks, if done properly (I'll explain how in a sec), do not cause significant amounts of fps lag, either. I created 200 redstone clocks (thank god for MCEdit...), adjusted the timing on them, ran them, and only dropped 10 fps.
There are 2 (main) ways (as far as I can tell) redstone can cause 'lag' by itself: Lighting updates and block updates.

Lighting updates are why clocks seem so laggy. Every time a repeater, torch, comparator or dust turns on or off, the light levels are re-calculated in that area. This can be easily solved by putting clocks and other potentially 'laggy' machines in tight boxes, with little to no air pockets, where the light is calculated. I'm > 80% sure that works.
If you do not think lighting updates are 'laggy', load up singleplayer (creative), make a huge, dark hole, then hook up a piston to let light in, on a clock. Repeat ~20 times.

Another way that redstone is 'laggy' would be block updates, namely hoppers. (The other components do cause 'lag' but not in very significant/noticeable amounts)
Hopper 'lag' is obvious, and can be solved by placing any full block with an inventory (i.e. Furnaces).

If users are responsible with their redstone, it is not a major contribution to 'lag'

I put "lag" in quotes because it is slang.
_iPhoenix_ wrote:
I did some testing, and it isn't large amounts of redstone causing the problem. In fact, I'm able to have worlds with *hundreds* of redstone contraptions, and only drop a few fps while flying around.


Yes, but is that on a server with 5+ people on it at a time? Your personal computer may be able to handle it, but the server may not.
Also, FPS != TPS
FPS is client side only rendering time.
TPS is server-side CPU time, and caused by things like block and lighting updates.
Different things cause FPS drops than TPS drops. If you want to test TPS in single player, I recommend CarpetMod.
It might be a good idea to install a lag measuring plugin, so we can see the real cause of the issue and cut down on it specifically instead of limiting all redstone and farms.
Unicorn wrote:
_iPhoenix_ wrote:
I did some testing, and it isn't large amounts of redstone causing the problem. In fact, I'm able to have worlds with *hundreds* of redstone contraptions, and only drop a few fps while flying around.


Yes, but is that on a server with 5+ people on it at a time? Your personal computer may be able to handle it, but the server may not.


Point taken. My computer is somewhat of a beast.

My friend has a cheap PC, that might be a better test. (Or I could put mine under crazy strain)

I could also do a local host server and invite some friends over... hmm

And yes, tps is not the same as fps, but I got similar results measuring in tps, and I felt fps is more well known/easier for the average player to understand.
ACagliano wrote:
(with the implication in the topic-starting post that we'd be handing out bans for failing to shrink farms beyond an already capped size...??)


I think you misread that part but I do concur it's a bit harsh. I imagine this is in response to the only time I mention the word ban, which is when players fail to use the materials they're hoarding within the time frame they provide an admin. Not for farms. I worded it as such so that way I had precedent to point back to. In a majority of cases we'll likely keep giving the player more time and perhaps even help them build what they want. If a player gives attitude and snarky responses, then we likely won't exercise that leniency.

  1. It's not really the redstone we're after. It's the size and scale of things.
  2. If your farm produces enough to sustain yourself and your shop, great. If it produces so much stuff that you have chests full of your farmed items and you keep farming those items, not great.
  3. Yes, this goes with #2. This may not be the case with food but there's no reason some one needs to keep 10 double chests full of food. If someone has that many chests of food, then maybe they don't need to farm for food anymore. Or they can consider selling it.


We don't need an excess of items on the server. If your shop goes through 20 potatoes a day, go ahead and farm 30 or whatever so you're prepared for any extra business. But if the shop owner is farming 300 potatoes a day and only selling 20, that's excessive. At this rate, they could last 15 earth days before they ran out of potatoes.

_iPhoenix_ wrote:
And yes, tps is not the same as fps, but I got similar results measuring in tps, and I felt fps is more well known/easier for the average player to understand.


That's likely because you were running the client and server off the same computer. Run the server on a different computer than the client and you likely won't see the FPS drop.

FPS is frames per second, which I'm sure you know. Things that affect FPS usually has to do with how many pixels have to be updated. Games may experience an FPS drop when lots of entities, particles and, sprites are on screen. DigitalFoundary has a good video regarding Preys' FPS on console when enemies appear on screen.

TPS is, as commandblockguy said, server related. The server updates things 20 times a second (TPS = Ticks Per Second) so the more that's loaded, the more CPU time the game demands. Things like the pigs, cows, zombies, endermen, etc all have their AI adjusted 20 times a second. The more mobs there are, the more AI paths there are to be updated. Then there's hoppers and furnaces. The server checks each one 20 times a second to see if there's an item that needs to be passed a long to the next hopper or into a chest, the server checks if this furnace has an item and the current progress towards being cooked and the level of fuel.

Which is why I advised against having all the farms in one area above. Having all the farms loaded at once will be detrimental. Having them spread out across towns that are either loaded or unloaded will help ease the server. I think before tifreak8x's Easter event we had a TPS of 14? During the event it went back up around 20, that's because everyone was away from their farms and stuff. So the game unloaded those chunks.

Going forward we're going to need to put on more events so we can regularly get players away from farms and such. But we need to get the server to a point where if we have 30 players online, and 13 of them are in an event world, that our TPS is still around 17 or so. Right now we can have 16 players on and our TPS may be at 13. As new players come, they'll likely join existing towns which is why we're focusing on getting those towns to streamline their farms and capacity. We're trying to be proactive instead of reactive. As towns get more members, increase your farm output to cover the new users who either want to purchase items from shops or using their towns resources to build.

If the current farms on the server are already producing enough for the town and shop to survive, great. There's nothing to worry about as that means there's not much optimization that can be done in game and it's all server-side. I'm making this topic because there's no way for us to know if the lag is a result of over-burdened farms or lack of server resources. Which, we all sorta doubt. Our server is a quad-core with 16GB of RAM (of which MC currently has access to 6GB, up from 2GB). I forget the CPU but it may be a 2.8Ghz. So, we aren't on the worst of hardware. What comes of this will be valuable info, we'll be pleasantly surprised if it is our hardware but so-be-it.
Now that I have finally found a small chunk of free time I'll add my own 2 cents. I've been watching this thread from the beginning. And I must say most claims made were more of a wet-finger guess and not backed by actual test results. I'm providing some actual numbers to back my own claims.

Tile Entities
Alex wrote:
Additionally, I said furnaces can become a giant strain on the server.

First off all, let's not blame furnaces. Or any other tile entity for that matter. On my machine I could easly run 260k burning furnaces while still running at 20tps. Also chests or hoppers(surprisingly) (filled or empty) contributed about as little to the server strain. The only time I got a sizeable fps drop was when the hoppers were transferring items between themselves. Once they ran out, tps jumped back to 20.

In short, tile entities are nothing to be worried about unless someone decides to spend their time filling chunk after chunk with furnaces Wink

Entities
As we know, entities can certainly put a lot of strain on a server. On my own test server, up to ~500 creepers the server continues to run along smoothly, but at 1000 tps took a sharp hit. Having the entities close together vs spread out does not seem to make a difference in terms of performance. The thing that causes the biggest hit on performance is their AI. After lobotomizing all the entities, tps went back up to 20.

Entities that are loaded therefore don't explicitly contribute a whole lot to overall lag. Since the server can regularly be seen chugging along at 3k entities. This is because entities that are further than 32 blocks away from a player will loose their AI, and therefore lift a lot of the strain on the server. Nevertheless, player-made farms such as chicken farms and villager farms will still contribute to lag since players are usually nearby, so cutting down on those would be quite useful.

As an extra note to this, the gamerule maxEntityCramming might help with this, (even if it's just to limit chicken farms), by suffocating mobs when they're too tightly packed.

Redstone
Now then, onto the most controversial of them all. Redstone. Yes, it does. It can cause a considerable amount of lag especially with running clocks. On this point I 100% agree that farms should have a shutoff button. However, redstone only causes lag when running, so even the biggest Iron Farms will have barely an effect on lag once they have been set up.

Redstone can indeed be intentionally used to create a lot of lag, but for most use cases, it doesn't have to. There's not that many farms that actively rely on a rapid clock to work, so cracking down on big farms will only get us so far.

Chunk loading/unloading
Now, here we come to what I thought would be the main cause of lag, but to my surprise, after some testing on both my own server and Cemetech, it didn't seem that much of an issue.

While chunkloading/unloading can be an issue for servers with an especially slow HDD/SSD, or with a sufficiently large playerbase, as far as I can tell, this bottleneck doesn't seem to affect much on Cemetech. However, should this become an issue, I would reccommend reading up about running the server entirely in RAM using a RAMDisk. This allows much faster chunk loading/unloading times and can greatly improve tps should this become an issue. http://minecraft.gamepedia.com/Tutorials/Ramdisk_enabled_server

Random ticks and loaded chunks in general
I did some testing with massive renderdistances (32 chunks), and to my surprise, the server held up quite well. Once the inital tps drop from generating the world had settled, we were back at 20 tps.

Random ticks are what causes plants to grow, grass to spread, farmland to dry, leaves to decay, and fires to spread. Every tick, (by default) 3 blocks are chosen in a chunk section (16x16x16) and given a random block update, for example for crops this will advance the growth. These random block updates are what makes the world feel alive and changing. These can also contribute (yet again) a small but noticable amount of lag when lots of chunks are being loaded. Now, not every loaded chunk gets random ticks, only chunks close to a player will receive these random ticks, this is why crops planted within spawn chunks will still not grow if a player is not nearby.

So what's my point?
I set out to do some testing, and found what I consider to be the main cause of lag and some methods to limit it.

Remember when I talked about the 32 chunk renderdistance, in that screenshot, you can see about 1700 entities loaded, shouldn't the game have long crashed then? (Since I didn't lobotomize those Wink )

It didn't, since loading a big part of the map doesn't accurately reflect having lots of people online and spread all over the map. This is because the game shut off their AI when they get too far away from the player. But when you have multiple people running around each loading their own 64x64 area of mobs, all this pathfinding adds up.

The lag on the server is about linear to the number of players, since it is linear to the number of actively loaded entities.

proposed solutions
Server Side
  • Limit the number of players
  • Limit the number of mobs (please don't)
  • Encourage players to stick together in towns
  • Switching over to spigot does help streamline the server in general, but as stated by commandblockguy, might break some farms.

What players can do
  • Move animal pens a bit away from your base so the animals aren't constantly pathfinding. Baby animals will still grow up, they just won't walk around.
  • Same for big farms, golem farms just need the villagers to be there they don't care if the villagers are actually doing villager stuff. So move these higher up.
  • Lighting up caves, yes, you load mobs underground too, and they also move around, so besides improving mobfarm efficiency, you can help improve the server's efficiency Smile

Conclusion
Cracking down on farms and on storage rooms (of all the things?) will only give very small performance improvements, and will anger the community. Besides, what's all this about "if you only need so much then only farm so much", this isn't in the cemetech 'FreeBuild' spirit I know. Cemetech was about showing off the cool creations you can build, wasn't it? If I want to build a massive farm and farm 8000 potatoes an hour, then I'll build a goddamm farm that farms 8000 potatoes an hour! And it'll look epic at that!

Lastly, even the improvements I've suggested will only get us so far, in the end, if it is to grow we want, we'll have to switch to a more powerful server at some point, we'll have to start thinking about monetizing it. But that's a whole other discussion.

Testing and world
Test results:
http://imgur.com/a/YeQN7

World Download
http://lennart.ulyssis.be/projects/LagTesting.rar
I highly reccommend trying this world on cemetech as well to see how well it holds up.
I'll add to what lennart said. Monetizing and using the money to purchase more powerful server hardware is something we'll likely have to consider if we want to support increasing gameplay, because I do believe that restricting farms and asking users to cut back (with us taking disciplinary action if they do not) is not in the interests of freebuild and will hurt us as far as popularity and recommendability go. So I have two suggestions (beyond better hardware):

1. Instead of imposing further restrictions on farms and penalizing non-compliance, offer incentives to players/towns to willingly scale back their farms. For example, a town that halves the villager count in its iron farm gets rewarded half its former production by admins bi-weekly or something. A town or player that removes its darkroom mob spawners gets given a few spawners blocks this will help massively, since darkroom spawners use the normal mob spawning/pathfinding range and spawners blocks only activate within 16 blocks.

2. Allow players who are very skilled in efficient, lag-countering redstone design to offer in-game workshops on this to teach less skilled players. Give the teacher some reward to incentivize this, and give attendees some reward to encourage players to take the time to learn.

Again, key point here... incentivize and teach, do not force and penalize! That's how you alienate a userbase Smile
ACagliano wrote:
I'll add to what lennart said. Monetizing and using the money to purchase more powerful server hardware is something we'll likely have to consider if we want to support increasing gameplay, because I do believe that restricting farms and asking users to cut back (with us taking disciplinary action if they do not) is not in the interests of freebuild and will hurt us as far as popularity and recommendability go. So I have two suggestions (beyond better hardware):

1. Instead of imposing further restrictions on farms and penalizing non-compliance, offer incentives to players/towns to willingly scale back their farms. For example, a town that halves the villager count in its iron farm gets rewarded half its former production by admins bi-weekly or something. A town or player that removes its darkroom mob spawners gets given a few spawners blocks this will help massively, since darkroom spawners use the normal mob spawning/pathfinding range and spawners blocks only activate within 16 blocks.

2. Allow players who are very skilled in efficient, lag-countering redstone design to offer in-game workshops on this to teach less skilled players. Give the teacher some reward to incentivize this, and give attendees some reward to encourage players to take the time to learn.

Again, key point here... incentivize and teach, do not force and penalize! That's how you alienate a userbase Smile


I +1 this
Quote:
Redstone. Yes, it does. It can cause a considerable amount of lag especially with running clocks.

I found a video explaining why this is the case here:
https://www.youtube.com/watch?v=NEMARMNvDsw
Someone adapted Panda's code into a plugin for 1.11.0 here, but it might be incompatible with 1.11.2, and almost definitely will be incompatible with 1.12 because it relies on version-specific NMS code. I was able to decompile the JAR and I might be able to update it if the developer allows it.

This shouldn't break too many things that don't immediately seem buggy (location/rotation based things, etc.)
I wasn't ignoring this post, I decided to wait a few days to see what other players were thinking as I feel like a lot of what I say is perceived as final. It's not, I welcome feedback and other view points. I'm kinda bummed the mod team has been pretty silent on this as well but I understand we all have lives and stuff.

lennartVH01 wrote:
Tile EntitiesThe only time I got a sizeable fps drop was when the hoppers were transferring items between themselves. Once they ran out, tps jumped back to 20.


That's reassuring.

Quote:
EntitiesEntities that are loaded therefore don't explicitly contribute a whole lot to overall lag. Since the server can regularly be seen chugging along at 3k entities. This is because entities that are further than 32 blocks away from a player will loose their AI, and therefore lift a lot of the strain on the server. Nevertheless, player-made farms such as chicken farms and villager farms will still contribute to lag since players are usually nearby, so cutting down on those would be quite useful.


This is incredibly useful.

Acagliano wrote:
1. Instead of imposing further restrictions on farms and penalizing non-compliance, offer incentives to players/towns to willingly scale back their farms. For example, a town that halves the villager count in its iron farm gets rewarded half its former production by admins bi-weekly or something. A town or player that removes its darkroom mob spawners gets given a few spawners blocks this will help massively, since darkroom spawners use the normal mob spawning/pathfinding range and spawners blocks only activate within 16 blocks.


This is interesting. Is there a difference between darkroom spawners and spawner blocks? Are they not the same thing?

lennartVH01 wrote:
As an extra note to this, the gamerule maxEntityCramming might help with this, (even if it's just to limit chicken farms), by suffocating mobs when they're too tightly packed.


I had no idea that was a game rule!

Quote:
However, should this become an issue, I would reccommend reading up about running the server entirely in RAM using a RAMDisk. This allows much faster chunk loading/unloading times and can greatly improve tps should this become an issue. http://minecraft.gamepedia.com/Tutorials/Ramdisk_enabled_server


I don't think that's entirely practical but if we do move forward to a dedicated host for the MC server then it's certainly an option.

Quote:
These can also contribute (yet again) a small but noticable amount of lag when lots of chunks are being loaded. Now, not every loaded chunk gets random ticks, only chunks close to a player will receive these random ticks, this is why crops planted within spawn chunks will still not grow if a player is not nearby.


I assume that's the same idea as the mob spawners above?

Quote:
This is because the game shut off their AI when they get too far away from the player. But when you have multiple people running around each loading their own 64x64 area of mobs, all this pathfinding adds up.

The lag on the server is about linear to the number of players, since it is linear to the number of actively loaded entities.


Quote:
proposed solutions
Server Side
  1. Limit the number of players
  2. Limit the number of mobs (please don't)
  3. Encourage players to stick together in towns
  4. Switching over to spigot does help streamline the server in general, but as stated by commandblockguy, might break some farms.


  1. Something we've considered, yes, but keep deciding against
  2. I doubt this will ever happen, if things get severe we may look into a mobs per chunk rather than mobs per world or whatever.
  3. Yeah that and trying to reduce the amount of duplicate farms should work, right? Not saying we can't have two similar farms but having two giant/mass similar farms is a bit much when they're both loaded.
  4. That might be an acceptable option. It'll suck but it'll throw a problem that players should be able to solve and adapt too.




Quote:
What players can do
  1. Move animal pens a bit away from your base so the animals aren't constantly pathfinding. Baby animals will still grow up, they just won't walk around.
  2. Same for big farms, golem farms just need the villagers to be there they don't care if the villagers are actually doing villager stuff. So move these higher up.
  3. Lighting up caves, yes, you load mobs underground too, and they also move around, so besides improving mobfarm efficiency, you can help improve the server's efficiency Smile


  1. 100% agree. Does this also work vertically? I assume it does regarding #2
  2. Wouldn't it be wise to put the spell book villagers in with an iron farm? That way the same villagers can be used to spawn golems and also get enchanted books. Could potentially reduce the number of entities.
  3. 100% agree again. It's a minor thing but every little bit helps.


Quote:
Conclusion
Cracking down on farms and on storage rooms (of all the things?) will only give very small performance improvements, and will anger the community. Besides, what's all this about "if you only need so much then only farm so much", this isn't in the cemetech 'FreeBuild' spirit I know. Cemetech was about showing off the cool creations you can build, wasn't it? If I want to build a massive farm and farm 8000 potatoes an hour, then I'll build a farm that farms 8000 potatoes an hour! And it'll look epic at that!


I emphasize but we believe players can build epic towns without large scale production farms. As I said in a prior post, if you're selling 7000+ potatoes a day then by all means continue producing 8k a day. Meet the demand. But if you're only selling 100 a day... maybe run the farm bi-monthly or considering downscaling it.

We can certainly lower the max player count down to like 15 and keep farm production sizes close to where they're at currently. If we want to grow we'll need to start scaling back certain aspects. Whether it's farm size or the online community size (we may have to implement a queue). We aren't entertaining the idea of monetization and a dedicated server for MC just yet. Nor are we really entertaining shrinking the max player count, as that seems sort of counter-intuitive. We have some other ideas in our heads right now that should be more than enough for the time being.
  
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement