Für mich ist Lua einfach die beste Programmiersprache mit der ich bisher zu tun hatte - und ich habe einige andere ausprobiert! Ich liebe Lua, deshalb programmiere ich exklusiv in Lua und propagiere diese Sprache wo ich nur kann. Doch wenn man sich, wie ich, für eine konkrete Programmiersprache entscheidet, ist man an eine Handvoll von Framework / Engines gebunden. Zwei davon, spreche ich in meinem Buch an (noch immer in Arbeit): LÖVE und Codea. Codea ist ein besonders schönes und nützliches Werkzeug und kaum ein anderes Tool kommt an dieses heran. Aber es gibt eine Alternative, dessen Entwicklung ich seit Jahren mitverfolge: Polycode.

Heute fiel mir auf, dass der Entwickler seine Website erneuert hat und endlich kompilierte Dateien zum Download anbietet. Vorher musste man das Framework aufwändig von der GitHub Repo downloaden und den Source selbst kompilieren. - Ein langer Prozess der mit Bugs und Fehlermeldungen verbunden war. Jetzt gibt es endlich ein fertiges Produkt zum testen. Der Status: Beta! Das kann nur bedeuten, dass wir uns einer stabilen, ersten Version nähren und neue Features direkt vor der Tür stehen, namentlich: iOS und Android Support! (Derzeit werden OSX, Windows und Linux unterstützt.) Und das sind aufregende Neuigkeiten.

Interessant ist, wie Polycode funktioniert: es ist ein C++ Framework und besitzt eine optionale Benutzeroberfläche, vorzüglich um darin in Lua zu arbeiten. Man kann es also in C++, Lua oder in Kombination benutzen und das mit oder ohne der GUI. Ungewöhnlich ist auch, dass die Lua API die C++ API widerspiegelt. Diese API's werden automatisch generiert, statt einfache Wrapper zu sein. Der geschriebene Code, egal ob in C++ oder Lua, ist demnach gleich und lässt sich mit einem Klick auf alle unterstützte Plattformen exportieren. Und damit die App auf allen Plattformen identisch funktioniert (Performance, Aussehen, Funktion), wird der Code in native Elemente der jeweiligen Plattform umgewandelt.

Nett finde ich auch, wie die API aufgebaut ist, und dass vieles, zumindest in Lua, abstrahiert und vereinfacht wurde. So braucht man Objekte nicht selbst in einem Loop zeichnen, wie es in Codea und Löve üblich ist, sondern fügt sie einfach einem SceneManager zu und dieser übernimmt den Rest. Weiterhin gibt es erweiterte Klassen, Events und viele andere Spielereien, die einem Programmierer das Leben einfacher machen.

Das Framework ist open-source, cross-plattform, lässt sich in C++ und Lua programmieren, hat eine grafische Benutzeroberfläche, und ist zudem völlig kostenlos! Das einzige derzeitige Manko: es gibt noch zu wenig gute Tutorials, besonders zur Lua API. Das ist einerseits verständlich - da es nur einen Entwickler gibt, der nebenbei Vollzeit arbeiten muss - andererseits liegt das daran dass die Community noch sehr klein ist, was mit dem ersteren zu erklären wäre. Nichtsdestotrotz gibt es endlich wieder frischen Wind um das Framework und wir dürfen uns auf mehr freuen.

Laut Entwickler orientiert sich Polycode übrigens, zumindest 'äußerlich', an Unity3D und wird, meiner Meinung nach, allmählich zum ernstzunehmenden Mitspieler.