Pos 1–5 dari 5
1
oleh
2 bulan lalu
Now that I can read .chunk files, I decided to analyse 213 dungeon chunk files. The dungeons are basically 32x32x64 lists of numbers (block IDs), my wish was to plot the dungeons on a 2d or a 3d graph, so I needed to reduce those 65536 numbers to just 3, for that I used PCA (principal component analysis). Here are the dungeons plotted in 4d (3d + 4th dimension=color): https://imgur.com/a/gkfHRTs The results seem a bit messy, which we can improve. The dungeons have randomised cinder blocks, and they take natural blocks from the area the dungeon spawns in, so a dungeon in marble hills would have blue and gray marble with wool grass, while one in a forest would have rock, dirt and grass. Here are the dungeons plotted with cleaned cinder, cleaned natural blocks, and with cleaned cinder and natural blocks: https://imgur.com/a/0kdaAhK In the cleaned up dungeons, we can clearly see some groups, there is a most distinct division in the middle, where two almost identical groups can be seen on either side. To analyse that, we would need to know what each dungeon has, so we need to do PCA on each floor separately. Here is how floor 1 PCA looks: https://imgur.com/a/ducFfSV (Dungeon floors from bottom up: Money room, Floor 4, Floor 3, Floor 2, Floor 1, Entrance room) Each floor PCA graph has clear groupings just like this one, which means we can now differentiate different floors by looking at which room point is closest, and assign each dungeon 4 numbers, where each number corresponds to the id of the room for that floor. The dataset of 213 dungeons had 42 different rooms, but there are more rooms in the game than 42. Instead of ids, we would rather have actual room names, so I labeled each floor with human readable names. Here are 2d plots of floor PCA labeled with floor names: https://imgur.com/a/iA5aI5U With rooms for each dungeon, and with labels, we can now try to understand the structure seen in the dungeon 4d plots: https://imgur.com/a/Hpb31Lc Now we can also see that the big divide between two groups in the 4d graph comes from floor 2, which has only two variations, the 3 doors and icon injector hunt. Other floors subdivide the points in a non obvious way. An added bonus is that I can recognise what rooms any dungeon has, if given the dungeons .chunk files, by cleaning and projecting the floors and seeing what room is closest for each floor. Here are also some semi-related images: https://imgur.com/a/pu4KOxp
oleh
2 bulan lalu
2d plot of dungeons, this would be the top down view: https://imgur.com/a/hAjtH8N
oleh
2 bulan lalu
updated more readable plots: https://imgur.com/a/tEb9RTn i also generated every possible combination of dungeons using rooms i have in the dataset, and plotted those, which gives me a much less interesting plot, where each floor just spreads along one axis (also the reason the 3rd floor has axis 4 for Z instead of 3 like others do) https://imgur.com/a/9hJU5ec
Pos 1–5 dari 5
1