LÖVE ist ein 'affengeiles' Framework, mit dem man 2D Spiele in Lua programmieren kann. Es ist open-source (kostenlos) und funktioniert unter OSX, Windows und Linux. Untersützung für iOS könnte bald ebenfalls Realität werden.

Wer Love2D bereits kennt, weiß dieses Framework zu schätzen. Wer nicht, der hat es einfach noch nicht probiert. Es ist unglaublich gut und ähnelt Codea in vielen Hinsichten. Aber Eines ließ mich davon immer ein wenig auf Distanz bleiben, und zwar der Fakt, dass keiner weiß wie man damit Apps im Apple Mac App Store veröffentlichen kann.

Wie aus diesem Artikel bereits bekannt ist, benötigt man eine digitale Signatur, mit der man seine Apps unterschreibt - erst dann kann man sie bei Apple anbieten. Lädt man LÖVE aber erst einmal herunter, wird einem schnell klar, dass das nicht ohne Weiteres möglich ist. Ich versuche das möglichst einfach zu beschreiben...

LÖVE besteht aus zwei Teilen: dem Framework und einem Player. Das Framework erlaubt es Applikationen in Lua zu programmieren. Der Player ist ein eigenständiges Programm (unter OSX 'love.app'), das euere Lua Dateien ausführen kann. Der Player ist das, was ihr von der offiziellen Webseite zum Download bekommt. Er beherrbergt auch das Framework in sich, um euere Apps zu verstehen und abspielen zu können. Wenn ihr also den Player habt, habt ihr auch das Framework.

Der Player liest aber .lua Dateien nicht direkt - er erwartet ein .love Projekt. Das ist nichts anderes als eine .zip Datei, die in .love umbenannt wurde. In dem Zip Archiv müssen alle Assets enthalten sein, die für euere App benötigt werden (Sounds, Bilder, Lua Dateien). Egal was es in diesem Archiv alles gibt, eine Datei muss immer drin sein: 'main.lua' - denn diese Datei wird von dem Player immer als erstes ausgeführt. Solche .love Projekte kann man auch ohne Probleme an andere Löver weitergeben. Für den App Store sind sie aber absolut nicht zu gebrauchen!

Nun könnt ihr also Apps in Lua programmieren, alles in ein .love Archiv packen und es mit dem Player abspielen oder mit anderen LÖVE Nutzern teilen.

Jetzt wird es noch interessanter: laut dieser Anleitung kann man die .love Dateien auch direkt in den Player integrieren. Somit kann sie jeder ausführen, selbst wenn er keinen LÖVE Player besitzt. Unter OSX hätten wir damit also unsere .app Datei bekommen. Solche Dateien können theoretisch auch im Mac App Store veröffentlicht werden!

Aber nicht in diesem Fall - denn der Player, der ja unser Projekt ausführt und damit die eigentliche App ist(!), wurde nicht mit unserer Signatur zertifiziert! Apple würde eine solche App nicht zulassen. - Wir müssten also einen eigenen Build dieses Players mit XCode erstellen und mit unserem persönlichen Provisioning Profile zertifizieren - und diesen neuen Player könnten wir anschließend als Wrapper für all unsere Lua Apps nutzen, die wir auch zu Apple senden können!


Eigenes Build von Love2D erstellen

  1. Zuerst brauchen wir einige Bibliotheken, die wir nach /Library/Frameworks/ kopieren müssen. Dazu im Finder ⇧⌘G drücken, den o.g. Pfad eingeben und die Dateien ablegen.

  2. Als Nächstes laden wir uns den Quellcode für das LÖVE2D Framework (inkl. Player) herunter. Dazu nutzen wir unter OSX das 'Terminal': hg clone https://bitbucket.org/rude/love. Sollte dieser Befehl scheitern, benötigt ihr wahrscheinlich Mercurial.

  3. Nun öffnen wir platform/xcode/love.xcodeproj mit XCode.

  4. (1) Vergewissert euch das 'love-macosx' als Build Target ausgewählt ist. (2) Optional, kann man schon jetzt unter /Resources sein .love Archiv ablegen. (3) Jetzt wählen wir nur noch unsere Signatur (Provisioning Profile) aus und drücken ⇧⌘I (Build For Profiling).

Nun müssen wir nur noch an die eben erstellte 'love.app' kommen. Wichtig: nehmt unbedingt die Datei aus dem Release Ordner! Das ist die selbe, die man von der offiziellen Webseite bekommt, nur eben von euch selbst signiert.


Mit diesem neuen Wrapper könnt ihr euere Apps im Apple Mac App Store anbieten. Nunja, nehme ich zumindest an, denn ich habs noch nicht persönlich ausprobiert. Aber die Theorie ist auf unserer Seite, Freunde! 😆 Wenn es jemand testen könnte, wäre ich dankbar. (Ich bin mit meinen Babys noch nicht für den App Store bereit und habe daher vorerst keine Apple Developer Subscription.)