Game Distribution (简体中文)

当游戏完成后,你必定希望其他人能获取这个游戏,简而言之你需要先建一个 .love 文件,它可用于直接发布 (需要用户预装 LÖVE),也可被用于创建针对不同平台的分发包。

以下是各平台中发布游戏的推荐方式 (全部基于 .love 文件):

创建 .love 文件

请注意,一些操作系统的路径对大小写敏感,为避免不必要的麻烦,请确保代码中的路径准确对应于实际目录和文件。

要创建 .love,先建一个包含整个游戏目录的 zip 档案,确保 main.lua 存在于档案的根目录下,例,假如你有下列文件

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

那么你必需确保 zip 档案包含

   gfx\character.png
   main.lua
   conf.lua

不是 SuperGame\ 这个目录。

创建 zip 档案后, 简单将后缀由 .zip 改为 .love 就完成了!

各平台注意事项

Windows

Windows 下可直接生成 zip 档案,详细指南请参考 http://windows.microsoft.com/en-hk/windows-vista/compress-and-uncompress-files-zip-files

你也可以使用此处提供的发布工具 here

Linux / OS X

假设当前目录为 SuperGame/,可用以下命令直接生成 .love 文件

   zip -9 -q -r SuperGame.love .

创建 Windows 可执行文件

将游戏打包为 .love 后,即可进一步创建游戏的可执行文件,点击可执行文件可以直接运行游戏。

你需要将 .love 文件附加到 love.exe 中,后者随官网的 LÖVE .zip 提供,之后得到的文件即是游戏的可执行文件。

生成可执行文件 exe 后,将之与 LÖVE 的其他官方 DLL 文件一起打包为 .zip,并与全世界分享。

注意: 高度推荐使用 32位 版 Löve 引擎而非64位版。

各平台指南

Windows

要创建游戏的 windows 可执行文件,在命令行下运行

   copy /b love.exe+SuperGame.love SuperGame.exe

或者也可以写个 .bat (e.g. create_game_exe.bat) 文件,内容为

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

然后简单将 SuperGame.love 拖到 .bat 上,即会创建 SuperGame.love.exe 以用于分发。

这个方法会创建一个 融合的 游戏。

Linux / OS X

可在 Linux 和 OS x 中使用命令行生成 windows 可执行文件。

首先从官网主页下载 Zipped 32-bit 或 64-bit,它是zip压缩的可执行文件 (不是 Installer) https://www.love2d.org/

而后在命令行/终端中运行

   cat love.exe SuperGame.love > SuperGame.exe

即得到游戏的可执行文件 SuperGame.exe


当发布 windows 版可执行文件时,需将 love.exe 同目录下的 dll 文件包含进去 (因此请勿将32位dll与64位dll弄混)。在缺少这些dll的情况下运行 SuperGame.exe 将会报错。

最终发布的目录内容看起来像这样:

  • SDL.dll
  • OpenAL32.dll (注: 64位下载版中有所区别,尽管文件名一样是 'OpenAL32.dll')
  • SuperGame.exe
  • license.txt (注:许可证 必需 被包含在任何发行文件中)
  • DevIL.dll

创建 MacOS X 程序

准备好游戏的 .love 文件后,你可以借助官网提供的 Zipped Universal Build https://www.love2d.org 将游戏分发给 MacOS/X 用户。 它会直接运行你的游戏,而非显示 LÖVE 的演示界面。

以下步骤为必需:

  1. 解压 Zipped Universal Build https://www.love2d.org
  2. 将 love.app 重命名为 SuperGame.app
  3. 复制 SuperGame.love 至 SuperGame.app/Contents/Resources/
  4. 修改 SuperGame.app/Contents/Info.plist
  5. Zip压缩 SuperGame.app 目录 (e.g. SuperGame.osx.zip) 而后发布之。

当修改 SuperGame.app/Contents/Info.plist 时,务必更改下列 XML 标签的内容:

  • CFBundleIdentifier
  • CFBundleName

并删除 UTExportedTypeDeclarations 段,以确保 Mac OS 不会将所有的 .love 文件都关联到你的 app。总体修改内容类似于:

原版 Info.plist 修改版 Info.plist
   ...
   <key>CFBundleIdentifier</key>
   <string>org.love2d.love</string>
   ...
   <key>CFBundleName</key>
   <string>LÖVE</string>
   ...
   <key>NSPrincipalClass</key>
   <string>NSApplication</string>
   <key>UTExportedTypeDeclarations</key>
   <array>
   ...
   </array>
   </dict>
   </plist>
   ...
   <key>CFBundleIdentifier</key>
   <string>com.SuperCompany.SuperGame</string>
   ...
   <key>CFBundleName</key>
   <string>SuperGame</string>
   ...
   <key>NSPrincipalClass</key>
   <string>NSApplication</string>
   </dict>
   </plist>

Linux 发布

目前尚未有在 Linux 上发布游戏的易行方案,此处提供的解决方法是给出 LÖVE 软件包的官方下载链接 https://www.love2d.org。安装程序后,.love 游戏包通常即可直接运行。

一个常见错误是用以下方法编译二进制文件:

   cat /usr/bin/love SuperGame.love > SuperGame
   chmod a+x ./SuperGame

请注意,尽管 `SuperGame` 的二进制文件可在你的计算机以及其他具有相同结构及类似版本库的 Linux 发行版中运行,但仍有相当几率 在其他 Linux 发行版中无法运行

Web发布

关于在支持 WebGL 的浏览器 (最新版 Firefox, Opera, Safari...) 中运行.love 游戏而无需额外插件,有一个实验项目,参考 forum thread

移动端发布

关于在 Android 手机中原生运行 .love 游戏,有一个实验项目,参考 subforum

其他语言