Lang ists her, und lang wird es noch dauern, aber viele, die mich kennen, wissen vielleicht, dass ich an einem RPG schreibe. Nachdem ich mich mit C, C++ und Java rumgeärgert habe, wobei C noch relativ gut ging, Java auch angenehm war, C++ jedoch grottig, habe ich Common Lisp und dessen Objektsystem überzeugend gefunden, und die Eigenschaft, dass die Implementationen von CL meistens so gut gestaltet sind, dass man grauselig inefficient schreiben kann, und der Compiler den Code sehr gut optimiert, und dementsprechend programmiere ich eigentlich nur noch damit.
Inzwischen bin ich auch (im Grunde schon seit fast einem halben Jahr, aber mei, keine Zeit zum Programmieren) mehr oder weniger so weit, dass die Kollisionsengine und der Rest ziemlich stabil laufen, und freue mich darauf, jetzt bald wieder hoffentlich Zeit zu haben, um dann auch mal endlich etwas würdiges daraus zu machen.
Hier mal ein vorläufiger Screenshot – ich habe die Spielfigur verwischt, da ich da einen Sprite benutzt habe, der Kopiergeschützt ist – ist auch eher ein Platzhalter für spätere Grafiken. Ansonsten sind die Sprites nicht von mir – ich schreibe die Engine, etc., aber die Grafiken macht jemand anderes. Arbeitsteilung ist gut.
Sieht jetzt noch nicht so berauschend aus, da es momentan wirklich an Grafiken mangelt – die Bäume fungieren da z.B. als Gegner, Hintergrund habe ich bisher keinen, aber ich denke, dieser Screenshot ist ein guter Anfang, um über die Entwicklung des Spiels zu berichten.
Zur Erzeugung der Grafik benutze ich
Lispbuilder-SDL und Lispbuilder-SDL-Image, bzw. alternativ auch
cl-png. Ansonsten sind die Entwicklungs-Implementationen, deren Kompatibilität primär angestrebt wird,
CLISP und
SBCL, denn SBCL ist sehr schnell, und CLISP zwar etwas langsamer, aber auf schnellen Rechnern ausreichend schnell, und ziemlich Portabel, Verglichen mit SBCL, das manchmal Probleme macht. Ursprünglich wollte ich das Ganze auch auf
ECL benutzbar machen, das habe ich aber bisher nicht geschafft, das ist auch ziemlich schwierig, da ECL von lispbuilder-sdl noch nicht officiell unterstützt wird – zumindest bis vor Kurzem noch nicht. Ich hab es probiert, einige Dinge anzupassen, aber das, was dann letztendlich Funktioniert hat, war viel zu langsam, um Nützlich zu sein. Sprich: Ich spekuliere mal darauf, dass es irgendwann funktionieren wird, aber CLISP ist portabel und schnell genug, und dessen einziger Nachteil ist eigentlich, dass es in der stabilen Version keine Threads unterstützt, aber nachdem es bereits experimentelle Threadunterstützung gibt, denke ich, ist auch das nur eine Frage der Zeit. Unter
Allegro Common Lisp unter Linux funktioniert das Ganze bisher auch. Plattformen sind erstmal nur Linux und Windows, einfach, weil ich keinen Mac habe, um das Ganze zu testen, ich denke aber, es sollte keine Probleme geben, da CLISP und Lispbuilder auch auf diesem System meines Wissens relativ Problemfrei laufen – vielleicht wird es ja auch das erste größere Projekt, das auf
Toilet Lisp portiert wird (scnr). Solaris und andere Systeme werde ich vielleicht auch irgendwann ausprobieren, auch da sollte es kein zu großes Problem sein.
Aber genug der Vorfreude. Jetzt gibt es erstmal einiges zu Tun. Neben den paar Dingen, die ich noch implementieren muss (eigentlich fehlen momentan nur sinnvolle Routinen, um sowas wie „Schwerthiebe“, also Nahkampfwaffen, zu programmieren), kommt dann natürlich der kreative Part. Ich warte also sehnsüchtig auf meine nächsten Ferien, sodass ich endlich wieder Zeit dafür habe.