SMBX2 Some Project Questions

General discussion about Super Mario Bros. X.
EVILED
Goomba
Goomba
Posts: 2
Joined: Mon Jul 01, 2019 3:02 pm

SMBX2 Some Project Questions

Postby EVILED » Mon Jul 01, 2019 3:36 pm

I discovered this project recently. I was looking for a Free Software "open source" replacement for Super Mario Maker. I played around with it a bit and had a lot of fun. I instantly started looking to see if I could figure out the license of the project. This was a bit of an odd situation. At first I thought it was GNU GPL V3; as that's what the level editor is under. I was very happy. The Platform Game Engine, PGE, project is under this license for the engine and the editor. That project page spoke at length about Luna Lua and being compatible with SMBX levels. I download the source code and binaries and backed them up to a disk.

I assumed that the PGE is what SMBX2 was running on. Yet, when I dug into information and tried to figure this out for certain; I realized that this is not the case. SMBX2 is described as "an open source extension of SMBX." It talks about hacking and using hooks to dig into the "closed source" SMBX to expand its capabilities. So, it looks like SMBX2 is an "open source" project; as in is a whole bunch of Free Software GNU GPL tools all wrapped around a proprietary engine.

Not to be rude, but this strikes me as incredibly odd. If the original author of SMBX refuses to license the source code under the GNU GPL; why not write a new engine from the ground up that is compatible functionally with the level files and game mechanics of SMBX and put that new engine under the GNU GPL? Unless I'm mistaken, isn't that what PGE is doing? Why not use PGE? Is PGE not ready for that yet? Is the plan to swap out when PGE is ready? Or, is PGE build upon this same proprietary engine as well? It doesn't seem so; as I think that the entire PGE project is GNU GPL V3.

It just seems odd to me to work so hard to hack into and extend a propitiatory engine when clearly the development team is Free Software minded when it comes to the GNU GPL licensed tool set that surrounds this engine. Wouldn't building a new engine from the ground up or adapting PGE to work for the use case not only give users complete control of the engine under the GNU GPL; but also allow for the engine to be tuned specifically to the needs of the project?

It seems odd to expend so much effort into essentially breaking into a proprietary engine to fix its bugs and expand its functionality. Is this effort not wasted if the project ever does switch over to a GNU GPL licensed engine? It seems to me that the effort would have been better placed starting from scratch on a GNU GPL engine and having total control over the process rather than trying to fix an engine that license wise is already broken by being closed.

Why was this the direction the project decided to take in the first place? I'm no programmer, but wouldn't a platform game engine designed to recreate the basic functionality of games found on the NES and SNES be rather easy to program? It's not like it's treading new ground. It's just basic movement, gravity, projectiles, hit boxes, collusion, and some variable and value calculations for lives, scores, coins, and such. I used to do some drag and drop game design with Game Maker Studio many years ago and while that's not engine programming I was able to recreate the basics of Mario in about a week. So, it's not like Mario is hard to do. Was this a decision built around being compatibility minded to the levels players already made for the original SMBX? Or is the SMBX engine really so complex that it was thought to be better to try to hack into it and expand it rather than simply recreate it from scratch? Considering how buggy the original is, wouldn't it have made more sense to build a better engine from scratch rather than work so hard to fix what's already broken? If the project ever does switch over to a GNU GPL licensed engine; would the work done on Luna Lua be able to be ported over so that it wasn't completely wasted effort? Why not just buy out the code of the SMBX engine to be licensed under the GNU GPL? If the author is interested and reasonable, maybe this could be accomplished through crowd sourcing the funds.

My main question concerning this project is this. Does this project ever plan on becoming completely GNU GPL by either re-writing the engine from scratch or adapting the PGE engine into being the replacement engine for this project? Or, is this project content with forever sitting on a closed source engine at its core?

I'd like to know because if it's just going to sit on the closed source engine forever, then it's not really the Free Software Super Mario Maker replacement I was looking for when I found this project and I should really look elsewhere. I don't want to tarry here too long and fall too in love with this project, only to find myself stuck with it forever being on a closed engine and not what I really want it to be.

The license matters a lot to me as I used to donate to the FSF and plan to start doing so again on the 4Th of July. I agree with their mission and using this engine long term would make me a hypocrite. It would be ethically self-defeating for me. That's why I cared so much to write this post. I know I probably come off as critical. But, I just want to understand what the future goals on this project are so I can decide if I want to stay with it or move on. I've had debates over licensing in the past on a different project and it just went in circles with everyone hating me for even bringing it up. So, I don't plan to waste my time doing that here. That's why I made this post direct and to the point.

RudeGuy
Fry Guy
Fry Guy
Posts: 4991
Joined: Fri Dec 27, 2013 7:36 am
Flair: local guy

Re: SMBX2 Some Project Questions

Postby RudeGuy » Tue Jul 02, 2019 6:11 am

You may wanna check the history of SMBX. (I'm not sure if this is the best we've got, but it'll have to do for now)

About SMBX's source code: I'm pretty sure redigit, the creator of the original SMBX, doesn't care at all about this game anymore and nobody knows if he even has the source code anymore. Not only that, but the progress made on SMBX2 is so large that having the source code would be mostly an impediment, since anything made on SMBX2 would have to be recreated again on the original source code.

About recreating the engine: apparently it's not so easy. It's true that recreating the basics of Mario, such as jumping and running may be easy, but we're talking about recreating the entire SMBX engine, and as the link i posted mentions, there have been attempts on it (for example, NSMBX, which was abandoned around two years later after its conception). The only two attempts which are still not abandoned today are the PGE engine, which is very far from completion and the general advice is to stay away from it, and a SMBX clone called "SMBX 38A", which... just see it for yourself. Note that this one is also closed source.

Basically, the reason things are like this now is because recreating the engine would've taken a lot more work than just hacking it and I don't think anyone really wants to try and recreate it now. I don't really know if things will ever change; perhaps one day the PGE engine will be perfect and everyone will switch to that, but that's a long time from now.

(All that said, I'm not a SMBX2 dev myself, but I do check the development from time to time and all of this is mostly what I've heard.)

EVILED
Goomba
Goomba
Posts: 2
Joined: Mon Jul 01, 2019 3:02 pm

Re: SMBX2 Some Project Questions

Postby EVILED » Tue Jul 02, 2019 11:01 pm

RudeGuy wrote:
Tue Jul 02, 2019 6:11 am
You may wanna check the history of SMBX. (I'm not sure if this is the best we've got, but it'll have to do for now)

About SMBX's source code: I'm pretty sure redigit, the creator of the original SMBX, doesn't care at all about this game anymore and nobody knows if he even has the source code anymore. Not only that, but the progress made on SMBX2 is so large that having the source code would be mostly an impediment, since anything made on SMBX2 would have to be recreated again on the original source code.

About recreating the engine: apparently it's not so easy. It's true that recreating the basics of Mario, such as jumping and running may be easy, but we're talking about recreating the entire SMBX engine, and as the link i posted mentions, there have been attempts on it (for example, NSMBX, which was abandoned around two years later after its conception). The only two attempts which are still not abandoned today are the PGE engine, which is very far from completion and the general advice is to stay away from it, and a SMBX clone called "SMBX 38A", which... just see it for yourself. Note that this one is also closed source.

Basically, the reason things are like this now is because recreating the engine would've taken a lot more work than just hacking it and I don't think anyone really wants to try and recreate it now. I don't really know if things will ever change; perhaps one day the PGE engine will be perfect and everyone will switch to that, but that's a long time from now.

(All that said, I'm not a SMBX2 dev myself, but I do check the development from time to time and all of this is mostly what I've heard.)
Thank you for your time. That was a quick response that was detailed and to the point. That's the answer I was afraid I would get. But, I also kind of figured that was going to be the answer by what I was piecing together here and there. But, I wanted to ask to know for sure. Thank you again for your response.


Return to “General”

Who is online

Users browsing this forum: No registered users and 1 guest