Game Distribution

Create a .love-file

Please note that some operating systems use case-sensitive paths. To avoid unnecessary hassle make sure that the path specifications you use in code matches that of your folders and files.

To create a .love-file you have to create a zip file of the whole game directory. Make sure that your main.lua is in the root of the archive, e.g. if you have

   <somedir>\SuperGame\gfx\character.png
   <somedir>\SuperGame\main.lua
   <somedir>\SuperGame\conf.lua

You must ensure the zip file containts

   gfx\character.png
   main.lua
   conf.lua

and not the directory SuperGame\.

Once you have your zip file you simply rename the ending from .zip to .love and you are done!

Platform Specific Notes

Windows

Windows supports creation of zip files out of the box. For detailed instructions see http://windows.microsoft.com/en-hk/windows-vista/compress-and-uncompress-files-zip-files

Alternatively you can use the Distribution Utility that is available here

Linux / OS X

Assuming your current directory is SuperGame/ you can create the .love file from command line directly using

   zip -9 -q -r SuperGame.love .

Making an executable file out of a .love-file

Many people are (understandably) concerned about what end-users need to do in order to run a LÖVE-game. If users receive a .love-file alone, they will naturally need LÖVE installed (or at least unzipped) in order to run it. But, as of LÖVE 0.5.0, you can merge the .love file with the love executable.

In general, it's recommended to offer a .love for download, and optionally "merged" versions for the platforms where this makes things simpler.

Two things should be noted:

  1. The end result will not be a single executable, you must also include some DLLs in your zip-file.
  2. The resulting executable from the merge will still be readable by archiving software, such as WinZip.

Make sure that love.exe and the DLL files in the installation folder, and your game.love, are in the same directory.

Then use one of these following methods:

Windows

Here's how to do it on Windows. Open up a command prompt and type the following, where love.exe points to the LÖVE executable and game.love points to your zipped game.

copy /b love.exe+game.love game.exe

You can also make a .bat file, where you include the following:

copy /b love.exe+%1 "%~n1.exe"

Now just drag your game.love on the .bat file (Thanks to Yellowafterlife).

It's recommended to use the 32-bit version for this as it will run on every Windows. The 64-bit one only runs on 64-bit Windows.

Then, all you have to do is zip game.exe and the required DLLs, and distribute them. Yes; this does mean that the game will have a private copy of LÖVE, but there's nothing wrong with that. It also means that you will have to create one package for each platform you would like to support, or simply offer the .love alone for the other platforms.

Linux

On Linux, it's similar:

cat /usr/bin/love game.love > game && chmod +x game

Then, you'll have to make a package for various packaging systems with dependencies as the love package. Were you to make a .deb package this way, for instance, the user would not have to install the love package separately.

Eventually, we will provide scripts which do this automatically for various package systems. You'll have to figure it out yourself until then.

Mac OS X

As of 0.6.1, it is now easier to create ready-to-distribute stand-alone Love games by following these steps:

  1. First create a copy of the löve.app
  2. Right-click (Control+Click if you have one button) to bring up the contextual menu and select "Show Package Contents"
  3. Navigate to Contents/Resources/. There should be two .icns files in there. Copy your already prepared .love file into Resources.

Next, you need to edit /Contents/Info.plist. The main reason is that if you don't, your game will conflict with another LÖVE installation present on the user's machine, so that double-clicking any .love might open your game instead. The reasons are that when you launch the game, the Dock icon is still the default löve icon and the title is "love". To change this, all you need is a small amount of computer knowledge and the right tools. A text editor, or the OS X Property List Editor.app which comes with the Developers tools on the install disc. You can use either, but the PLE is easier to understand. The file you need to modify is the Info.plist file located in the Contents folder. Once opened in PLE, you will see a list of "properties". You need to make a couple of big changes: (Make sure to double-click the "Value" column and not the "Key").

  • Bundle identifier - Make this something like com.yourcompany.whatever
  • Bundle name - Changes the title in the Dock
  • Bundle creator OS Type code - Make this unique if you can.
  • Icon file - Optionally if you wish to make your icon a different file name. You could just replace the icon itself if you wanted to without renaming it though

Then, remove these sections by clicking the '-' that appears when you hover over it. This will avoid your application launching for any .love file:

  • Document Types
  • Exported type UTIs

Distribution on the web

There is an experimental project to run .love games in a WebGL capable browser (up to date firefox,opera,safari...) without needing extra plugins, see forum thread

Mobile distribution

There is an experimental project to run .love games natively on android phones, see subforum

Other Languages