Menu

GM_Incompatibilities

Hugh Greene

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

Related

Wiki: Deprecated_GML

MongoDB Logo MongoDB