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 같은)을 사용하는 경우 .love 파일을 게임이 있는 폴더 외의 다른 장소로 이동하고 다시 테스트하는 것이 좋습니다. 대소문자 구분 문제가 다른 사용자가 게임을 실행하길 시도할 때 나타날 수 있습니다. 같은 폴더에서 실행한다면 실행할 수 없는 .love 파일을 실행할 수 있으므로 실행하기 전에 옮겨주세요. love/MyGame.love같은 위치로 옮기는 것이 좋습니다..

플랫폼별 참고 사항

Windows

윈도우는 오른쪽 클릭 메뉴에서 zip 파일 만들기를 내장하고 있습니다. 자세한 내용은 [1]를 참고하세요.

macOS

게임 폴더 안에서 파일과 폴더들을 선택한 후, 오른쪽 클릭/Ctrl+클릭 후 압축을 선택하세요. 결과물의 끝을 .zip 파일에서 .love로 바꿔주세요.

또는, 터미널을 사용할 수 있습니다. 폴더 안에서 다음을 실행하세요:

   zip -9 -r SuperGame.love .

Linux

현재 디렉터리가 SuperGame/ 이라고 가정합니다. .love 파일을 만들려면 명령줄에서

   zip -9 -r SuperGame.love .

Windows 실행 파일 만들기

게임을 .love 파일로 포장했으므로 게임을 직접 실행할 수 있는 게임으로 만들 수 있습니다.

이를 위해서는 당신의 .love 파일을 공식 LÖVE .zip 파일에서 제공되는 love.exe와 합쳐야 합니다. 결과 파일로 게임 실행 파일이 생성됩니다.

게임 실행 파일이 있으면 공식 LÖVE .zip 파일의 다른 DLL 파일과 함께 .zip 파일로 합쳐 전 세계와 공유할 수 있습니다.

참고: 어떤 사람들은 Windows의 64비트 버전이 없으므로 32와 64비트 버전을 모두 배포하거나 32비트 버전만 배포하는 것이 좋습니다.

플랫폼별 참고 사항

Windows

윈도우에서 게임 실행 파일을 만들려면 명령줄에서

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

참고: 관리자로 명령을 실행해야할 수 있습니다. Windows\System32 폴더로 이동해 cmd.exe 파일을 선택하고 관리자 권한으로 실행을 선택해 관리자 권한으로 실행할 수 있습니다. 실행한 후 cd C:\Program Files\LOVE\ (기본 love 디렉터리로)를 입력하고 진행하면 됩니다.

또는 다음 .bat 파일(예를 들어 create_game_exe.bat)을 다음과 같이

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

만들고 Supergame.love 파일을 그 .bat 파일에 옮겨 SuperGame.love.exe를 만들어 배포하는 데 사용할 수 있습니다.

만약 cmd 대신 PowerShell을 사용한다면 명령어가 살짝 달라집니다:

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

이 메소드는 융합된 게임을 생성합니다.

Windows 아이콘

자신만의 아이콘 이미지를 리소스 해커 와 같은 도구를 사용해 만들 수 있습니다.

비디오 자습서단계별 지침 을 사용할 수 있습니다.

Linux / OS X

Linux와 OS X에서 명령줄을 사용해 윈도우 실행 파일을 만들 수 있습니다.

먼저 https://www.love2d.org/에서 공식 실행 파일을 압축된 32 또는 64비트 파일로 받습니다 (installer가 아님). 32비트 게임은 64비트 윈도우에서 실행이 가능하지만 반대의 경우는 아니므로 작은 게임에서 시간을 절약하려면 32비트만 제공할 수 있습니다.

그러고 명령줄/터미널에서

   cat love.exe SuperGame.love > SuperGame.exe

를 실행해 실행 파일 SuperGame.exe 을 얻을 수 있습니다.

윈도우 실행 파일을 배포할 때 love.exe 폴더의 dll 파일을 포함해야 합니다. (32비트 dll과 64비트 dll을 섞지 마십시오). dll 파일 없이 SuperGame.exe를 윈도우 컴퓨터에서 실행하려고 하면 오류 메시지를 얻을 것입니다.

최종 배포 폴더의 내용을 다음과 같아야 합니다:

  • SDL2.dll
  • OpenAL32.dll (참고: 이 파일은 64비트에서도 이름만 OpenAL32.dll인 다른 버전으로 존재합니다)
  • SuperGame.exe
  • license.txt (참고: 라이선스 추가 배포에 필요합니다)
  • love.dll
  • lua51.dll
  • mpg123.dll
  • msvcp120.dll
  • msvr120.dll

macOS 앱 만들기

공식/광고 배포 (예를 들어 Mac App Store)라면 다음 섹션으로 넘어가세요, 공식 공유와 앱 스토어

게임을 .love 파일로 준비하면 macOS 사용자가 게임을 사용할 수 있도록 하는 방법이 (video tutorial 있습니다):

  1. LÖVE 홈페이지에서 LÖVE의 Mac 버전을 받고 압축을 풀어주세요.
  2. love.app 의 이름을 SuperGame.app로 바꾸세요.
  3. SuperGame.loveSuperGame.app/Contents/Resources/로 이동하세요(OS X에서 오른쪽 클릭/Ctrl+클릭 후 "패키지 내용 보기"). 융합 모드에서 게임이 실행됩니다.
  4. SuperGame.app/Contents/Info.plist를 실행하세요(자세한 내용은 아래에서).
  5. SuperGame.app 폴더를 압축하고 (SuperGame_osx.zip) 배포하세요. zip에서 -y 플래그로 참조를 유지하세요.

SuperGame.app/Contents/Info.plist를 수정할 때 다음 XML 파일의 문자열 값을 변경해야 합니다:

  • CFBundleIdentifier
  • CFBundleName

그리고 macOS가 .love 파일을 앱과 연결하지 못하게 하는 UTExportedTypeDeclarations 부분을 삭제하세요. 전반적인 변경 사항은 다음과 같아야 합니다:

Original Info.plist Modified 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>

공식 공유와 앱 스토어

Mac 앱을 컴파일하는 것은 macOS가 실행 중이고 XCode가 설치된 Mac을 요구합니다 (XCode는 app store에서 받을 수 있습니다).

  1. love 소스 코드를 다운받으세요.
  2. 여기에서 요구 프레임워크를 다운받고 /Library/Frameworks/로 옮기세요.
  3. platform/xcode/love.xcodeproj의 XCode 프로젝트를 여세요. love-macosx를 아래에 설명된 대로 빌드합니다.
  4. XCode에서, Images.xcassets에서 macOS 아이콘을 변경하세요.
  5. XCode에서, love-macosx.plist를 수정하세요. (위 지침을 확인하세요)
  6. .love 파일을 "Copy Bundle Resources" Build Phase에 추가하세요.
    addLoveFileToXcodeBundleResources.png
  7. Apple's guide for distributing Mac apps를 따라하세요.

리눅스 배포

리눅스는 아직 게임을 배포하는 간단한 방법이 없습니다. 여기서 일반적인 접근 방식은 https://www.love2d.org의 공식 LÖVE 패키지를 가리키는 것입니다. 패키지가 설치되면 일반적으로 설치된 LÖVE 패키지를 사용하거나 다음 명령줄을 사용하여 .love 패키지를 자동으로 실행합니다:

love SuperGame.love

conf.lua file에 실행하는 최소 버전을 포함해야 합니다.

function love.conf(t)
    t.version = "11.2"
end

일반적인 실수 중 하나는 love 리눅스 바이너리를 love 파일과 융합하려고 하는 것입니다:

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

유의하세요. 'SuperGame' 바이너리가 당신의 기기, 동일한 아키텍처와 비슷한 버전의 라이브러리의 다양한 기기에서 실행되어도 "다른 많은 리눅스 배포판에서 실행되지 않을" 많은 기회가 있습니다.

Linux

비록 모든 시나리오에서 작동한다는 것을 증명하지는 못했지만, 리눅스에 게임을 배포하는 방법입니다.

  1. 적당한 Linux 버전에 맞는, x86_64, 또는 i686 등의 love를 다운받습니다(.tar.gz 확장자). 다운로드 페이지
  2. .tar.gz파일의 압축을 해제합니다. 파일을 마우스 오른쪽 단추로 클릭하고 “압축 해제”를 누르거나, 명령줄에서:
     tar -xvzf love.tar.gz
    
    로 해제할 수 있습니다.
  3. game.love 파일을 압축 해제된 폴더에 넣습니다.
  4. love 파일을 "$@" 와 "${LOVE_LAUNCHER_LOCATION}/game.love” 로 변경합니다.

Debian

데비안 아카이브에는 LÖVE 게임을 포함하는 정책이 있습니다. 아카이브에 포함하지 않더라도 게임용 패키지는 만들 수 있습니다.

Love2d 패키징

AppImages

AppImage 포맷은 추가 수정 없이 다양한 시스템에서 실행할 수 있는 방식으로 응용 프로그램을 패키징하는 형식입니다. 여기에서 다운로드 할 수 있습니다.

AppImage를 사용하여 게임을 패키지하기 위해서는 love가 요구하는 라이브러리와 종속성이 필요하고, CARE 명령어로 (Ubuntu 리포지토리에서 가능) 쉽게 수행할 수 있습니다:

care -o love.tar.gz love

love 실행 파일과 시스템과 연관된 종속성 및 관련 파일을 포함해 아카이브를 만듭니다. 두번째로, 게임의 .love 파일을 위 섹션에 표시된 대로 '융합'시켜야 합니다. 파일은 새 디렉토리에 다음과 같이 배치해야 합니다:

Application Directory/
├── <game name>.desktop  --> This file contains path to the program's icon file,
│                            the name of the program and the command to execute it.
├── <game name>.png      --> Your game's icon
└── usr/
    ├── bin/    --> Your fused binary needs to be placed here
    ├── lib/    --> Your libraries need to be placed here
    └── share/  --> Your (or LÖVE's) data files (and other things) need to be placed here, if any

마지막으로 디렉터리에서 AppImageAssistant를 사용해 AppImage로 변환해야 합니다. 자세한 내용은 AppImage documentation에서 찾을 수 있습니다.

Android

Compiling from source

먼저 안드로이드 LÖVE 프로젝트를 복제합니다:

git clone --recurse-submodules https://github.com/love2d/love-android

(--depth 1로 다운로드 시간을 아낄 수도 있습니다) 그리고, Android SDK (API 30)과 Android NDK (exactly version 21.3.6528147 or r21d)를 다운받습니다.

환경 변수

  • ANDROID_HOME 를 Android SDK 경로로 지정해주세요.

게임 ("game.love"라고 이름지어진)을 (프로젝트)/app/src/main/assets에 넣습니다 (필요한 경우 디렉터리를 만들며).

(프로젝트)/app/src/embed/AndroidManifest.xml을 변경합니다. (프로젝트)/app/build.gradle의 패키지 이름, 버전 코드, 버전 문자열을 변경하면 됩니다.

Linux 또는 macOS 시스템에서는 실행 권한을 설정해야 합니다:

chmod +x gradlew

드디어 APK를 생성합니다:

./gradlew assembleEmbedRelease

APK 파일은 (프로젝트)/app/build/outputs/apk/embed/release/app-embed-release-unsigned.apk에 있을 것입니다.

Play Console에 업로드하기 위해 AAB를 생성해야 한다면:

./gradlew bundleEmbedRelease

AAB 파일은 (프로젝트)/app/build/outputs/bundle/embedRelease/app-embed-release.aab에 있을 것입니다.

자세한 내용은 GitHub 리포지토리를 참고하세요.

APKTool 사용

O.png 이 메소드는 이제 사용되지 않습니다.Play Store will mandate Android Application Bundle in 2021 또한 이 방법은 삭제될 수 있습니다!  


자세한 내용은 Game Distribution/APKTool을 참고하세요.

iOS

융합 없는 기본 지침은 Getting_Started#iOS에 있습니다.

O.png Apple측 제한으로 인해, iOS에 대한 융합은 macOS에서만 가능합니다!  


게임에 LÖVE 엔진을 융합하는 방법:

  1. love2d.org에서 iOS 소스 코드를 얻습니다.
  2. XCode로 platform/xcode/love.xcodeproj를 엽니다.
  3. 타겟을 love-ios로 지정합니다. (love-macosx가 아님)
  4. '러브-ios' 대상의 빌드 페이즈를 선택하고 '게임.love' 파일을 복사 번들 리소스에 추가합니다.
  5. 프로젝트를 빌드합니다.
  6. 게임이 iOS에 앱으로 설치됩니다.

관련 XCode UI 요소를 찾을 수 없는 경우 유튜브에서 동영상 자습서를 참조할 수 있습니다.

Web으로 배포

HTML5나 JavaScript로 배포하는 것이 TannerRogalsky/love.js에 의해 가능합니다. 스레드가 지원되지 않고 브라우저마다 환경이 달라집니다.

위 프로젝트의 더 현대적인 포크가 Davidobot/love.js에 있고 LÖVE v11.3을 지원합니다.

커뮤니티 도구

커뮤니티에서 게임 배포를 돕기 위해 개발한 몇 가지 도구가 있습니다.

  • makelove, Python 3로 쓰여진 게임과 융합하는 멀티 플랫폼 도구입니다. AppImage와 Windows, Linux를 지원합니다.
  • love-release (forum), 게임 배포를 자동화하는 Lua 스크립트입니다. Windows, MacOS, Debian, Linux, 다양한 기능을 지원합니다.
  • boon (forum), Windows, MacOS, Linux의 멀티 플랫폼을 지원하는 사용하기 쉬운 도구입니다.
  • Love Distrubution Pack[sic], .love 파일과 exe 파일을 만들 수 있는 Windows 전용 도구입니다.
  • love-dist, LuaC로 exe 파일을 만들 수 있는 Windows 전용 도구입니다.
  • love-export, 빠르고 간단하게 바이너리를 구축하는 명령줄 도구입니다. Windows, MacOS와 Linux를 지원합니다.

다른 언어들로