This is a list of all known incompatibilities with GM. This list does
not including features that are simply just unimplemented yet, for that
see ENIGMA:Todo. Note some perceived
incompatibilities may also just be
bugs.
Coding Incompatibilities
- List of Deprecated_GML behaviours
- List of
:Category:Function:Obsolete
- In events GM handles separate code piece actions as different code
segments whereas ENIGMA lumps all actions together as a single code
segments. Thus is you use return; or exit; in a code piece in ENIGMA
it will stop all following actions being executed in the event
whereas in GM it will only exit the single code piece return; or
exit; was placed in
- In ENIGMA you need to have used an object local variable (anywhere)
within the object for it to be recognized as local to that object.
This means you can't use local variables within with statements
unless the variables have been used in that object somewhere
- When calling instance_destroy() and other such actions which end a
code segment, in ENIGMA the code segment is exited instantly and the
action is performed whereas in GM the rest of the code segment
currently being executed is finished before the action is performed
- In GM when using non-integer values on integer argument GM rounds
the number whereas in ENIGMA it floors it; note this also happens
when using repeat(){}
- In GM image_angle is always bounded to the range [0, 360), ENIGMA
does not do this
- In GM the creation event is executed after the instance creation
code, it is reversed in ENIGMA with the instance creation code being
executed after the creation event.
Graphical Incompatibilities
- Things like lighting and alpha channels (and other things) are
handled slightly differently in OpenGL to DirectX so will be
probably notice small differences in effects and graphical drawings
from ENIGMA to GM
- OpenGL doesn't handle Z fighting the same as DirectX, so if you have
textures drawn in the same location ENIGMA and GM may behave
differently. Especially make sure to take note of this when using
transparent drawing
- OpenGL isn't fond of rapidly changing the scaling when drawing
something transparent.
- OpenGL handles fog differently to DirectX. This can cause unwanted
effects on older graphics cards when using
d3d_set_fog
- Surfaces use fbos in ENIGMA which aren't supported on some older
graphics cards
Other Incompatibilities
- The ds_*_write/read functions use a different file format, so you
will not be able to load saved lists from GM into ENIGMA and visa
versa