Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - The 11th plague of Egypt

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 »
Announcements / Re: ENIGMA forums are dead again
« on: March 26, 2014, 02:08:41 pm »
[insert troll/obscure reference greeting here]

I know I haven't posted in a while, but that's because I was busy rewriting the parser again. It now handles stuff like "int x; = 2; 3" which turns out to be valid GML. It also serves coffee to the user, just not Java coffee, because Java sucks.
The new parser is much better than the old one, although it causes about 20 regressions.
I was also working in implementing user events, but those don't work because IsmAvatar refuses to be my slave. She claims she has a life besides LGM. *BLASPHEMY*
I also managed to get a new LGM option to improve compatibility with GM. It says "Be slow". Because GM is so slow ROFLCOPTER, and being fast breaks compatibility with some GM games. So this option injects a sleep() every 20 statements, to keep things balanced. But it's not just any sleep. It's a C++ sleep. Yeah! Damn straight.
Also, Windows 8 is retarded.

[insert random see you later note here]
Epic :D

Here's a good engine that's been flying under the radar

And another one that's raising funds for this summer

General ENIGMA / Re: Please vote for ENIGMA's new license
« on: March 21, 2014, 03:52:37 am »
Thanks for asking the community about this choice, and taking the time to go through with this.
I thik can feel some of your love for this project and its community now :)

I still like the middle ground, and hope eventual conflicts can be solved.

BTW when this is done, we could go register a trademark :D

General ENIGMA / Re: Linking Exception Draft
« on: March 05, 2014, 06:24:08 am »
Rez, what if we agreed to dual license our code, so you can pick your own license like with Qt?
Double licensing in this case would only make things messier.
As long as you release under MPL, you can always re-release under GPL.
It's just like going from LGPL to GPL, the license allows this, so you can do this without asking anybody.
The opposite (GPL to MPL or GPL to LGPL) is _not_ so easy, it requires explicit permission from all copyright owners.
So it's better to clearly state what is under MPL and what under GPL.

Qt was strict GPL and has been relicensed to a more lenient LGPL, but they could do the jump only because they owned all the copyright.
Then they have a commercial license too, and they are not obliged to release all their code because, again, they own all the copyright.

Enigma does not enforce the single developers who contribute to waive their copyright throught a CLA, so relicensing would be a huge mess.
Then it's just easier to state what's under the GPL and what under the less strict MPL.

But I would hate to see this end up like the Blender game engine wherein the only way to avoid the GPL is having a bootstrapper to load in your external blend file.
Well, this one is a really nice real-life example. Thank for pointing that out!

General ENIGMA / Re: Linking Exception Draft
« on: March 02, 2014, 01:13:42 pm »
I agree with Josh on the need to prevent EEE tacticts, mainly because I really don't trust YoYo Games at all.

That said, I'm sure a combination of GPL for parser and MPL for the engine is a pretty sound choice.
I mean, the worst screwup that can happen is if developers hook up the engine to the parser and then everything becomes GPL.
But that's something that can be fixed.

As for bugfixes, the most evil way I can devise not to release a fix is this:
- you have a non-working function in a MPL file
- you comment out the part of the function that is not working
- you create an empty file
- you write a fix in the empty file, from scratch (without copying from the MPL file)
- you make the non-working MPL function call the code in the new file
- you release the (useless) modifications to the MPL file
- you keep your new file proprietary

Notice that no MPL code was be "stolen", because if you copied _any_ MPL code in the new file, then you would have to release the new file as MPL.
Still, you have a MPL file linking to a blob.
Sure it sucks, but if you start doing this for every function, you soon end up with an unmaintainable mess.

Even from the point of view of the "bad" guys, it's more convenient to release the fix and keep close to mainline.
Because then they can leech other fixes from the community :D

After all, this is what many projects building on top of open source do.
Keep new features proprietary, but always release bugfixes.
Qt does that, CrossOver does that, and the communities are pretty healty too.

Besides, the main "selling" point of Enigma is "you can use C++". So, if the parser stays GPL, there isn't really a reason to fork.
With an MPL engine, people could be using some of your functions in their projects, but, you know, that would be the same thing they do when making games with Enigma. Plus you get credits ;)

General ENIGMA / Re: Linking Exception Draft
« on: March 01, 2014, 05:12:38 am »
- An ENIGMA user can license their game code under one or more of the following: the GPL 2.0+, the LGPL 2.1+ and/or the AGPL 3.0+. When distributing their game in executable form, the Engine code and game code will be licensed under one or more of the three previous licenses.
- An ENIGMA user can license their game code under a one or more licenses that is not the GPL 2.0+, the LGPL 2.1+, or the AGPL 3.0+. When distributing their game in executable form, the Engine code is still licensed under the MPL 2.0 and the game code is under the license(s) of their choosing.
No, if the engine is MPL 2.0, an Enigma user can release their game with any license they want.
The MPL is nice about it because it only obliges you to release modifications to the files released under the MPL.
If you just use the MPL files in your project (e.g. linking them), then you do _not_ need to release your source under the MPL.

MPL basically does this:
code in a file under MPL stays under the MPL

As long as you don't copypaste from/add code to an MPLed file, and just link/include, you have no obligations.

All the complicated stuff is about contributing, and people mixing it with GPLed code.
The problem here is GPL will try to eat MPL if developers screw up.

General ENIGMA / Re: Linking Exception Draft
« on: February 28, 2014, 03:57:34 am »
I did some more research on combining MPL and GPL

It's safe to use MPL code in a GPL project, but the opposite is that straighforward.

This is the clearest sentence I could find
Note, again, that great care should be taken to ensure that the new additions made to the file can be licensed under both the MPL and (L)GPL; e.g., by making sure that code is not copied and pasted from (L)GPL-only files into MPL+(L)GPL-licensed files.

You can go from MPL to MPL+GPL.
GPL-only to MPL is completely different, and can't be done.
The word "compatible" may make it sound otherwise, so be careful.

MPL to GPL-only is possible, though.
A fork of MPL code can become GPL only and never contribute back.
Once an MPL-licensed file has been distributed as part of a larger (L)GPL-licensed work, third parties who receive the file may use and redistribute the file under the terms of either license. As a result, new modifications can be provided to recipients under the terms of both licenses, or solely under the terms of the (L)GPL.

This may work
Parser: GPL 3.0
Engine: MPL 2.0
Compiler: GPL 3.0

This can be done, but shouldn't be necessary
Engine: MPL 2.0 + GPL 3.0

If somebody starts copying code from parser to engine, or from compiler to engine, what happens is this
Engine: GPL 3.0 only
Although the pre-copy-paste code will still available under MPL 2.0

I think MPL 2.0 is the way to go, it was built to make closed and open-source live in the same project back in the Netscape days.
But please realize that, when you have multiple licenses in the same codebase, simple copypasting could screw things up.
Although, that applies to any mix of licenses.

General ENIGMA / Re: Linking Exception Draft
« on: February 27, 2014, 04:34:37 pm »
Obviously, my vote is for the MPL 2.0, a less restrictive license. My main reason for choosing this license is because it was designed to do most of what Josh is trying to accomplish with a custom GPL exception. Here's what I propose for the ENIGMA project:

Parser: GPL 3.0
Engine: MPL 2.0
Compiler: GPL 3.0
Agree on the MPL 2.0, though there is one catch.

MPL compatibility with GPL only means this:
- You can use MPL code inside a GPL project without any assle.

It does _not_ mean you can use GPLed code in a MPL codebase unless
- you own the full copyright of the GPL code
- you take these extra steps

Otherwise, you end up with having to relicense MPL code as GPL. And you are back with the same problem we have now.
REMEMBER, GPL is viral.

Q14: May I combine MPL-licensed code and (L)GPL-licensed code in the same executable program?


2. The Larger Work must be "a combination of Covered Software with a work governed by one or more Secondary Licenses." So you can't just say "I really prefer (L)GPL" - you must have a need to combine with another, existing GPL work. (This is different from a traditional dual-license, which does not require you to combine, and instead allows you to simply say "I've decided to be GPL-only.")

3. You must "additionally distribute" under (L)GPL. In other words, you must make the MPL-licensed source code available to your recipients under both MPL and (L)GPL.

Programming Help / Re: get_string without a dialog
« on: February 22, 2014, 10:53:00 am »
Keep that mess that is the Unity "GUI" away from me!

Static methods invoked every frame just to draw a button?!
Need to check that static method every frame to know if that button was clicked?
I'd rather use async events, thanks.
Any other paradigm is way better than what they came up with for Unity.

It's not a surprire that the 3rd party NGUI is selling so well when Unity provides a "GUI" for free.

Programming Help / Re: get_string without a dialog
« on: February 10, 2014, 06:26:29 am »
Add me to the list.
However, that get_string was working as a blocking call, IIRC.
Code execution stopped until the user wrote and pressed OK.
I guess what you want is more like "pick up the text the user wrote in a field", without the waiting part.

BTW I'm not even sure that GM's get_string is implemented in Enigma right now.

General ENIGMA / Re: The new GL3
« on: February 07, 2014, 06:43:17 am »
Hi! Wanted to give some progress on my efforts of ridding GL3 from deprecated functions. As many of you might already know, the GL3 version was still mostly FFP (fixed-function pipeline).
So, any suggestions and ideas? There wasn't much of a point to this topic, but I just wanted to share with things that might come in future.
I like topics like this, I feel like I learn something when reading.
Keep it technical and good luck with the merge!

Off-Topic / Re: YoYoLabs ripping off Rockstar Games?
« on: January 19, 2014, 05:05:41 pm »
I hope when I'm in my thirties, I have enough free time to spend a whole day posting nonsense on someone's forum.
Maybe in your _thirteens_  :D
But you probably had something better to do.
And possibly in your thirties you'll have something _much_ better to do ;)

Developing ENIGMA / Re: GM5 Compatibility plugin --feedback requested
« on: January 10, 2014, 03:31:07 am »
Here it is. I have 2 different versions.

BTW i would look into converting GMD to GM6 (or GMK) instead of supporting the format as-is.

Developing ENIGMA / Re: GM5 Compatibility plugin --feedback requested
« on: January 08, 2014, 06:09:32 pm »
I feel like a lot of GM users won't even consider ENIGMA unless they can Load+Run an existing game.
I know 6 broke a lot.
I don't think GM 6.1 could "load and run" a GM 5 game straight away.
I remember there was some kind of external converter, but even that required manual intervention after the first pass.
Want me to try and find it out for you?

EDIT: the converter was from v4 to v5
I still have it ;)

General ENIGMA / Re: DevOps
« on: December 22, 2013, 06:00:00 am »
Been there, done that.

Waterfall does not force big releases on anyone. It's just a development method that fixes the following steps:
Identify features -> write doc -> code -> test
If you are writing the code, it means the doc should be complete.
Moreover, you cannot add more features after you entered step 2.

Problem is, people still want features to be added on the run, which means
disrupt development -> start over from step 1 -> end up in longer release times

If you go for waterfall, you must have a clear view of what you want and lots of discipline.
There is no "we are already late, so adding this small feature will make no difference" in waterfall.
If you aren't careful you end up with a Duke Nukem Forever situation.

Agile requires less discipline, but more commitment.
You don't have to write a formal documentation, but then you need other ways to explain people how you did things.
AKA They will come and ask you.
In order to know what's going on you need to be always able to communicate with your team mates.
Waiting half a day to receive a reply by email doesn't cut it.

Want to go for agile? Know that agile fails if communication fails.
I've seen a lot of people call themselves "agile" while they were just disorganized.

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 »