SMBX2 Some Project Questions
Posted: 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.
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.