Extra strongholds spawn in positions Mojang didn't intend
This wiki description sounds like it could be the behaviour Mojang intended:
"strongholds has increased to 128 per world. They generate in rings with the strongholds evenly spaced around the circle until the total of 128 is reached"
I see the algorithm was tweeked between 15w31c and 15w44b, but the current implementation has some issues that probably weren't intended. Which each new Stronghold, it's angular position is determined like this:
angle += 2π * ringNumber / structuresPerRing;
Which means everything works normally on the first ring (ringNumber starts at 1), but on the second ring it goes around the circle twice, placing two strongholds at the same position on the circle, on the third ring it places 3 strongholds together, etc. Due to the way distance is randomised, these stronghold clumps tend to be arrange in lines.
Diagram of stronghold positions for seed 2
You can see this is probably not what Mojang intended, except for ring 3, which probably is what Mojang intended, and works because the ringNumber (3) didn't divide evenly into the number of structures for that ring (13), so they didn't end up overlapping. The number of structures per ring is slightly randomised, so for the seed 2 diagram above, ring 1 has 3 structures, ring 2 has 6 structures, 3 has 13 structures and 4 has 28 structures.
If going around the circle more than once is intended behaviour, Mojang might not have noticed that ring numbers frequently divide evenly into structuresPerRing - random bad luck might have meant the seeds they tested on produced the correct behavior.
Created Issue:
Extra stronghold spawn in positions Mojang didn't intend
This wiki description sounds like it could be the behaviour Mojang intended:
"strongholds has increased to 128 per world. They generate in rings with the strongholds evenly spaced around the circle until the total of 128 is reached"
I see the algorithm was tweeked between 15w31c and 15w44b, but the current implementation has some issues that probably weren't intended. Which each new Stronghold, it's angular position is determined like this:
angle += 2π * ringNumber / structuresPerRing;
Which means everything works normally on the first ring (ringNumber starts at 1), but on the second ring it goes around the circle twice, placing two strongholds at the same position on the circle, on the third ring it places 3 strongholds together, etc. Due to the way distance is calculated, strongholds spiral outward as they go around the circle, so these stronghold clumps tend to be arrange in lines.
Diagram of stronghold positions for seed 2
You can see this is probably not what Mojang intended, except for ring 3, which probably is what Mojang intended, and works because the ringNumber (3) didn't divide evenly into the number of structures for that ring (13), so they didn't end up overlapping. The number of structures per ring is slightly randomised, so for the seed 2 diagram above, ring 1 has 3 structures, ring 2 has 6 structures, 3 has 13 structures and 4 has 28 structures.
I suspect that going around the circle more than once is intended behaviour to hide the outward spiral in how distance is calculated, but Mojang might not have noticed that ring numbers frequently divide evenly into structuresPerRing - random bad luck might have meant the seeds they tested on produced the correct behavior.
This wiki description sounds like it could be the behaviour Mojang intended:
"strongholds has increased to 128 per world. They generate in rings with the strongholds evenly spaced around the circle until the total of 128 is reached"
I see the algorithm was tweeked between 15w31c and 15w44b, but the current implementation has some issues that probably weren't intended. Which each new Stronghold, it's angular position is determined like this:
angle += 2π * ringNumber / structuresPerRing;
Which means everything works normally on the first ring (ringNumber starts at 1), but on the second ring it goes around the circle twice, placing two strongholds at the same position on the circle, on the third ring it places 3 strongholds together, etc. Due to the way distance is
calculated, strongholds spiral outward as they go around the circle, sothese stronghold clumps tend to be arrange in lines.Diagram of stronghold positions for seed 2
You can see this is probably not what Mojang intended, except for ring 3, which probably is what Mojang intended, and works because the ringNumber (3) didn't divide evenly into the number of structures for that ring (13), so they didn't end up overlapping. The number of structures per ring is slightly randomised, so for the seed 2 diagram above, ring 1 has 3 structures, ring 2 has 6 structures, 3 has 13 structures and 4 has 28 structures.
I
suspect thatgoing around the circle more than once is intended behaviourto hide the outward spiral in how distance is calculated, butMojang might not have noticed that ring numbers frequently divide evenly into structuresPerRing - random bad luck might have meant the seeds they tested on produced the correct behavior.This wiki description sounds like it could be the behaviour Mojang intended:
"strongholds has increased to 128 per world. They generate in rings with the strongholds evenly spaced around the circle until the total of 128 is reached"
I see the algorithm was tweeked between 15w31c and 15w44b, but the current implementation has some issues that probably weren't intended. Which each new Stronghold, it's angular position is determined like this:
angle += 2π * ringNumber / structuresPerRing;
Which means everything works normally on the first ring (ringNumber starts at 1), but on the second ring it goes around the circle twice, placing two strongholds at the same position on the circle, on the third ring it places 3 strongholds together, etc. Due to the way distance is randomised, these stronghold clumps tend to be arrange in lines.
Diagram of stronghold positions for seed 2
You can see this is probably not what Mojang intended, except for ring 3, which probably is what Mojang intended, and works because the ringNumber (3) didn't divide evenly into the number of structures for that ring (13), so they didn't end up overlapping. The number of structures per ring is slightly randomised, so for the seed 2 diagram above, ring 1 has 3 structures, ring 2 has 6 structures, 3 has 13 structures and 4 has 28 structures.
If going around the circle more than once is intended behaviour, Mojang might not have noticed that ring numbers frequently divide evenly into structuresPerRing - random bad luck might have meant the seeds they tested on produced the correct behavior.
Extra strongholds spawn in positions Mojang didn't intend
Strongholds that generated in 1.8 won't generate in the same position in 1.9pre2.
Also they generate at least 1408 blocks away from origin (in 1.8 it was 640 blocks).
This was a side effect of the fix for MC-92289 which changed the distance calculation of strongholds.
How it was
Strongholds plotted for 1.8 (just the inner circle/triangle) and 16w05b (just adds extra circles)¹


Distance calculation for 1.8 and 16w05b:
double distance = (1.25D * (double) circle + rand.nextDouble()) * this.const32 * (double) circle;
How it currently is
Strongholds plotted for 1.8 and 1.9pre2 (notice how it loses the old inner circle)¹


1.9pre2:
double distance = 4.0D * this.const32 + this.const32 * (double)circle * 6.0D + (rand.nextDouble() - 0.5D) * this.const32 * 2.5D;
Adjusted
Stronghold plotted for 1.8 and an adjusted version to keep the inner circle the same¹


double distance = 1.75D * this.const32 + this.const32 * (double)circle * 6.0D + (rand.nextDouble() - 0.5D) * this.const32 * (circle == 0 ? 1.0D : 2.5D);
It would be preferable if the old stronghold positions would remain the same.
Also the increased distance to origin and therefore also to spawn has the disadvantage of longer walkways when cycling between the end and the over world.
In 1.8 the inner circle was between 640 and 1152 blocks from origin.
In 1.9pre2 the inner circle lies between 1408 and 2048 blocks from origin.
With the random placement of the spawn point it wouldn't be uncommon to have distances of several thousand blocks to the first accessible end portal.
As the end is a major component of the game (especially in 1.9) it shouldn't be that far away from the world center.
@edit It turns out eye of enders also behave weird when it comes to the strongholds that were generated in 1.8 (when you upgrade a world to 1.9pre2).
It still is affected by the old stronghold but misses the portal room by some chunks.
Other alternatives:
Increasing spread and increasing interval (Pretty much 16w05b with the fix of MC-92289)

double distance = (1.25D * ((double) circle + 1.0) + rand.nextDouble()) * this.const32 * (double) (circle / 1.9 + 1.0);
Constant spread and constant interval

double distance = 1.75D * this.const32 + this.const32 * (double)circle * 6.0D + (rand.nextDouble() - 0.5D) * this.const32;
Increasing spread and constant interval

double distance = 1.75D * this.const32 + this.const32 * (double)circle * 6.0D + (rand.nextDouble() - 0.5D) * this.const32 * (1.0 + circle / 1.75D);
Evenly distributed (has a rare chance of double strongholds though)

double distance = 1.75D * this.const32 + this.const32 * (double)circle * 6.0D + (rand.nextDouble() - 0.5D) * this.const32 * (circle == 0 ? 1.0D : 6.0D);
1. The plots are the strongholds for 1000 seeds each.

If I'm understanding this right, the formula should be changed to
I would say the 'buggy' behaviour is the clumps of strongholds generating. This is as opposed to speculation over what algorithm Mojang 'intended'.
yeah, "angle += 2π / structuresPerRing" would give the behavior described by the wiki, but I don't know if that's what Mojang were intending.
I was looking for where someone already posted the strongholds not generating as intended. Still present in 16w02a. (edited to remove redundancy
)
Still present in 16w05b.
Easiest way to verify:
Note: while you may be able to load Amidst with the latest snapshot, for what I can tell, it currently can't recognize any snapshot past 16w02a, thus requiring visual verification.
edit: after looking through Amidst some more, it's not every ring, and it's not even the same rings every time; it varies per seed. Either way, adding a screenshot now.
I see two end portals in the screenshot.
Yes, that is the bug
You was so clever..