Help Support the Baja Engine! Donate to Breezeway Studios!


First, Throw a party.

Congratulations! After months of work your game is done. This guide will step you through the process of preparing your game for distribution.

Packaging files for distribution

All LML files must be built in "build" mode instead of the "developer" mode. Other than this, no change is needed. If you're using the Mod Tool, see xsiconvert. If you're using XSI Foundation, see XSI Exporter.

You need to compile your scripts using the lmscompiler.

All image files used in menus/etc must be packed with the lmtpacker.

Next, copy the engine resources over to your builds directory. This includes the socket directory if you used sockets, and the shaders directory.

Finally, you must create a signed version of your engine using signengine.

Cross Platform

Unfortunately, it is not practical to develop for both Windows and Mac without having access to a computer running each platform.

Launching The Engine: Windows

On Windows, the icons that you place in the Start Menu and on the Desktop can include a list of arguments. Simply specify your main script as the only argument when you set up these icons in innosetup (see below). Note, with innosetup you can also specify a custom icns file to be used for your icons.

Launching The Engine: Mac

On the mac, it is impossible to send your script and level files as an argument to the engine. Instead, the Mac uses a concept known as bundles. Applications on the Mac are really folders, not executables. You need to embed your level data and scripts inside the bundle.

First, break open the bundle with the 'Show Package Contents' command. Control-Click the icon and drag down to select.

Then, deposit all of your levels and scripts inside Contents/Resources. Your main script file must be called 'main.lua' - this is the only file that the engine will search for. You should also place your icon inside this folder in the bundle.


If you're on Windows, there are a few dlls that you'll need to include in your installer. These dlls should be in the same directory as the engine. If you used audio, you'll need to include OpenAL32.dll and wrap_oal.dll; if you'r using freetype, you'll need to include freetype6.dll and zlib1.dll. All of these dlls are in the tools directory (C:/Program Files/Baja Engine {edition}/tools).

Creating an installer

On windows, innosetup is an awesome, free installer maker that we recomend. It includes excellent documentation so it won't be covered here.

On the Mac, the Xcode developer tools includes the programs that you need to build installers. The Xcode tools should be with your OS CDs, or they can be downloaded from Apple Developer .

Ready To Go

Now, you can take the installers that you've created and distribute them on CDs, the internet, etc.