Mystcraft 0.12.0 and LookingGlass 0.1.2

OK, this week sees a whole bunch of new configs and a cleanup of the old ones. My config files should make a little more sense, now, but will need to be updated if you’ve made changes.

I’ve added a set of configs for the baselining system, even up to letting you turn it off and use some flat values from configs. I think I’ve simplified it enough that it will be doable from config.
In particular, I’ve allowed you the power of choice in which kind of profiling you prefer, and even allowed you to turn off the profiling in favor of hand-tuned values.

This should wrap up the profiling arc, and now I’ll move on to more fun stuff. 😀

LookingGlass got a bug fix. I’ve made good progress in various areas, but nothing is ready for prime time just yet. Almost to releasing the code.

Enjoy!

Mystcraft is available from CurseForge.
LookingGlass is available from CurseForge.

Mystcraft Changelog
LookingGlass Changelogs

Why the Profiling Exists (A quick history)

Sometime back (I can’t even place when) I was playing on FC2 and some stuff happened. I had a nice little house on the beach near the giant wand recharging tower, if you want to try and place it.
The event in question was incited by cpw, who created a Mystcraft age. This age had diamond ore tendrils.
While we were merrily collecting as many diamonds as we could carry in a world falling apart around us, cpw remarked, “So, XComp, how broken is your mod?”
I responded, “I’ll fix it.” I must have been channeling my inner Bill Cosby (Soaryn will get that joke).

At the time, instability was estimated by the symbols that did the generation using formulas provided by the modifiers they were using. This was really hard to balance in any kind of logical way and came with a large set of issues like the prediction being possibly wrong in either direction. I couldn’t simply make diamonds cause more instability, either, as that’d make the other issues worse.

Instead, I came up with a system for profiling the world as it really was, not how it might be. I built the age profiling system. This is not the baseline profiling system, which I’ll call baselining from now on (I’ll try, anyway).
The age profiling system is pretty nifty, but difficult to explain to people who don’t know code, so I’ll try it with a Minecraft imagery metaphore.
Imagine you have a world with a bunch of chunks in it. Normally we can’t see the chunks, but we know they are these 16×16 areas that load and unload and generate when needed.
Now, imagine all of those chunks slightly transparent. As if we’d made them holograms.
Now overlap them on top of each other.

It’d look a little weird, perhaps, but we’d quickly be able to see areas which were usually stone, or usually air, or might have trees. If we did this with thousands of chunks, we’d be able to see what range of blocks the diamond blocks usually show up in.

Mystcraft’s profiling system basically does that. It goes through every chunk we generate and checks each block in it, mapping it to our single transparency. It actually counts the number of times this relative cell was a solid block, or an ore block, or water, or whatever else we want to count.
This allows Mystcraft to say, “You know, this world has a lot more diamond than normal…” and the produce instability because of it, in a nice, logical way that’s actually pretty easy to balance.

The catch was, “what’s normal?”
About a week later I started playing on Forgecraft again. This was actually the beginning of the last time I played on FC2, I think. The one where we used the configs from the DW20 pack…
Turns out, someone had played with the vanilla ore distribution. Since Mystcraft was comparing the profiling data to vanilla’s normal ore distribution, it wound up making all ages on the server unstable. No one had bothered to test this in advance, so the DW20 pack users were all complaining they couldn’t get stable ages…

And so, I was tasked with fixing this too.
Now, because the profiling data was pretty complicated (and for a few other reasons besides) I determined to simply establish what was normal for the save and use that. Thus the baselining was born.
The baselining usues the profiling system, but it is actually more than that. What it does is it generates an extra dimension in the background; a pure dimension which we can determine is “stable.”
As the dimension generates, it gets profiled, same as any other Mystcraft age. We can then use this data to do the comparisons for “this world has a lot more diamond than normal” without worrying about the mod loadout and configs.

And then, there were more problems.
The baselining was actually pretty slow at first. I made a valiant effort and improved lots of things and had it running really smoothly for the most part, but I still got complaints. Apparently my four year old laptop still outpaces the standard hardware… Cool, I guess.
At this point the baselining runs pretty fast, so long as mods play nicely. Many mods that do generation don’t seem to understand how generation should work, and so they do things which make generation take many times longer than it should, but it still sorta seems to work.

It’s not enough. The top complaint I hear is “why does it happen for every world?!”
The two main reasons for this were that it made it possible to do the baselining in the background while you played and that some mods actually allow you to change the ore distributions per save…

I gave up and tried something new. Something experimental and something I don’t even like: I moved the profiling to happen when you start the game.
I’ll be clear on this: I hate this idea.

I’ve liked it even less since I released it. This system is different enough that it confuses too many mods. There is a crash on game start with bspkrsCore (he’s aware of the issue and accepted the fault) and sometimes the progress bar just doesn’t move. This means no chunks are generating. I have no idea why that is. Some mod is doing something, but that’s nothing to go on.

And now that’s the issue: the wait; it runs when things change; the conflicts with other mods.

Apologies if my tone comes across as irritated, but I’m tired; really tired; of this issue. Mystcraft was more fun when I could make it about the lore and not have to try and balance the darn thing.

With that explained, I’m currently trying to get feedback on how to move forward with it. I’ve made a topic on the Mystcraft Forums about this, and I welcome your input.

Mystcraft 0.11.12 and LookingGlass 0.1.1

If you’ve not already seen LookingGlass, you should probably check it out.

I still haven’t fixed the API distribution for LookingGlass. I’m trying, but I’ve a little too much going on right now to get to it.
However, I have made some fixes and things to it, so that’s progress.

Mystcraft’s baseline profiling has been rearranged. See the changelog for more details. In-game performance should improve.

Mystcraft is available from CurseForge.
LookingGlass is available from CurseForge.

Mystcraft Changelog
LookingGlass Changelogs

Enjoy!

I am no longer the author of Mystcraft

Which is to say, I am no longer the author of just Mystcraft.

In the past month I have released two new mods (OK, a mod and a half) and demonstrated parts of a third. I can no longer arrange myself as if I am the author of only one Minecraft mod; I now have many.
This means that some areas of my site need to reorganize, particularly treating the site as the home of Me and Mystcraft. Now it needs to be my home, where we can discuss all of the things I’m working on, not just the oldest mod I have.
I’ve already rearranged the forums here, setting things up into a more categorized setup. The layout might change some depending on feedback, but the addition of the categories and space for other mod discussions should be very helpful. The blog and overall site layout will be changing in the near future. I have awesome people who are working on that for me.
I still need to rearrange the wiki, but… that’s more than slightly daunting and also feels like wasted effort. It’s a waste because I plan on killing the wiki.

Now I don’t plan on killing the wiki without a replacement, so don’t worry there.
A long time ago, when creating the wiki for Mystcraft here, I sat down with the other people in the community and we chose DokuWiki. Doku has served well enough, but I regret the choice.
At this point I wish we’d selected MediaWiki. MediaWiki supports much more advanced templating and macros right out of the box. SillyBits wrote a plugin for Doku at one point to add more to it, but it never got added in for various reasons.
At any rate, lots of things are going on in the back here and at some point I’ll swap the wiki out. Depending on how and when we might keep the existing wiki around to help with populating the new wiki, but one of the problems with the existing wiki is that it’s written really badly. More like a forum board or reference manual than a wiki.
Before I let people at the next wiki I intend to specify how it will work and layout some macros, templates, and standards first. I didn’t touch the existing wiki much, intending to allow it to evolve naturally. Natural evolution can end badly, though, is a good lesson here.
I do appreciate the people who have put information into the wiki. They have been really helpful to the community at large. It’s just that the wiki lacks a definite structure and newcomers to it often have difficulty finding anything in it. I want to fix that with the reboot.

This is an upcoming thing, though, and the site redesign is ongoing, so hang on to your chairs and we’ll try to keep you off the ceiling.
Cheers, and I look forward to where this is going. 🙂
-XComp, author of a bunch of things