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

1681
Announcements / Re: Proceedings
« on: October 02, 2010, 08:59:57 PM »
So we're more likely to leave loopholes and get screwed over.

1682
Announcements / Re: Proceedings
« on: October 01, 2010, 11:08:02 PM »
I'm not so sure I am entitled to the source of all engine modifications in that case.

But the idea for now is still that we can always grant more rights, but we can never take them away. So if you're wrong, and shit happens, we lose. If you're right, though, the exception will be made all-pervasive, or we'll switch to LGPL (after I research why the Red Hat team chose to write the exception off of which ENIGMA's is based instead of doing the same themselves).

1683
Announcements / Re: Proceedings
« on: October 01, 2010, 09:45:25 AM »
@plague
Quote
under the terms of the GNU General Public License as published by the Free Software Foundation; version 3 of the License or any later version.

1684
Announcements / Re: Proceedings
« on: October 01, 2010, 05:58:12 AM »
#TGMG, Luis
You misread. Which is easy to do considering how I worded it.

Quote
"ENIGMA" (where not followed by either "Development" or "Environment") refers to the segment of the Program designed to behave as a compiler, parsing inputted code and invoking additional compilers and linkers.

Quote
a. ENIGMA must be unmodified from its original Stable Release form.

What this means together is that you can optimize your engine as much as you like, or make any changes you wish to it. You can even design ENIGMA for PSP and keep it to yourself like a real asshole (I -considered- adding a clause about that, but then I figured the license was picky enough as it is). You can even redo the entire string of makefiles ENIGMA will call. But you can't modify the compiler and still opt not to GPL your code. This is the most restrictive part of the license, but really, it's just covering more bases. Though the most obvious thing this will allow us to do is put "created in an unregistered version of ENIGMA" in all the games (Meaning you'd have to be more clever than the average bear to legally work around it), the purpose of the clause when I wrote it was to give people incentive to share any modifications they felt were necessary to make to the compiler with us. Down the road, we can remove this, but I feel we should be very restrictive with this exception to start: We can always grant more freedom, but we cannot take it away.

@luis
Yes, the concept of approved interfaces and compilers is a morally gray (or worse) decision when dealing with free software. But the reason ENIGMA exists and has existed is its ability to generate small crowds of people. If the first Google result for "Game Maker Compiler" is a terminal interface that calls ENIGMA without even mentioning that it's based off of ENIGMA, we could lose serious ground and odds of being ran into by GM users.


The purpose of this license is to keep ENIGMA from losing out to anyone that sees how it could be advertised more cleverly with a new purpose and a new name. As long as there is some sort of collaboration or linkback, I'll authorize more interfaces. But if someone just wants to leech off the project, they're going to enjoy a much more communistic sort of freedom than our users here are. Namely, mandatory freedom all around. ^_^

1685
Announcements / Re: Proceedings
« on: September 30, 2010, 08:09:34 PM »
"ENIGMA, the environment, compiler, and sources, are GPL,  Modifications of these must be distributed under the GPL. (you don't really mention this, but it should be put there)"
This covers all of that: "you can redistribute it and/or modify it under the terms of the GNU General Public License"

"Programs compiled with the ENIGMA sources, under an approved environment, with an approved compiler, do not have to be released under the GPL.  If additional, licensed code is used, those codes' licenses must be followed."
Good enough.

1686
Announcements / Re: Proceedings
« on: September 30, 2010, 06:27:16 PM »
ENIGMA GPL Exception Ism 1

Preamble
This Program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 3 of the License or any later version.

Disclaimer of Warranty
This Program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Full License Text
You should have received a copy of the GNU General Public License along with this program; if not, see <www.gnu.org/licenses>.

Additional Definitions
The GNU General Public License defines several generic terms. All of these terms apply here, in addition to the following.

"The ENIGMA Development Environment" refers to the Program as defined by the GNU General Public License, in its entirety.

"ENIGMA" (where not followed by either "Development" or "Environment") refers to the segment of the Program designed to behave as a compiler, parsing inputted code and invoking additional compilers and linkers.

"ENIGMA Website" refers to the series of pages accessible from http://www.enigma-dev.org or any site to which that URL redirects.

"Officially Endorsed" implies that the information or material has been officially published on the ENIGMA Website.

"Stable Release" refers to an Officially Endorsed release of the ENIGMA Development Environment.

"Approved Compilers" refer to any toolchain executables, including, but not limited to, Make, Compilers, Linkers, and Assemblers, invoked by an official Stable Release.

"Approved Interface" refers to any graphical user interface capable of taking user input and invoking ENIGMA, which in turn parses the user input and invokes Approved Compilers to compile the input. This group is composed EXCLUSIVELY of any such programs contained in a Stable Release of the Program, or outlined in the "Exception" section of the ENIGMA Website.

Special Exception
In addition, as a special exception, You are granted the additional right to link the code of this Program with code not covered under the GNU General Public License ("Non-GPL Code") and to distribute linked combinations including the two, subject to the limitations in this section.

1. Non-GPL Code permitted under this exception must only be linked to the code of this Program by an OFFICIAL RELEASE of the ENIGMA Development Environment, as defined here:
    a. ENIGMA must be unmodified from its original Stable Release form.
    b. The Compilation phase of the exempted Object Code must be Invoked by an Approved Interface.
    c. The programs invoked by ENIGMA (including, but not limited to, the Compiler and Linker) must all be Approved Compilers.

2. The files of Non-GPL Code may instantiate templates or use macros or inline functions from the Approved Interfaces without causing the resulting work to be covered by the GNU General Public License.

3. You must obey the GNU General Public License in all respects for all of the Program code and other code used in conjunction with the Program except the Non-GPL Code covered by this exception.

4. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to provide this exception without modification, you must delete this exception statement from your version and license this file solely under the GPL without exception.

1687
Announcements / Proceedings
« on: September 30, 2010, 03:18:53 PM »
More and more people have been taking an interest in helping with the ENIGMA Project lately, and I believe I need to recognize that.

TGMG sort of waltzed in one day and added support for three new operating systems, as most of you are aware. Since then, he has taken to improving ENIGMA full-time; adding functions, testing for bugs, and contributing to the system as a whole.

I am unsure whether or not r9k has an account here, but he worked with Ism on polygon collisions, online functions, and, independently, d3d_* functions.

Though dazappa is not a very active member on the forums, he has been trying to help Ism out with some Java aspects. He researched rendering font glyphs to pass to ENIGMA, and more recently has begun writing a YAML parser for Ism to use (apparently, porting my 200-liner to Java is a lost cause).

HaRRiKiRi, with a little help from TGMG and even less from myself, coded several graphics functions, including draw_sprite_tiled*, draw_sprite_general, and draw_background*.

As for myself, I've been working more with my network of YAML files, trying to make extending ENIGMA as simple as copying in a directory. I've also fixed some things in the syntax checker, but I'm pretty much always doing that.


I've also been up to something different. ENIGMA needs an exception written to the GPL. The problem is trying to define officialness. The reasoning is simple.
1) ENIGMA is GPL software.
2) ENIGMA links your game against its engine.
3) The engine is also GPL.
4) Therefore, your game must be open source, GPL software as well.
5) Game Maker doesn't require this, so something must be done.
6) Two options to correct this:
      a. Use a less restrictive license, such as BSD
      b. Write an exception to the GPL.

Opting to write a specific exception to the GPL just for official ENIGMA copies is, to use TGMG's words, "a good idea so a whole load of GM's don't pop up." But don't assume our motives are entirely selfish:  This exception grants an additional right to ENIGMA's users. The idea is that by NOT GRANTING this right to users of unofficial forks, we increase the likelihood of third-party development of ENIGMA vs that of a third party simply offing and doing their own thing with ENIGMA's source.

Basically, we are locking an incentive to use our official version instead of someone's clone. That way, if that person actually had anything to contribute, it will go to ENIGMA instead of staying with that individual.

Problem is, I'm not a lawyer. Neither's Ism. So if you think you can assist us in writing this exception, here's where we left off:

Quote
ENIGMA GPL Exception

Preamble
This Program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 3 of the License or any later version.

Disclaimer of Warranty
This Program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Full License Text
You should have received a copy of the GNU General Public License along with this program; if not, see <www.gnu.org/licenses>.

Additional Definitions
The GNU General Public License defines several generic terms. All of these terms apply here, in addition to the following.

"The ENIGMA Development Environment" refers to the Program as defined by the GNU General Public License, in its entirety.

"ENIGMA" (where not followed by either "Development" or "Environment") refers to the segment of the Program designed to behave as a compiler, parsing inputted code and invoking additional compilers and linkers.

"ENIGMA Website" refers to the series of pages accessible from http://www.enigma-dev.org or any site to which that URL redirects.

"Officially Endorsed" implies that the information or material has been officially published on the ENIGMA Website.

"Stable Release" refers to an Officially Endorsed release of the ENIGMA Development Environment.

"Approved Compilers" refer to any toolchain executables, including, but not limited to, Make, Compilers, Linkers, and Assemblers, invoked by an official Stable Release.

"Approved Interface" refers to any graphical user interface capable of taking user input and invoking ENIGMA, which in turn parses the user input and invokes Approved Compilers to compile the input. This group is composed EXCLUSIVELY of any such programs contained in a Stable Release of the Program, or outlined in the "Exception" section of the ENIGMA Website.

"The ENIGMA Team" refers to one or all of the group of individuals whose code is distributed in the Stable Release.

Special Exception
In addition, as a special exception, the ENIGMA Team gives You the additional right to link the code of this Program with code not covered under the GNU General Public License ("Non-GPL Code") and to distribute linked combinations including the two, subject to the limitations in this section.

1. Non-GPL Code permitted under this exception must only be linked to the code of this Program by an OFFICIAL RELEASE of the ENIGMA Development Environment, as defined here:
    a. The ENIGMA Environment must be unmodified from its Stable Release as Officially Endorsed by the ENIGMA Team.
    b. The Compilation phase of the exempted Object Code must be Invoked from an Approved Interface.
    c. The programs Invoked by ENIGMA (including, but not limited to, the Compiler and Linker) must all be Approved Compilers.

2. The files of Non-GPL Code may instantiate templates or use macros or inline functions from the Approved Interfaces without causing the resulting work to be covered by the GNU General Public License.

3. Only the ENIGMA Team may make changes or additions to the list of Approved Interfaces.

4. You must obey the GNU General Public License in all respects for all of the Program code and other code used in conjunction with the Program except the Non-GPL Code covered by this exception.

5. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to provide this exception without modification, you must delete this exception statement from your version and license this file solely under the GPL without exception.

Peace.

1688
Proposals / Re: Images
« on: September 30, 2010, 02:40:48 PM »
@First paragraph
This is a bug I reported to Ism. Your paragraph contains exactly the same suggestion mine did.

@Second paragraph
The exe actually contains Zlib-compressed RGBA. Which is basically simplified PNG. You are correct that sprite_add only uses bitmap. I didn't want to incorporate sizey formats until I had a way of allowing the user to disable them. This will require such libraries as libPNG, libTIFF, and libJPG.

@Third
I'll leave that to Ism. Praps post a suggestion on the tracker; this forum is more for large system proposals.

1689
Function Peer Review / Re: Instance Interface How-to
« on: September 29, 2010, 07:03:47 AM »
Hm. Does that cause a compile error? It shouldn't. Either way, I'll take care of it.

1690
Yes, the original was called enigma::currently_bound_texture_index_that_noone_should_ever_change_ever. Because if it's not aligned with the bound index, well, sprites fuck up. Sadly, the check on that variable takes less time than just asking the graphics card to bind it either way. At least, according to an early benchmark. I may re-clock it.

But anyway, serp was unhappy with its deliberately excessive length, and so he shortened it to something nonsensical. *shrug*

1691
Function Peer Review / Re: GML: draw_sprite_general
« on: September 28, 2010, 06:28:35 PM »
Nice catch.

1692
Proposals / Re: new Build mode
« on: September 28, 2010, 06:27:20 PM »
If the code is long enough for a CALL, I don't see how its length really matters. Regardless, the whole ordeal could be arranged with a table of function pointers by event ID... there's really no need to waste load time on JIT when you have this much control over the game's assembly. And I mean assembly, not ASM.

1693
You probably didn't reset the currently bound texture index. enigma::cur_bou_tha_noo_sho_eve_cha_eve or something. Serp shortened it for me. Originally it was massively huge to prevent stupidity.

I will see that these are integrated properly when I merge my current branch and the trunk.

1694
Function Peer Review / Re: Instance Interface How-to
« on: September 28, 2010, 12:00:45 PM »
I see. Yeah, syntax checker doesn't like macros at the moment, but when I have that fixed, #define action_set_sprite(X) sprite_index = (X); is really the way to go.


1695
Function Peer Review / Re: Instance Interface How-to
« on: September 27, 2010, 08:04:12 PM »
*slightly scared about new system he has no knowledge of*
TGMG: In the events of the object, sprite_index = spritep will suffice. If called from the create event, I understand the problem. I'll fix that ASAP.