Page 1 of 1

SuperTux IP Usage

PostPosted: 06 Mar 2017, 04:52
by P-Star7
Hi there. I'm intending to replace the sounds and music in Hello Mario Engine with SuperTux themed images and original music.This engine will be free. It is intended to allow children and many others as well to start out with a robust platformer engine with good libre graphics and sound and make games. Not everything would be like in SuperTux (For example, ? stones, coins, and Nolok will have new designs so as to not call to mind the Mario equivalents, and there will also be some differences in gameplay to accommodate Hello Mario Engine's default behaviors - if I were to make a Tux game I would do some more changes, but this engine is meant to be equally accommodating to everyone's idea of what SuperTux should be), but it is heavily inspired by SuperTux, with Tux, snowball enemies, ice cube enemies, Nolok, and more making appearances. I understand that Tux himself is open-source, but I'm just asking about the general SuperTux concepts. Who should I credit besides "SuperTux team"? Thank you.

Re: SuperTux IP Usage

PostPosted: 06 Mar 2017, 14:56
by onpon4
This engine will be free.

Not really. Hello Engine runs on GameMaker, which is proprietary. Please, don't contribute to proprietary software in this way. If you want to make an engine that eases the development of platformers, make one that works on an entirely libre software stack.

Or you could contribute to this project (essentially a reimplementation of SMBX):

http://wohlsoft.ru/PGE/

Re: SuperTux IP Usage

PostPosted: 06 Mar 2017, 18:25
by P-Star7
onpon4 {l Wrote}:
This engine will be free.

Not really. Hello Engine runs on GameMaker, which is proprietary. Please, don't contribute to proprietary software in this way. If you want to make an engine that eases the development of platformers, make one that works on an entirely libre software stack.

Or you could contribute to this project (essentially a reimplementation of SMBX):

http://wohlsoft.ru/PGE/

Ok, I will have to admit that I can't do that because Hello Mario Engine is not my doing. The only thing I'm doing in the actual code is replacing the Mario terminology with SuperTux terminology. Hello Mario Engine itself is not proprietary, but I can see how GMS would make you have cold feet, and I know that ENIGMA isn't quite there yet. However, I can personally guarantee you that this project will make a complete set of new libre SuperTux-themed graphic assets, and it may reach so far as to replace the music and sound effects.

Re: SuperTux IP Usage

PostPosted: 06 Mar 2017, 19:02
by onpon4
Is there a particular reason PGE is not sufficient? Or heck, why not just SuperTux? Why go through the trouble of modifying an infamously bad Mario engine for Game Maker when there are better options you can contribute to that are actually libre?

Re: SuperTux IP Usage

PostPosted: 06 Mar 2017, 20:59
by P-Star7
onpon4 {l Wrote}:Is there a particular reason PGE is not sufficient? Or heck, why not just SuperTux? Why go through the trouble of modifying an infamously bad Mario engine for Game Maker when there are better options you can contribute to that are actually libre?

I understand what you mean. However, I'm not advanced enough at C++ to code for either of those games. Also, PGE isn't already complete. Since Game Maker Studio handles stuff for the game maker like logic loops, memory management, and more, it seems easier to me than coding in either of those options. I understand this is a tough pill to swallow, but would you mind telling me how I would edit enemies in either of those programs, for example, such as making a snowball into a hammer brother (which would consist of making an alarm that happens a certain time after the NPC spawns, in which it shoots a hammer projectile that has a vspeed and is affected by gravity in a direction based on which way it is facing, which depends on Tux's x position)? I know how to do that in Game Maker Studio, but not in either of your alternatives, which is why I said that the Hello Tux Engine would be a good place to start for amateur game makers. Thanks for understanding.

Re: SuperTux IP Usage

PostPosted: 07 Mar 2017, 05:22
by onpon4
In my opinion, if you have a choice between developing proprietary software and doing nothing at all, you ought to do nothing at all. Proprietary software is a trap; useful features are the bait. So if there's no possible way you can develop this engine you want to develop ethically, I suggest you just wait for PGE to develop further.

I'm not advanced enough at C++ to code for either of those games

I learned C and C++ by contributing to Project: Starfighter and Naev (especially Naev). You don't become "advanced" in a language out of thin air, and you don't need to be "advanced" just to make small changes.

logic loops, memory management

I don't know what you mean by "logic loops", but GML isn't the only programming language with automatic memory management. Python is another example, and I've even developed yet another libre platformer you could use as a base for what you want to do, ReTux, in Python. Not to mention libre engines like Godot and GDevelop.

would you mind telling me how I would edit enemies in either of those programs

I don't know since I've never contributed to either of them. But I can tell you the principle behind it.

making an alarm that happens a certain time after the NPC spawns

An "alarm" is just a function call that happens in the main loop, which either decrements the number if it is greater than 0 or does the action if it is equal to 0. But this isn't actually what you would do. See the next one.

in which it shoots a hammer projectile

You would probably just copy and paste, or even simply link to, the code that the dispenser uses.

direction based on which way it is facing

You check the direction variable, and you choose left or right.

I know how to do that in Game Maker Studio, but not in either of your alternatives, which is why I said that the Hello Tux Engine would be a good place to start for amateur game makers.

You're thinking of the problem in overly specific terms. To conclude that the SuperTux engine is too hard because such a specific solution doesn't work or doesn't work well would be preposterous.

Different games are coded differently. This is true regardless of what engine or language is used. Therefore, solutions to problems are different. Like I said, I know nothing about how SuperTux's codebase works, so let me bring in an example of a codebase I am familiar with. In Project: Starfighter, it would make no sense to talk about an "alarm" in the sense you're thinking of. what you do instead is read the "engine time" variable (which counts frames) and use the modulo operator on it based on the interval you want to do it. So if you wanted to do something every 5 seconds, then since the game runs at 60 FPS, you would do something like "if (engineTIme % 300 == 0) { /* Do something */ }". In that context, it's much more elegant than the "alarms" paradigm.

Of course, this is all a moot point anyway, because you don't have to do any of this if all you want to do is replace graphics. Just make a skin for PGE. They're already taking care of the rest.

Re: SuperTux IP Usage

PostPosted: 08 Mar 2017, 05:19
by P-Star7
That's a good point. Thanks for giving me an example. It's true, I do want to replace the graphics. However, after the engine reskin is complete, I want to try my hand at making my own Tux game. And Game Maker makes the most sense in that regard. I looked at Jumpy's code in SuperTux, and it seems more inscrutable than Ninji's cose in HME. You've used Game Maker before, to make that Bowser game. Is it just as easy to do it in SuperTux's programming language as it is in Game Maker?

Re: SuperTux IP Usage

PostPosted: 08 Mar 2017, 06:06
by onpon4
Is it just as easy to do it in SuperTux's programming language as it is in Game Maker?

I can't answer that since I haven't worked on SuperTux, and it's too broad of a question anyway (all kinds of factors matter when it comes to how easy it is to contribute to a program, not just the programming language). But personally, my choice for new projects is Python, and my engine choice is the SGE Game Engine which I am the developer of. Incidentally, Game Maker heavily inspired a lot of the paradigms used in the SGE. I think it's generally speaking easier as long as you don't mind having a dedicated IDE and a drag-and-drop code editor (which I don't).

The other choices I tend to recommend (in order) are Godot Engine, GDevelop, and Love2d. I haven't used them, but they seem to be competent and easy to use from what I've seen.