Ora con i file sorgente di gamemaker studio non vengono più memorizzati in un formato proprietario, ma vengono archiviati come semplici file XML contenenti tutti i dati. Ora mi chiedo, i progetti creati con il gamemaker possono essere concessi in licenza utilizzando una licenza open source, in particolare per quanto riguarda le famiglie GPL e BSD / APACHE?
E se sì, come? La più grande obiezione che vedo è che tutti i file sono generati dal gamemaker e rigenerati ogni volta che il gamemaker salva / carica. Il problema principale con questo è che GM rimuoverà tutti i dati "non riconosciuti" da xml (quindi qualsiasi commento). Comprese le informazioni sul copyright.
Un secondo problema è che i creator di solito creano qualche dozzina di file, fondamentalmente per ogni funzione viene creato un file separato.
Un tipico xml generato sembra il seguente:
<!--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>
(dove puoi vedere che la quantità di codice effettivo non generato programmato corrisponde a 4 righe). Aggiungere qualcosa come <!-- copyright 2013 ....... >
a ciascun file non funziona in quanto la notifica verrà semplicemente rimpiazzata dal momento in cui il "salvatore" del gioco si ferma.
L'utilizzo di un file di avviso COPYRIGHT centrale è "sufficiente" per i formati open source? Può essere usato con GPL / APACHE? Se è incompatibile, cosa causerebbe questo?