Polyworld - The mess that is world conversion

@m1ssing0.bsky.social

Polyworld - The mess that is world conversion

When Minecraft began to shift towards infinite world generation, the world format became much more sophisticated than prior implementations. Infdev also marks the beginning of in-game conversion support. So, how do we convert older worlds to Infdev? Thankfully, we have tools available, such as MCEdit, at our disposal, as well as a thorough guide to streamline the process. There are also automatic conversion tools, but your mileage may vary.

The conversion process using MCEdit is actually pretty simple. It involves saving the older world as a schematic, creating a placeholder world in the version you are upgrading to, and importing the schematic into that placeholder world. This is more or less the same process between versions. The only outliers being early Pre-Classic to late Pre-Classic, and Classic to Indev. During Pre-Classic, the first new blocks were added, and older block IDs were not taken into account. Therefore, an early Pre-Classic world will be all stone blocks after a transfer. Thankfully, this is an easy fix in MCEdit, as it has a replace function.

Classic to Indev on the other hand is very finicky. The guide lays out a method of overwriting the binary data of a placeholder world with the one from a schematic, but no matter how hard I tried, I could not get a loadable world from this. I don't remember how many times I tried this, but it just wouldn't work! Eventually, I used the method I laid out for other versions. It loaded! However, something was wrong.

oof Moments before death

So why am I falling from the sky in some sort of shadow world? Truth be told, I don't actually know. I was stuck here for quite a bit. My first thought was to fix whatever was causing me to spawn in the sky. I tried editing the player position and spawn position manually to no avail. At this point, I was a couple hours into my conversion experiments and I was pretty frustrated and just trying to brute force it. I did eventually come back after some time while I was reaching out to a community to show my findings. That's when I noticed my position edits were taking effect, it's just the Y value was off. See, during my conversion, I set the world height to 128 (as classic supports custom world dimensions). Little did I know this would hurt me in the long run. So I manually edited the world height back to the original 64, and I was able to load in without dying immediately. But, I was not free from troubleshooting.

The void still consumes the world.

Something is causing the game to slow to a crawl. I think it has something to do with the lighting, as evidenced by the excessive shadows, and what I believe to be the amount of queued lighting updates, indicated by the "L" in the top right. This only happens to converted worlds I load. Honestly, I believe this is a much deeper issue with the game itself, or with my drivers, or something...

And that's where I am at currently. I am faced at a dilemma. My original plan was to do all major versions available from Mojang, with the exception of Indev. Indev is a particularly interesting time in the development of Minecraft, since it was shifting from a creative sandbox, to a survival sandbox. As such, these versions included more experimental features, such as a world generation type of floating islands, and included debug chests with every item. It also introduced the first structure to be added to the game. It had several different implementations as the focus of Indev changed.

The Starting House, in the last Indev version.

As Indev is an important aspect of Minecraft's development, I wanted to include it in the Polyworld. However, with Indev not doing well in my test conversions, I was rather upset. Out of desperation, I wanted to see what would happen if I continued the conversion process to Infdev. To my surprise, it worked without issue.

The test world, showcasing three conflicting world generations (Pre-Classic, Classic, Indev)

So I made a decision, despite my wishes, I would not be playing Indev. However, I would be including the Indev generation, as I believe that is better than skipping Indev altogether.

Current Day

Since I spent so much time troubleshooting, as well as not being too happy about the results, I did not spend much time in rd2 yet. One difference from rd1 and rd2 you'll notice instantly is that we have some new friends.

These were the game's first mobs. Never given a proper name and are just colloquially referred to as "Mobs." The feature a primitive animation where they flail their arms around, roll their head, while walking and jumping. They use a simple AI of just running around in circles.

A mob enjoying their time in the castle courtyard.

Of course, our new-found friends need a place of their own to stay at.

Here you can also see a moat that I built around the castle. I also tried doing pathways which are separated with water from a nearby pond.

Close up of the pond.

And lastly, what I'm currently working on.

I've only just started. I wanted to build a church, but the details I wanted to add didn't mesh well with the primative lighting engine. With that in mind, I started over and looked for something similar with a simpler design. I came across the Rotunda of Galerius. I figured with my earlier experience working on the caste corners that it would be much easier.

And that is all I have now, I'm afraid. I apologize if this post was a little ranty. I wanted to document my frustrations somewhere. Currently, I am just under the 3:20 mark for rd2, so expect another update soon. I am rather excited to switch soon. rd3 is where the game really starts to branch away from just being a prototype.

m1ssing0.bsky.social
M1ssing0

@m1ssing0.bsky.social

18+| she/they
join me in a world of sleep deprived blogging and the human urge to feel connected
in other words this is place to dump my unfiltered thoughts

Post reaction in Bluesky

*To be shown as a reaction, include article link in the post or add link card

Reactions from everyone (0)