Now with gamemaker studio source files are no longer stored in a proprietary format - instead they are stored as simple XML files containing all data. Now I am wondering, can projects created with gamemaker be licensed using an open source license - especially wondering about the GPL and BSD/APACHE families?
And if so how to? The biggest objection I see is that all files are generated by gamemaker - and regenarated each time gamemaker saves/loads. The main problem with this is that GM will remove any "unrecognized" data from the xml (so any comments). Including copyright notices.
A second problem is that gamemaker typically creates a few dozen files, basically for each function a separate file is created.
A typical generated xml looks as following:
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
<spriteName><undefined></spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>0</depth>
<persistent>0</persistent>
<parentName><undefined></parentName>
<maskName><undefined></maskName>
<events>
<event eventtype="0" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>xml = FS_xml_open("C:\Users\user\Documents\filesystem\student.xml");
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="9" enumb="13">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>var root_elem = FS_xml_root_element(xml);
show_message("start with root element: " + FS_xml_get_elem_name(xml, root_elem));
xml_test_display_func(xml, root_elem, "");
</string>
</argument>
</arguments>
</action>
</event>
</events>
<PhysicsObject>0</PhysicsObject>
<PhysicsObjectSensor>0</PhysicsObjectSensor>
<PhysicsObjectShape>0</PhysicsObjectShape>
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
<PhysicsObjectGroup>0</PhysicsObjectGroup>
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
<PhysicsShapePoints/>
</object>
(where you can see that the amount of non-generated actual code programmed corresponds to 4 lines). Adding something like <!-- copyright 2013 ....... > to each file does not work as the notice will simply get replaced the moment gamemaker "saves".
Is using a central COPYRIGHT notice file "enough" for open source formats? Can that be used with GPL/APACHE? If it is incompatible, what would cause this?