Recent Events Discussion (RED) Thread

VikeStep

New Member
Jul 29, 2019
1,117
0
0
And I can honestly say that I would never notice one misplaced symbol no matter how carefully I looked.
Well I'm guessing he listened for packets and logged their size, then saw how many entries they had. Thought it was wrong, then looked to where the packet came from. He then would've noticed it wasn't going through the if statement that only send specific tiles and found the issue. When I have an issue in anything I code I log every variable I can to see where it went wrong so it's not an unusual practice
 

Revemohl

New Member
Jul 29, 2019
595
0
0
He could have not wasted his time. This issue has been spoken about, that is why it was fixed in 1.8, however if he can solve it for 1.7 that is good.
I'm glad he did, though, because that means now things might not be as horrible as they were before for people who decided to stick to 1.7.10 until 1.8 is stable (which is still going to take a long, long while).
I'm curious if Fastcraft has done anything about this issue, but that's something I should leave for the RED thread.
 

HeilMewTwo

New Member
Jul 29, 2019
1,179
-45
0
Well I'm guessing he listened for packets and logged their size, then saw how many entries they had. Thought it was wrong, then looked to where the packet came from. He then would've noticed it wasn't going through the if statement that only send specific tiles and found the issue. When I have an issue in anything I code I log every variable I can to see where it went wrong so it's not an unusual practice
And I need to learn how to do this, it sounds amazing. :D
 

MrDlor

New Member
Jul 29, 2019
75
0
0
So skyboy found something interesting in minecraft's code: IRC Log

If you are interested, here is the method causing the issue (The problem occurs on line 25): Pastebin

More technical description of issue:
The method I have linked in the pastebin will check if the number of tiles that need to update is 64. If it is equal to 64, use this method that sends data related to tiles that are in the y-levels the player will see. If it is anything else (above or below) then use this method that sends data for every tile (even underground). In 1.6 instead of it only being 64 it would send only needed tiles if the number of tiles was 64 or greater and send all if it was less.

The problem is that in 1.7 pretty much every time it will send data for every single tile to the client regardless of whether it is visible. Even if there are 4000 or so tiles. The intended method is to reduce the amount of tiles we need to update by only updating tiles that are in a given range of y values. However since mojang used == (equal to) instead of >= (greater than or equal to) we get the terrible worldgen lag

I should also point out that net.minecraftforge.common.ForgeModContainer.clumpingThreshold which you see in line 25 of that pastebin is equal to 64
So as a result skyboy has put a fix into the latest CoFHCore which patches this method. The latest update can be downloaded here

http://minecraft.curseforge.com/mc-mods/69162-cofhcore/files/2222240

O.O So 1 single typo caused all this? dayum i hope this fix will make it into Direwolf20 1.0.3 and other packs since that's a pretty big thing.
 

VikeStep

New Member
Jul 29, 2019
1,117
0
0
What is really confusing me is why it changed between 1.6 and 1.7, that entire class didnt really get touched at all moving from 1.6 to 1.7 except that one line, however in the 1.7 to 1.8 move it got redone a bit and they still left the mistake in there. Something tells me that the change was intentional. Maybe mojang thought it would be better to send data for every tile since "in vanilla" there aren't that many tiles going through. Just a theory. And one that skyboy himself shares
 

ljfa

New Member
Jul 29, 2019
2,761
-46
0
A "==" doesn't make any sense there whatsoever.
Maybe it was one Mojang employee who wasn't pleased with the Microsoft thing and snuck in this tiny bug.
Just speculating here...
 

HeilMewTwo

New Member
Jul 29, 2019
1,179
-45
0
A "==" doesn't make any sense there whatsoever.
Maybe it was one Mojang employee who wasn't pleased with the Microsoft thing and snuck in this tiny bug.
Just speculating here...
It seems like an extremely easy mistake to make though.
 

VikeStep

New Member
Jul 29, 2019
1,117
0
0
A "==" doesn't make any sense there whatsoever.
Maybe it was one Mojang employee who wasn't pleased with the Microsoft thing and snuck in this tiny bug.
Just speculating here...
What I'm thinking is that it's a stab at the people who will be affected by that kind of change *coughs* us *coughs*. But I could be completely wrong

Edit: it seems I am wrong, it was simply a mistake on forge's part when porting from 1.7.2 to 1.7.10
 
Last edited:
  • Like
Reactions: SynfulChaot

Codraroll

New Member
Jul 29, 2019
55
0
0
Make it into Direwolf? Make it to the Mojang offices, I'd say. If they can fix this for every copy of Minecraft by changing one letter, it'd be worth the effort.
 
  • Like
Reactions: Yulife