Excited for Super Mario Maker 2

Super Mario Maker 2, the sequel to Super Mario Maker (2017, Nintendo Co., for the Nintendo Wii U), is due for release 2019/06/28, a month from now. And ain’t it exciting. If you haven’t already, you should watch the announcement trailer and the Direct.

There’s this phrase that floats around: “Super Mario Maker 2 makes Super Mario Maker look like a prototype”. It’s actually not that much of an exaggeration. There will be a whole host of new game styles, themes, elements, and enemies to play around with. Notably slopes, a feature many a makers wanted.

Multiplayer is a thing, both when playing and when making. Unfortunately, uploading and playing courses over the Internet requires membership in the Nintendo Switch Online programme. I’m not entirely sure about this programme and I think that something as basic as multiplayer over the Internet shouldn’t be restricted, but whatever, I’ll play along.

Super Mario Maker 2 drops on the Switch on the 28th of June, so keep your eyes on it. I’ve already pre-ordered a physical copy of the game (the edition bundled with a 12-month subscription to Nintendo Switch Online) and I can’t wait to play. See you all in Course World!

Advertisements

Follow-Up: Should Minecraft be Re-Implemented in C++, unifying the Bedrock and Java editions?

On the same day I published the post Should Minecraft be Re-Implemented in C++, unifying the Bedrock and Java editions?, I also made a post on Reddit posing the same question, linking to my blog post.

It didn’t gain much traction, but the many of the few (top-level) comments made were negative, citing the negative effects on modding as a reason. I did not say it explicitly, but I implied that modding would be one of the tricky questions to sort out if Bedrock and Java would be unified. Modding, while not officially supported by Java Edition (Bedrock has support via add-ons), is a big part of Minecraft and the Minecraft community.

One commentator suggested a compromise:

On a related note, there is a third-party Linux/macOS Bedrock launcher.

Should Minecraft be Re-Implemented in C++, unifying the Bedrock and Java editions?

There are two editions of Minecraft: Java Edition (the original PC version) and Bedrock Edition (a unification of the many platform-specific editions, such as Pocket Edition, Windows 10 Edition, and more).

Java Edition is written in Java while Bedrock Edition is written in C++. In this post, I will advocate for a port of the PC edition to C++ and bringing the two editions into one.

Why C++?

Why is Bedrock implemented in C++ to begin with? C++ gives the programmer direct access to the hardware. This is achievable with Java as well, but this access must be granted through custom bindings; hardware access is not built into the Java language, but it is built into C++.

This alone is not the reason, however. Consoles have much more limited memory than computers and as such, memory management is very important, lest the game and/or system crashes, perhaps with lasting effects. C++ offers manual memory management through its standard library.

Another reason is performance. C++ is a compiled language whereas Java is pseudo-compiled to bytecode, which is run on a virtual machine. As such, C++ code tends to be considerably faster than Java code.

Why Port?

Bedrock was created to unify the many different non-PC editions. It meant people knew what to look for, and — more importantly — that new features could be added to all ports at the same time.

It should also be noted that parity between Java and Bedrock Edition is generally strived for:

Thomas Guimbretiere: Well, we are working toward getting all edition as soon as possible [sic]. But we are also trying to decide which features are good for the Java edition.

[…]

Adrian Östergård: Alright, so eventually some features might pop up?

Thomas: Yes, totally.

MINECON Earth – Java Team Panel

Also discussed in that panel is that there’s no timeline for adding features, and there have been discrepancies in time between the two editions receiving a feature. This discrepancy is eliminated if both editions use the same codebase, save for actually getting it up on the shelves in the many stores.

Aside from unifying the stream of updates, it would also mean that all players can play with each other and that e.g. worlds can be shared. This unifies the two communities and playerbases into a single one.

Caveats

While a port would be great, the challenges should not be underestimated. Porting between systems is an error-prone process and Mojang may well have to fix bugs long after the port is made. Resources may have to be pulled from regular development of the game, meaning updates will be fewer and/or with less features.

There’s differences between Java Edition and Bedrock Edition that would need to be evened out. What about the Minecraft Store? How would customisation (resource packs, mods, skins etc.) work? Etc. etc. This is a tricky process and many people are bound to be upset.

There actually is a suggestion up on the official Minecraft feedback site. It “only” has 785 votes which is clearly not enough:

785 is a very low number. I am in support of transitioning everything to Bedrock (obviously, as I’ve written this post) but I fully understand that Mojang is not going to consider such a large project without overwhelmingly large demand.

Conclusion

Porting has its share of benefits, but there are difficulties in doing so. Though they certainly have the resources as they’re now backed by Microsoft, they could spend the time adding new, interesting things to the game, as we all want them to do. With only a handful of votes on the feedback sites and two healthy communities that are largely unhindered despite the split, in the end it might not be worth the time and effort from Mojang’s point of view.

Follow-Up

Follow-Up: Should Minecraft be Re-Implemented in C++, unifying the Bedrock and Java editions?