mojira.dev
MC-66341

piston_extension causes massive client side preformance issues

In a Minecraft world with any more than around 50 piston_extension blocks, the frame rate exponentially drops until it reaches 0-5 FPS. Chunks also stop loading/rendering at this point.

When leaving the area, (unloading the piston_extensions) the frame rate return to normal. When pausing the game in single player (pressing esc), the frame rate return to normal, and all chunks load. Deleting the piston_extension blocks also causes the frame rate to return to normal, and all chunks to load.

This issue happens regardless of whether the world is being run on a multiplayer server, or being opened locally in single player.

The frame rate drop does not happen in 14w32b.

Linked issues

Attachments

Comments 7

Piston extensions are no longer a proper block
MC-62753

Piston extension is an internal technical block and it's not supposed to be used in maps.

Even if it's a technical block, isn't this the case if you have 50 extended pistons then?

If I had to guess I'd bet it would be the pistons checking which block they are attached to every frame.

Piston extension blocks may not have been "intended" for use by mapmakers, but there are many blocks in Minecraft that are commonly used for purposes that they were not intended for. One of the essential qualities of Minecraft that makes it great is the openness that allows players to use anything in it in ways that the creators of the game may have never considered.

I think that it's important to consider that piston extension blocks are very useful to mapmakers in many situations, including:

• Preventing players from building beyond a certain boundary in situations where you want to allow entities to pass through that boundary. Example: in the PvP map "Rampart", by the Whiskey Brigade (http://redd.it/23j676), the area underneath the course is filled with Block 36. This is to prevent players from bridging underneath the course (which the mapmakers determined had a negative affect on gameplay) while preserving the hazard of players falling into the void in area where creeper and TNT blasts had occurred (which the mapmakers determined had a positive impact on gameplay). Another way to theoretically solve this issue would have been to lower the bottom of the map to y = 0, but that would have introduced the issue of asymmetrical slime chunks between the two otherwise symmetrical sides of the map. (As a side note, if you could make slime chunks editable in the same manner that biomes are, that would be sweet.)
• Controlling liquid flow - This is notably useful for Race for Wool maps that contain unupdated water/lava blocks facing the void lane, that the mapmaker doesn't want to create a mess if and when they get updated during a match.
• Manipulating the mob AI - I admit that I don't know much about this particular usage of Block 36, but I've heard that Hypixel uses them for that purpose in some of their maps.
• Preventing players from accessing chests, brewing stands, etc... or breaking/placing blocks beyond a certain barrier when you don't want to totally cut them off from that area or put them in Adventure Mode.
• Filling up air blocks where the mob spawn calculation could start to prevent mobs from spawning in certain areas. Example: I'm working on a PvP map in which it's important for the starting platform to be above a certain area of the course itself which is set to the Nether biome. I couldn't prevent mobs from spawning on the starting platform by eliminating viable spawning areas on the starting platform (because I needed some of the horizontal surfaces to not be transparent), or by keeping the light level high (because Nether mobs can spawn in high light levels), so I solved the issue by covering the horizontal surfaces with carpet, and filling the surrounding air within a 13-block horizontal radius with Block 36.

If it would be prohibitively difficult for you to make piston extension blocks feasible for use by mapmakers again, I would encourage you to add a new block with the same functionality that doesn't have the lag issues that piston extension blocks have had since 1.8.

Thanks for your time, and thank you for all of you work making Minecraft the great game it is.

Quote:
If it would be prohibitively difficult for you to make piston extension blocks feasible for use by mapmakers again, I would encourage you to add a new block with the same functionality that doesn't have the lag issues that piston extension blocks have had since 1.8.
Thanks for your time, and thank you for all of you work making Minecraft the great game it is.
________

it indeed would be nice to have that, a block that's empty, not visible, and prevents you from placing blocks there

PS: i do not like the idea of maps thay say: "to play this map you must use optifine or a silly MC bug will lag you so much you wont be able to play, but with optifine you will be fine"

the thing that bothers me the most is that i usually play vanilla only, no mods, but this has proven optifine to be needed for some stuff, bcos this can make the client multiply the fps's x 20 or more (from 20 fps's to 400)

This doesn't seem to be as much of a problem in 1.8.3.

There was an area in my building world where I used about 20 "piston_extension" blocks to keep water and lava from flowing (I placed them in 1.7.2). In 1.8, I would get lag if I looked at this area. In 1.8.3, that doesn't happen anymore, even at 16 chunk render distance.

If you're wondering if they got deleted, they didn't. I just used /testforblock to check, and the blocks are still there.

Someone should do more tests to see if this is still an issue in 1.8.3. From what I can tell, it's either been fixed or causes lag only when there's a very large amount of them.

Jeven

michael

Unconfirmed

Minecraft 14w32c, Minecraft 14w32d

Retrieved