Difference between revisions of "Getting Started"

(Running Games: root zip issue illustrated a bit)
(redundant cleanup, general linux install, scite separated, the screenshot was horrible from the start what was i thinking, moved making love files to mostly just a link)
Line 3: Line 3:
 
Download the latest version of LÖVE from [http://love2d.org/#download 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.
 
Download the latest version of LÖVE from [http://love2d.org/#download 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:
+
To find out which version of LÖVE is installed, run the following command:
  
 
<source lang="bash">
 
<source lang="bash">
Line 11: Line 11:
 
== Making a Game ==
 
== 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 <code>main.lua</code>. Put the following code in the file, and save it.
+
To make a minimal game, create a folder anywhere, and open up your favorite text 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 <code>main.lua</code>. Put the following code in the file, and save it.
  
 
<source lang="lua">
 
<source lang="lua">
Line 18: Line 18:
 
end
 
end
 
</source>
 
</source>
 +
 
== Running Games ==
 
== Running Games ==
  
 
LÖVE can load a game in two ways:
 
LÖVE can load a game in two ways:
* From a folder. The startup path specifies this folder.
+
* From a folder that contains a main.lua file.
* From a .love file (a renamed .zip-file). The startup path specifies the file.
+
* From a [[LÖVE Game File|.love file]] that has a main.lua file in the top-most directory level (aka root)
 
In both cases, there has to be a file called <code>main.lua</code> in the startup path or root level of the .love zip file. 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.
 
  
=== Creating a .love (zip archive) file ===
+
For creating .love files see [[Game Distribution]].
  
The main.love has to be in the root of the .love/.zip file, not inside a folder/directory.
+
===Windows===
  
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 you need to zip the game folder's contents '''only''', to get a correct .love.
+
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 <code>main.lua</code>, and not <code>main.lua</code> itself.
 
 
[[File:LoveWrongZip.png|Example of false and correct zipping]]
 
 
 
===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 <code>main.lua</code>, and not <code>main.lua</code> itself.
+
[[SciTE]] allows you to launch the game from within the editor.
There's also the [[Scite]] option.
 
  
You can also call it from the command line:
+
You can also launch the game from the command line:
  
For instance:
 
 
<source lang="powershell">
 
<source lang="powershell">
 
love C:\games\mygame
 
love C:\games\mygame
Line 47: Line 40:
 
</source>
 
</source>
  
You can also create a shortcut to do this; simply make a shortcut to love.exe, right-click on it and select "Properties", and then put the command line you want in the "Target" box for the shortcut.  Double-clicking the shortcut will execute the given command line.
+
You can create a shortcut to do this; simply make a shortcut to love.exe, right-click on it and select "Properties", and then put the command line you want in the "Target" box for the shortcut.
  
On Windows, there is a special option which will attach a console to the Window. This allows you to see standard output:
+
On Windows, there is a special option which will attach a console to the window, allowing you to see standard output:
 
<source lang="bash">
 
<source lang="bash">
 
love --console
 
love --console
Line 63: Line 56:
 
</source>
 
</source>
  
If you have installed the .deb, you can double click on .love files in your file manager as well.
+
If you installed LÖVE system-wide, you can double click on .love files in your file manager as well.
  
 
===Mac OSX Snow Leopard (10.6) or earlier ===
 
===Mac OSX Snow Leopard (10.6) or earlier ===

Revision as of 10:23, 25 December 2013

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.

To find out which version of LÖVE is installed, run the following command:

love --version

Making a Game

To make a minimal game, create a folder anywhere, and open up your favorite text 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 that contains a main.lua file.
  • From a .love file that has a main.lua file in the top-most directory level (aka root)

For creating .love files see Game Distribution.

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.

SciTE allows you to launch the game from within the editor.

You can also launch the game from the command line:

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

You can create a shortcut to do this; simply make a shortcut to love.exe, right-click on it and select "Properties", and then put the command line you want in the "Target" box for the shortcut.

On Windows, there is a special option which will attach a console to the window, allowing you to see standard output:

love --console

Linux

On Linux, you can use one of these command lines:

love /home/path/to/gamedir/
love /home/path/to/packagedgame.love

If you installed LÖVE system-wide, you can double click on .love files in your file manager as well.

Mac OSX Snow Leopard (10.6) or earlier

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

open -n -a love "/home/path/to/game"

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 the file with

open -a TextEdit ~/.bash_profile

You may have to run

touch ~/.bash_profile

first if the file does not yet exist.

Then paste in the following code and save the file:

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

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

love "/home/path/to/game"

If you debug using the print command, it is useful to see this printed in realtime. In which case the following will open an extra window that will show the printed text.

xterm -e /Applications/love.app/Contents/MacOS/love "/home/path/to/game"

Mac OSX Lion (10.7) or later

In order to run LÖVE and retain the print() functionality in Lion, you can use a script such as the following:

#!/bin/bash
exec /Applications/love.app/Contents/MacOS/love "/home/path/to/game"

Next steps

Other Languages