Jump to: navigation, search
Shows sample DND code in the LateralGM object editor.

In ENIGMA, DND, D&D, or Drag-n-Drop Actions, is a graphical logistics based approach to learning game programming, designed to cultivate an understanding of code flow by removing complicated syntax rules. Using DND, beginners can design simplified scripts while gaining intuition for the layout of code. The name refers to the way the icons are dragged from one panel which shows the available actions, called a Library, on the right, and dropped into a sequential list of actions that are to actually be executed, or the Action List on the left.

As the user adds constructs such as if-else to their program, the IDE automatically indents code, accustoming the user to such a layout without drowning them in symbols.

Overall, DND is a powerful tool in assisting users in the transition to programming in general, and eventually to GML, EDL, and potentially as a launching platform into other languages.

Users who already know how to code will usually stick with the Execute a piece of code action, and occasionally the Execute Script and Comment actions. All of these actions are available under the control tab. As an added convenience, double clicking in an empty Action List in LateralGM will create an Execute a piece of code action. This feature is not available in Game Maker, so advanced users will tend to rearrange the tabs to put the Control tab first (achieved by renaming the Library files).


A library is a collection of DND actions to be made available to the user. The library defines the internal functionality or programming of each action, abstracting it away from the user and replacing it with a friendly set of icons, human-readable text, and input boxes, buttons, drop-down lists, etc.

Libraries are usually constructed using a Library Maker, which compiles them into binary data files where they may simply be installed and uninstalled by placing them in or out of a specified libraries folder. For convenience, a default set of libraries is already included with your IDE.

Each installed library constitutes a tab to the rightmost section of the Object frame. Switching to a tab causes that library's set of actions to appear in the panel to the left.


For Game Maker, inside the directory where you installed Game Maker exists a folder named "lib", which already contains the default set of official libraries. Users may install libraries by placing them into this folder, and uninstall them by removing them from this folder.

For LateralGM, this system is modularized a bit, making it a little more complex. In the simplest sense, you would simply navigate to wherever LateralGM is installed, and inside that directory create a folder named "lib", and install/uninstall user libraries to that folder. The default set of official libraries is contained inside of LateralGM's jar (can be treated as a zip), in org/lateralgm/resources/library/lib.

The technical workings of LateralGM's library system are as follows. Two separate library directories are defined: default (official) libraries and user libraries. Their exact paths are set in LateralGM's Properties file, with the default values described in the paragraph above this one. The default libraries are loaded first (so their tabs will appear first), and then user libraries are loaded.

Standard Libraries

Main Extended
Personal tools