Menu

LateralGM

Hugh Greene

lateralgmlogo.png LateralGM
(LGM) is an alternate Game Maker
IDE compatible with
both ENIGMA and Game Maker. It can be used to edit
projects, but cannot run them without the use of an additional plugin.
It has many other uses, including GM8 -> GM6/7 conversion. It is
written in Java. The lead programmer is
User:IsmAvatar.

Within the ENIGMA project, LateralGM is everything you see visually that
does not involve the ENIGMA menu.

Compiler

Lgm_ide.png Through the use of The
Plugin, LGM may interface with ENIGMA so as to
provide compiling and running of the projects. The LGM and ENIGMA
projects are largely independent and modular, so that you can usually
plug in a newer or older version of either and both will usually still
function normally. Normally, when you obtain ENIGMA, it includes
LateralGM and the relevant plugin.

Modularity

LateralGM is designed to be very modular so interested projects can
splice it up, reuse code, or create spin-offs however they like. Of
course, there's the possibility of designing plugins for the purpose of
compilers, runners, or internal modifications. The really interesting
modularity, though, is that LateralGM keeps front-end (UI) completely
separate from the back-end (file, resource), which allows easy
replacement or removal of the UI, if desired, or simply only reusing the
back-end. Finally, several of the internal classes or some groups of
classes are completely independent and can be copied and reused without
generating a dependency on LGM itself, such as certain UI components, as
well as several of the File-related classes. This doesn't even mention
the independent projects that get hooked into LGM, such as the code
editor.

Building

Building LGM is a process that is not as simple as running make on
the directory with the source code, as there are many complex tasks that
need to be done which make is less capable of, so we usually use
ant instead. Generally, the tasks that need to
be done to build are:

  • Apply revision branding to the image and About box (although this
    may be phased out)
  • Compile the classes with an appropriate compiler and settings
    (currently LGM doesn't compile with the standard Javac, and
    compiling requires an additional dependency on the Eclipse Java
    Compiler, although we're working on this)
  • Zip it up into an executable jar

As you can see, this can be a complex task, so it is usually performed
by a developer, but instructions are
also available for anyone who wishes to build it, even from scratch.

Overriding settings

LGM has several settings/preferences which can be changed, but currently
it lacks a settings panel to do this. In the meantime, you can override
these settings with Java Preferences. Please see Overriding
settings
for more details on these
methods.

Disabling Automatic Updates

-
Note, with the recent switch to Git, the installation and update
processes have been renovated, and "Automatic Updates" have gone
away. This section is just left for people who still are stuck with
the older process.

-
Additionally note that because of the switch to Git, the
"Automatic Update" process will no longer get you the *very
latest* version, as we have stopped maintaining that process. It
should still get you a working copy, but you should not receive any
more updates after that. You might consider looking at the new
install process to ensure that you continue getting the latest
updates.

When opening LateralGM in Windows, by default an automatic check for
updates is done. This can get tiresome as it takes a little while before
you can use ENIGMA and you are greeted with the 'ENIGMA is not ready get
message' when attempting to compile. The easiest way to turn off
automatic updates is to go to the directory ENIGMA\plugins\shared and
then rename svnkit to something else. By doing this updates will no
longer automatically happen, then if you wish to turn them back on you
can simply rename it back to svnkit again.

Developing plugins

Plugins developed for LateralGM are usually written in Java, although
they can be written in other languages as long as there is a java port
in between that calls your module. The main article explaining how to
develop a plugin is LateralGM:Plugins.
An example of a plugin is the ENIGMA compiler plugin, aka The
Plugin.

Known issues

LGM is intended to be run in Java 7 or later, but will function on Java
6 or Java 5.

All versions suffer from Java
bug 7035369

on Linux where Desktop.edit is not implemented, meaning that you can't
use the default system editor to edit sprites, backgrounds, and sounds.
For a workaround, specify a preferred editor for each. See No internal
or system editor
as well as
#Overriding settings for a
workaround.

Java 6 intermittently suffers from
bug 6826104 on Linux
which causes the dialog that appears when X'ing out of a resource frame
("Keep changes?") to throw a NullPointerException in
sun.awt.X11.XWindowPeer.restoreTransientFor when you try to click on
one of the buttons (like "No"). This bug is fixed in Java 7.

Java 5 is missing some key functionality that Java 6 has, but most of it
can be reproduced by downloading an additional
SwingLayout-LGM.jar (www.ismavatar.com)
and placing it next to lgm16b4.jar. You are, however, strongly
recommended to upgrade your Java to a later version.


Related

Wiki: Adding_systems
Wiki: Automated_Install
Wiki: Backend
Wiki: Background
Wiki: Binaries
Wiki: Bug_reporting
Wiki: Command_line_interface
Wiki: Comparison_of_ENIGMA
Wiki: Cross_platform
Wiki: DLL
Wiki: ENIGMA\it
Wiki: ENIGMA
Wiki: Eclipse
Wiki: Event
Wiki: Extension_Maker
Wiki: First_game:Balloon_pop
Wiki: GMKrypt
Wiki: Game_Maker
Wiki: Google_Summer_of_Code:_2015
Wiki: Help
Wiki: Install:Git:Windows
Wiki: Install:Git
Wiki: Install:Parallel_Java
Wiki: Install
Wiki: Integrated_development_environment
Wiki: Jardesc
Wiki: Java
Wiki: JoshEdit
Wiki: JoshEdit_branch
Wiki: LGL_format
Wiki: LGM
Wiki: LIB_format
Wiki: LateralGM:Building
Wiki: LateralGM:Building_svn
Wiki: LateralGM:Developing:Import
Wiki: LateralGM:Developing
Wiki: LateralGM:Plugins
Wiki: LateralGM:Suggestions
Wiki: LateralGM:Todo
Wiki: Library_Maker
Wiki: License
Wiki: Linux
Wiki: Mac_OS_X
Wiki: No_internal_or_system_editor
Wiki: Object_editor:Suggestions
Wiki: Options_panel:Suggestions
Wiki: Overriding_settings
Wiki: Plugin:Building
Wiki: Plugin:Building_svn
Wiki: Plugin
Wiki: RadialGM
Wiki: Related_Projects:Developing
Wiki: Resource_tree
Wiki: Revision_control
Wiki: Room_editor_suggestions
Wiki: SharpGM
Wiki: Sprite
Wiki: Translating
Wiki: Tutorial:Making_your_first_game
Wiki: Tutorial:Moving_from_GML_to_EDL
Wiki: User:IsmAvatar
Wiki: Windows
Wiki: WxENIGMA

MongoDB Logo MongoDB