Difference between revisions of "Getting Started"

(Running Games: Updated part about no-game screen, elaborated explanation regarding .love content-only)
Line 24: Line 24:
 
* From a .love file (a renamed .zip-file).
 
* From a .love file (a renamed .zip-file).
 
   
 
   
In both cases, there has to be a file called <code>main.lua</code> in the root path. This file will be loaded when LÖVE starts. If this file is missing, LÖVE will not recognize the folder or .love file as game, and you will be presented with the standard no-game screen. A frequently made mistake is zipping the folder, but '''only''' zip its contents for a correct .love.
+
In both cases, there has to be a file called <code>main.lua</code> in the root path. This file will be loaded when LÖVE starts. If this file is missing, LÖVE will not recognize the folder or .love file as game, and it will complain about a wrongly packaged game. A frequently made mistake is zipping the folder rather than its contents. This stems from very old practice (because when you unzip a folder you don't want it to splash out all over your current directory), but for LÖVE doing that doesn't make sense: you need to zip the game folder's contents '''only''', to get a correct .love.
  
 
===Windows===
 
===Windows===
Line 78: Line 78:
 
love /home/path/to/game
 
love /home/path/to/game
 
</code>
 
</code>
+
 
 
== Next steps ==
 
== Next steps ==
 
* [[Tutorial:Callback_Functions]] will teach you the basic structure of a love game.
 
* [[Tutorial:Callback_Functions]] will teach you the basic structure of a love game.

Revision as of 09:35, 26 July 2010

Get LÖVE

Download the latest version of LÖVE from the website, and install it. If you're on Windows and don't want to install LÖVE, you can also just download the zipped executables and extract them anywhere.

You can inspect what Version of Löve you have installed like this:

love --version

Making a Game

To make a minimal game, create a folder anywhere, and open up your favorite code editor. Notepad++ is a pretty good one for Windows, and it has Lua support built in. Create a new file in the folder you just created, and name it main.lua. Put the following code in the file, and save it.

function love.draw()
    love.graphics.print("Hello World", 400, 300)
end

Running Games

LÖVE can load a game in two ways:

  • From a folder.
  • From a .love file (a renamed .zip-file).

In both cases, there has to be a file called main.lua in the root path. This file will be loaded when LÖVE starts. If this file is missing, LÖVE will not recognize the folder or .love file as game, and it will complain about a wrongly packaged game. A frequently made mistake is zipping the folder rather than its contents. This stems from very old practice (because when you unzip a folder you don't want it to splash out all over your current directory), but for LÖVE doing that doesn't make sense: you need to zip the game folder's contents only, to get a correct .love.

Windows

On Windows, the easiest way to run the game is to drag the folder onto love.exe, or a shortcut to love.exe. Remember to drag the folder containing main.lua, and not main.lua itself. There's also the Scite option.

You can also call it from command line:

For instance:

love C:\games\mygame
love C:\games\packagedgame.love

On Windows, there is a special option which will attach a console to the Window. This allows you to see standard output.

love --console

Linux

On Linux, you can use the command line:

love /home/path/to/game
love /home/path/to/packagedgame.love

If you have installed the .deb, you can double click on .love files in your file manager as well.

Mac OSX

On Mac OSX, a folder or .love file can be dropped onto the Love.app application bundle. On the Mac OSX Terminal (commandline), you can use love like this (assuming it's installed to the Applications directory):

open -a love mygame

In some cases it may be faster to invoke the love binary inside the application bundle directly via the following:

/Applications/love.app/Contents/MacOS/love mygame

You can setup an alias in your Terminal session to call the binary when you use love by adding an alias to your ~/.bash_profile (open -a TextEdit ~/.bash_profile):

# alias to love
alias love="/Applications/love.app/Contents/MacOS/love"

Now you can call love from the commandline like Linux and Windows:

love /home/path/to/game

Next steps