Cross platform

Jump to navigation Jump to search

Cross Platform means that a piece of software works across multiple Computing platforms. In other words, a software which is cross-platform would be able to function on Windows and Mac, and possibly even Linux. In the ENIGMA world, we strive to support every possible platform that we can, not just limiting ourselves to Computer platforms, but also to mobile devices and game consoles, as well as other embedded devices. Here is a general list of the components of ENIGMA and their supported platforms:

LateralGM and the Plugin

Written in the interpreted language Java, functions on any Java Virtual Machine. This means that, out of the box, LateralGM can function on anything with a working JVM. This includes, but is not limited to:

  • Windows
  • Mac
  • Linux
  • Solaris (untested)

There are some limitations, however. Obviously LateralGM, being an IDE, requires access to a display unit (a monitor/screen) and an interactive pointer device (a mouse). LateralGM currently requires access to a keyboard, and Java 5 or 6. We make several window and filesystem calls which makes it unable to function as, say, a web application. Currently LateralGM also does not function from a Windows Network Drive due to certain filesystem calls, but we're looking into possible ways around that.


Written in C++, distributed in source code form, requiring compilation before use. This means that, in theory, the compiler could work on anything with a basic filesystem. Currently, however, we limit ourselves to:

  • Windows
  • Mac
  • Linux

It should not be difficult to port it to other platforms, provided that the platform has a C++ compiler, and it would be helpful if it also supported the other toolchain executables.


The end product - usually a game. Converted to C++ through ENIGMA, compiled for each desired platform via any of: ENIGMA, a c++ compiler, and/or toolchain executables. The list of supported application platforms is always growing, limited primarily only by the target platforms that your selected c++ compiler supports, and the libraries that your game depends on (such as graphics and audio libraries). Since they are precompiled for a platform, and then copied into the platform, they don't need a compiler *in* the platform that you wish to run them on. This means that they can run on a wider range of platforms than ENIGMA, including, but not limited to:

  • Computers (Windows, Mac, Linux)
  • Mobile devices (iPhone, Android)
  • Game consoles (Wii, PSP, Nintendo DS, and most jailbroken and OS-capable consoles)
  • Embedded devices (provided there's a C++ compiler for it, you could probably use ENIGMA to program a programmable toaster oven)