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 - Josh @ Dreamland

Announcements / Re: Licensing, the ultimatum
« on: June 01, 2014, 08:39:14 pm »
I've split the topic where the discussion started that ultimately derailed the original purpose of this thread; you can find it here.

Other relevant information: this letter has been sent. I will update this post/topic when I hear back.

Issues Help Desk / Re: Can't rename a resource under linux
« on: June 01, 2014, 12:17:27 pm »
You're doing it wrong; Windows should be inside the VM, and Xubuntu on the outside.

Announcements / Re: Licensing, the ultimatum
« on: May 31, 2014, 12:52:08 pm »
@Rusky: Done. That look okay?

Also, redistributing someone's work for free just because they GPL'd it is dickish. But to quote the finest authority I know on the matter, "If I want your shit for free, I ain't gonna have to pay."

@Darkstar: "Biding" is correct. Most of the major contributors are still around, even if they are not still actively contributing. Level editors are a corner case that is outside the scope of this letter. I will discuss that with the concerned lawyer(s) after they reply. It wouldn't bother me if this use was not technically permitted outside of a game, as you are free to do this on your own machine and on machines inside your group, organization, or company by the terms of the GPL. Only when distributing this level editor as its own product would the GPL affect you. I am interested in not requiring any attribution.

Announcements / Licensing, the ultimatum
« on: May 31, 2014, 11:45:32 am »
I'm going to attempt once more to contact a third party for help with this licensing fiasco. I'm going to give everyone an opportunity to weigh in on what I'm sending before I send it; this is our official request for help.

I have sent a very similar letter to this one in the past, but I fear it did not adequately convey our issue, based on the response I received. Here is the text that will be sent this time:


I am writing on behalf of all contributing members of the ENIGMA Development Environment ( , We maintain a free-software game development platform designed to simplify creation of various games while offering sufficient features to create games of any size.

Heretofore, all of the code in our project, including that in the game engine, has been GPL-licensed. Now, while our developer base is still relatively small, we are discussing a means by which our users could have more license freedom in the games they create. As our tools not only link against the GPL game engine code we provide, but in fact integrate segments of GPL code into their game code directly, all of our users are presently bound by the terms of the GPL, and so cannot release a closed-source version of their games.

What our team is looking for is a means of allowing our users to close-source their games in a way that no contributors biding by our license can take legal action against them, but to ensure that in all other cases, linking against our code causes the resulting module to use our license.

What we do not want is to become the next WINE vs CrossOver Office; that is, we do not want someone to exploit our license to maintain a closed-source version of our engine with exceptional improvements. If someone improves our engine, we want to be able to pull in those improvements, or at very least see how they did it and mimic.

The mantra of this operation is "Prohibit ENIGMA forks which prohibit ENIGMA forks." This "prohibiting" is supposed to be done by enforcing the full terms of the GNU General Public License. In short, we want the terms of the GPL to apply, but to allow users to choose their own license for their own games created in the engine.

The immediately obvious answer to our problem is to select a license such as the Mozilla Public License, which seems to allow just that. The issue is, this license would allow a third party to extend ENIGMA using their own proprietary code, which could then draw users away from ENIGMA, and get them hooked on these closed-source additions. We therefore want extensions to ENIGMA itself to be covered by this license/exception or by plain GPL, to ensure it remains free for everyone.

The crux of the problem is that the only time we do not want the GPL to apply is when a user actually releases a game made in this engine.

That said, which license/exceptions could we use? Would there be merit in a custom exception?

Thanks much,
Josh Ventura

If this request fails, I will embrace the MPL or a similar license for the sake of forward progress.

Programming Help / Re: Instance Creation Codes
« on: May 18, 2014, 09:35:23 am »
That's actually something we should probably run checking for, even outside debug mode. A null check after that lookup is basically free, and malformed strings happen all the time.

Anyway, no problem.

Issues Help Desk / Re: game end event does not work !
« on: May 18, 2014, 09:32:44 am »
If the game end events are performed during the call in GM, our answer's pretty obvious. But that'd mean that calling game_end in the game end event is yet another caveat.

Not that we've had something like that before. *cough* screen_redraw *cough*

Issues Help Desk / Re: game end event does not work !
« on: May 17, 2014, 01:07:15 pm »
All that has to happen for that is someone iterating over the instances, calling myevent_game_end, after the WinMain loop finishes.

Issues Help Desk / Re: game end event does not work !
« on: May 17, 2014, 12:26:09 pm »
Then I'm amazed at how we could possibly have a problem, here. :P

It's much easier to remember that FACE_LEFT is the constant given to facing left than it is to remember 0 means the same. What he's doing is correct; it just seems ENIGMA isn't incorporating the constants from LGM correctly.

You can add them to definitions, if you're feeling so inclined, as a temporary fix. ENIGMA Settings -> Definitions; then just declare your constants as const int or enum.

Code: (cpp) [Select]
enum {

Programming Help / Re: Enumerations are not working
« on: May 17, 2014, 11:42:46 am »
Those aren't supported in the current EDL spec. They are planned for the future.

You can include them in definitions, presently, under ENIGMA settings.

Issues Help Desk / Re: game end event does not work !
« on: May 17, 2014, 11:41:10 am »
If game_end() is just calling abort(), or exit(0), we have a problem. It should be posting WM_QUIT, which will allow control to reach the end of WinMain.

General ENIGMA / Re: Variable performance
« on: May 17, 2014, 11:37:38 am »
Variant is scalar (unless you count the fact that string is an array itself). Var uses some memory magic to throw together a Lua table. Construction time is pretty horrifying, but it has a good use time.

Those global assign times are horrifying. I'm not sure how to deal with those, but since they are literally worse than assigning instance variables, I do have one obvious solution. :P

Don't get me wrong; the with assign times are abysmal, but those can stand for some obvious improvement.

Issues Help Desk / Re: Full Screen bug? and help
« on: May 17, 2014, 11:02:20 am »
You can edit views live using the existing arrays. I've gone and documented them for you, here.

Issues Help Desk / Re: Networking, Stability and Learning path
« on: May 17, 2014, 09:23:50 am »
ENIGMA uses Berkeley sockets for its networking. Its library has extremely little field testing; it works, as far as we know. Interest in creating online games here is extremely limited, as most people here lack the resources to test such a game effectively.

The socket library is low-level enough that if you are willing to invest the time required to learn how to use it, you are able to do anything you see done in professional online games. The technology is simple and mostly unchanging.

We have our own wiki, but my favorite resource, if you are brand new to GM, was an old CHM written by Mark Overmars. Yoyo has probably gotten rid of it, I'm afraid.

Our Android support is unmaintained, and has been totally dead (as far as we can tell) for a long time. Enough interest will probably eventually arise to rekindle it.

Issues Help Desk / Re: game end event does not work !
« on: May 17, 2014, 09:16:31 am »
I never liked how Windows handles screen resolution changes. Any game can change your display to any size, regardless of whether your monitor even reports support for it. Then Windows doesn't take responsibility for restoring it when, say, the game ends or crashes. Anything we do to restore the resolution is just going to fail in certain cases. Really, our only good way of handling it is to throw a global in to keep track of the original display size, throw a global boolean in to denote whether the resolution was changed (and should be restored to this), and then have the display_set_size function do this:

Code: (cpp) [Select]
if (!display_size_changed) {
  display_size_set = true;
  display_original_width = display_get_width();
  display_original_height = display_get_width();

Then at the end of WinMain, [snip=cpp]if (display_size_changed) display_set_size(display_original_width, display_original_height);[/snip].

I would ask a Windows maintainer to do this, as I can't test if I make this change.