Why Are We Still in Beta?

Another blog post this soon? Impossible!

In contrast to the last post I would like to talk about some more technical things which don’t impact the average user tonight. I hope you’ll still find them interesting, though!

Recently, we’ve sorted out some things under the hood. We’re degreasing the engine, changing the oil, rotating the tires, and checking the brake pads. In short, we’ve made some changes to improve the overall usability and quality of SMBX2. “Beta”, for this project, means that we’re still sorting the foundation out. Updates like this break some compatibility to the previous beta, but will help the project in the long run. We’ll stay in beta until we’re at a point where the foundation is so smooth it won’t cause us trouble down the line. This means that at that point we won’t have to make changes anymore like the ones you’re about to witness.

Let’s take a look at all the cleaning we’ve done, starting with LuaScriptsLib:

No longer sticks out like a sore thumb! Before we delve into it I want to take a quick detour into the renamed _ini_examples folder, though (now named _templates):

Here you can now find templates for paralX2 background files, background and npc code txt files, lunalua libraries, music and sounds.ini, particles and shaders. Simply copy them over to where you need them, rename as necessary and adjust!

Another new folder is the “logs” folder. This is a new folder where all the crash logs will be. A far better location than the data folder itself if you ask me.

Okay, now onwards to scripts:

While we’re still in the process of sorting this out fully, you can see that the number of folders and files vastly decreased. Going forward, we’re aiming to include only useful and necessary libraries per default, rather than everything ever made. The folder got very messy from the previous approach (to the point where we had half a dozen timer libraries!), so now you should be able to find what you need more easily.

As for the underlined Legacy folder:

This folder has a special purpose. Before deleting any library in future versions, we will move them over to this folder to mark them as deprecated. In the version after that, they will be gone for good. If the game finds that a level tries to load a library that’s in there, it’ll inform about it (but only in the editor, so it won’t disrupt normal gameplay!). This is to give developers time to update their episodes before anything actually breaks.

Further updates

On a less technical note: All NPCs in the games have descriptions now! When you hover over the icon, these boxes will show up after a second. They’re here to inform about the NPC’s behaviour; when necessary, in very detailed ways:

It’s probably not something you ever considered, but hopefully it made you go “huh, this sounds useful”.

That’s about it in terms of updates for now. There are still more juuust around the corner, but I can’t yet give an estimate for when those will be presentable.

Hoeloe and Enjl’s cereal

I’ve showcased this level in the last post as well. This is actually the new hub for the Mario Challenge. Hoeloe and I sat down to give the game mode more flair and personality. It now has a dreamy airship serving as its hub, with new loss and victory screens that support the theme.

Things Going On in the Background


It’s been a while since the last blog post, aplologies for that. There are a lot of features currently WIP and approaching presentability, but nothing quite ready to be showcased. As we move closer to Beta 4’s release, I will post more blog posts as well, so stay tuned!

Today’s highlights aren’t exactly a recent addition, but I noticed they’re something I haven’t covered before, and they’re really useful features:

Background Object .txt files

The struggles of handpicking BGOs to be replaced based on dimensions and priority are finally over! Beginning with Beta 4, BGOs will be highly and easily customisable. Its features heavily overlap with those from NPC txt files. Configurable properties are:

  • width
  • height
  • frames
  • framespeed
  • priority

The only unfamiliar one is “priority”, which lets you set the render priority of the BGO. Here’s  a list of render priority values for reference. Yes, you can have background objects in front of the HUD now. Here’s how a level folder might look like with this new feature:

Oh, one more thing: Notice the highlighted item: background-53. Notice how it’s rather big, without having a .txt file attached. This is because the properties “width” and “height” are set automatically to fit the image’s dimensions! Adding large background objects can’t possibly get easier!

ParalX2: Magnetic Hustle

People often complain about the necessity in using lunalua to get anything out of SMBX2, and I’m happy to announce that these features are just the beginning of us making features more accessible.

People who’ve used paralx for a while might’ve struggled once or twice with setting all the layers up, loading the images, getting things to align well, etc…

Introducing ParalX2! Now you have to write no lua at all to get a really fancy looking parallax going!

Parallax configurations are now stored in .ini files named after the background which the config should apply to. Please note that Because Redigit there is a difference between the ids in the game and in the editor. Here’s an example of a paralx2 setup:

Looking inside, one will find many layers of parallax individually defined, much like a NPC config file:

And further down in the folder are the textures:

The result is a gorgeous and complex sky setting, accomplished without writing any lua code! Details on the configuration files will be publically available when we release Beta 4.

And that’s it for today, but I’m not quite done with looking at this level. Expect it to return in a future blog post coming soon. And now…

Rocky’s Cereal

You might’ve seen this video making the rounds, but I figured I should spotlight it in particular. It showcases enhanced camera and animation controls.