Game Distribution (Română)

După ce ai terminat jocul cu siguranță vrei să îl faci disponibil celorlalți. De obicei se crează un fișier .love care poate fi distribuit direct (ceea ce înseamnă că trebuie să ai frameworkul LÖVE instalat) sau folosit pentru pachete specifice platformei țintă.

Acestea sunt metodele preferate pentru a distribui jocul tău depinzând de țintă (toate se folosesc de fișierul .love):

Crearea unui fișier .love

De remarcat că unele sisteme de operare folosesc căi senzitive la diferența dintre minuscule și majuscule. Pentru a evita complicații nenecesare asigură-te că specificațiile căilor folosite în cod se reflectă în fișierele și directoarele jocului.

Pentru a crea un fișier .love trebuie să creezi un fișier zip cu tot directorul jocului. Asigură-te că fișierul main.lua este în rădăcina arhivei ex. dacă ai

   <director-oarecare>\SuperJoc\gfx\character.png
   <director-oarecare>\SuperJoc\main.lua
   <director-oarecare>\SuperJoc\conf.lua

atunci trebuie să te asiguri că jocul conține

   gfx\character.png
   main.lua
   conf.lua

și nu directorul SuperJoc\.

Odată făcut fișierul zip, redenumește-l din terminarea .zip în .love și ai terminat!

Note specifice platformelor

Windows

Windows permite crearea fișierelor zip cu ușurință via meniul de context (clic dreapta). Pentru instrucțiuni detaliate vezi Compress and uncompress files (zip files).

Mac OS X

în directorul jocului, selectează fișierele și directoarele jocului, clic dreapta/Ctrl+click și alege Compress n items. Apoi redenumește fișierul .zip rezultat cu terminația .love.

Alternativ, poți folosi terminalul. Navighează în directorul jocului și execută:

   zip -9 -r SuperJoc.love .

Linux

Presupunând că directorul de joc este SuperJoc/ poți crea fișierul .love de la linia de comandă cu

   zip -9 -r SuperJoc.love .

Crearea unui executabil Windows

Odată ce ai împachetat jocul într-un fișier .love poți crea un executabil care rulează jocul tău.

Pentru asta trebuie să lipești fișierul tău .love la fișierul love.exe care vine cu fișierul .zip oficial LÖVE. Fișierul rezultat este jocul executabil.

Odată ce ai fișierul executabil poți să-l împachetezi cu celelalte fișiere DLL din fișierul .zip oficial în noul .zip și răspândește-l în lume.

Notă: Nu toată lumea are o versiune de Windows pe 64 biți, dar este o idee bună să distribui amândouă, versiunile pe 32 și 64 biți, ori distribuie doar versiunea 32 biți.

Instrucțiuni specifice platformelor

Windows

Pentru a crea un joc executabil în windows folosește următoarea comandă

   copy /b love.exe+SuperJoc.love SuperJoc.exe

Notă: Este posibil să trebuiască să rulezi această comandă cu drepturi de administrator pe calculatorul tău. Poți face asta ajungând în Windows\System32 și apoi clic dreapta pe cmd.exe urmat de selectarea opțiunii Run as administrator. Apoi, scrie cd C:\Program Files\LOVE\ (sau oriunde este directorul implicit love), urmat de instrucțiunile normale.

Alternativ poți crea un fișier .bat (ex. crează_exe_pt_joc.bat) cu conținutul

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

și apoi poți trage fișierul tău SuperJoc.love peste fișierul .bat iar apoi va crea fișierul SuperJoc.love.exe care poate fi folosit pentru distribuire, apoi.

Această metodă crează un joc fuzionat.

Pictogramă windows

Poți folosi pictograma ta folosind unelte gratis ca Resource Hacker.

Sunt disponibile un tutorial video și instrucțiuni pas-cu-pas.

Linux / OS X

Poți crea un executabil Windows și din Linux și din OS X folosind linia de comandă.

În primul rând descarcă executabilele oficiale de 32 ori 64 biți (nu instalatorul) de la https://www.love2d.org/. Jocurile pe 32 biți pot rula pot rula pe sistemele Windows 64 biți dar nu vice-versa, deci pentru a salva timp la jocuri mici, poți furniza doar versiunea pe 32 biți.

Apoi în terminal rulează

   cat love.exe SuperJoc.love > SuperJoc.exe

pentru a obține executabilul SuperJoc.exe.

La distribuirea jocurilor Windows nu uita să incluzi fișierele DLL care vin în directorul unde se găsește love.exe (deci nu încurca versiunile DLL pe 32 biți cu cele de 64 biți). Fără aceste fișiere vei primi mesaje de eroare când rulezi SuperJoc.exe pe o mașină cu Windows.

Conținutul directorului de distribuție ar trebui să arate cam așa:

  • SDL2.dll
  • OpenAL32.dll (notă: acest fișier este diferit pentru versiunea de 64 biți chiar dacă se numește tot 'OpenAL32.dll')
  • SuperJoc.exe
  • license.txt (notă: licența necesită să fie inclusă în lansări ulterioare)
  • love.dll
  • lua51.dll
  • mpg123.dll
  • msvcp120.dll
  • msvcr120.dll

Crearea unei aplicații Mac OS X

Odată ce ai pregătit fișierul .love al jocului poți să îți faci jocul disponibil și pentru utilizatorii care folosesc Mac OS X utilizând următorii pași (tutorial video disponibil):

  1. Descarcă și extrage versiunea Mac a LÖVE de la pagina de pornire LÖVE
  2. Redenumește love.app în SuperJoc.app
  3. Copie SuperJoc.love în SuperJoc.app/Contents/Resources/ (clic dreapta/Ctrl+clic și alege "Show Package Content" pe OS X)
  4. Modifică SuperJoc.app/Contents/Info.plist (vezi detaliile de mai jos)
  5. Arhivează directorul SuperJoc.app (ex. în SuperJoc_osx.zip) și distribuie-l. Activează opțiunea -y la zip pentru a menține legăturile simbolice.

La modificarea SuperJoc.app/Contents/Info.plist schimbă următoarele taguri XML:

  • CFBundleIdentifier
  • CFBundleName

și șterge secțiunea UTExportedTypeDeclarations care asigură că Mac OS nu asociază fișierele .love cu aplicația ta. Cu toate schimbările ar trebui să arate așa:

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.SuperCompanie.SuperJoc</string>
   ...
   <key>CFBundleName</key>
   <string>SuperJoc</string>
   ...
   <key>NSPrincipalClass</key>
   <string>NSApplication</string>
   </dict>
   </plist>

Distribuirea pe Linux

Pentru Linux nu există încă o cale simplă pentru a distribui jocul. Metoda generală de abordat este să direcționezi către pachetele oficiale LÖVE la https://www.love2d.org. Odată ce pachetul este instalat, fișierele .love se execută de obicei automat folosind binarele LÖVE instalate ori prin linia de comandă:

love SuperJoc.love

Asigură-te că incluzi un fișier conf.lua cu cel puțin versiunea LÖVE folosită.

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

O greșeală des întâlnită este de a încerca să fuzionezi un binar linux cu un fișier love:

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

Ține cont că deși binarul `SuperJoc` va funcționa pe mașina ta, și alte distribuții Linux care au aceeași arhitectură și versiuni similare ale bibliotecilor, există o șansă mare ca să nu meargă pe alte distribuții Linux.

Debian

Există o politică de a include jocurile LÖVE în arhiva Debian. Poate fi urmată pentru a crea un pachet pentru un joc chiar dacă nu intenționezi să-l pui în arhivă.

Împachetarea Love2d (en)

AppImage

Formatul AppImage este un format pentru împachetarea aplicațiilor într-un mod care le permite să ruleze pe o varietate de sisteme țintă fără modificări ulterioare. Kitul întreg poate fi descărcat de aici.

Pentru a împacheta jocuri folosind AppImage, bibliotecile și dependințele necesare trebuiesc colectate, ceea ce poate fi făcut ușor folosind CARE (disponibil în depozitele Ubuntu) și executând:

care -o love.tar.gz love
.

Acest program crează o arhivă, care conține executabilul love și dependințele ținute în modul în care sunt ținute pe sistemul tău. Apoi, jocul în fișierul .love trebuie 'fuzionat' prin metodele arătate în secțiunea de mai sus. Acum fișierele trebuiesc în modul următor într-un director nou:

  Directorul Aplicației/
  |
  |--usr/
  |   |
  |   |-bin/ --> Binarul fuzionat trebuie pus aici
  |   |-lib/ --> Bibliotecile trebuiesc puse aici
  |   |-share/ --> Fișierele de date ale tale (și ale lui love și altele) trebuiesc puse aici, dacă există
  |   |-...
  |   -
  |--<nume joc>.desktop --> Acest fișier conține calea către pictograma programului, numele programului, și comanda pentru a-l executa
  |--<nume joc>.png --> Pictograma programului tău
  -

În final, directorul trebuie convertit într-un fișier AppImage, folsind programul AppImageAssistant disponibil în kit. Mai multe informații pot fi găsite în Wiki-ul AppImage.

Android

În primul rând clonează proiectul LÖVE pentru android:

 git clone https://bitbucket.org/MartinFelis/love-android-sdl2

Apoi, descarcă SDK-ul și NDK-ul Android (acum compatibil doar cu ndk 14b sau mai mic). Și pune un fișier numit local.properties în rădăcina proiectului cu următorul conținut (schimbând ... cu directorul local corespunzător):

ndk.dir=... 
sdk.dir=...

Pune fișierul (joc.love) în directorul (proiect)/app/src/main/assets (dacă nu există crează-l).

În final generează apk-ul, folosind:

./gradlew build

Pentru sistemele Linux/MacOS este posibil să trebuiască să rulez: chmod +x gradlew

Apk-ul rezultat va fi pus în (proiect)/app/build/outputs/apk/

Pentru mai multe informații vezi Wiki-ul Android.

iOS

Informații de bază pentru iOS (fără fuzionare) sunt disponibile la Getting_Started_(Română)#iOS.

Pentru a fuziona jocul în motorul LÖVE:

  1. Obține codul sursă iOS de la love2d.org.
  2. Deschide platform/xcode/love.xcodeproj cu Xcode.
  3. Alege ținta love-ios (nu love-macosx)
  4. Alege Build Phases de la ținta 'love-ios' și adaugă fișierul 'joc.love' în Copy Bundle Resources.
  5. Construiește proiectul.
  6. Jocul tău ar trebui să apară pe dispozitivul tău iOS sub formă de aplicație.

Dacă nu reușești să găsești elementele UI XCode, poți să te uiți la următorul video tutorial pe Youtube.

Distribuirea pe web

Pentru a publica sub formă de joc HTML5 + Javascript se poate folosi TannerRogalsky/love.js. Firele de execuție nu sunt suportate iar modul de joc depinde de browser desigur.

Unelte din comunitate

Există câteva unelte pentru a ajuta distribuirea jocurilor.

  • love-release (forum), un script lua care ajută la automatizarea distribuției jocului. Platforme disponibile sunt Windows, Mac OS X, Debian, Linux, cu multe alte opțiuni.
  • Love Distrubution Pack[sic], o uneltă disponibilă doar pentru windows pentru crearea fișierelor .love și a executabilelor.
  • love-dist, o uneltă disponibilă doar pentru windows care poate compila cod lua și să creeze un exe.

Alte limbi