
Zitat von
kddc.l3usch:
Welche Schnittstelle benutzt du für deine Engine?
Meine Engine ist speziell für Rapid Game Prototyping entwickelt worden, sodass es auch gut für 48 Stunden-Contents (Ludum Dare, Global Game Jam o.ä.) verwendet werden kann. Für meine Engine wird nicht unbedingt Lazarus oder Delphi als
IDE gebraucht, irgendein Texteditor und ein installierter FreePascal-Compiler reicht, dazu werden dann Build-Skripte und Makefiles zum Kompilieren bereitgestellt, die dann z.B. unter Mac
OS X auch bereits eine Anwendung daraus erstellen, die fertig zur Vervielfältigung ist.
Momentan unterstütze ich die Plattformen Mac
OS X, Linux, Windows und
GP2X. An der iPhone-Unterstützung arbeite ich gerade, leider ist momentan Klausurenzeit, deshalb wird das noch etwas dauern.
Grafik-
API: SDL (+
OpenGL optional oder alternativ GLFW +
OpenGL)
Image Loading: Momentan SDL_image und selbstgeschriebenen kleinen Texture-Loader, künftig aber
Vampyre Imaging
Textausgabe: SFont für Bitmapfonts, SDL_ttf für TrueTypeFonts
Soundausgabe: SDL_mixer
Scripting: Lua
Vom grundsätzlichen Design ist meine Engine ähnlich wie
Gosu/
Slick aufgebaut: Man hat eine Basisklasse, die abstrakte Methoden (Initialize, Render, Update) bereitstellt. Davon leitet man eine Klasse ab, ruft den Super-Konstruktor auf und füllt die Initialize, Render und Update wie gewünscht aus. In Initialize sollen die Objekte erstellt und Daten geladen werden; in Render sollen die Objekte gezeichnet werden und in Update sollen User-Events abgefragt und Spiellogik implementiert werden. GameStates sind nach änhnlichem Muster aufgebaut.
Beispielcode dazu, wenn es dich interessiert:
http://www.freeze-dev.de/files/Elysi...htly100127.zip (3,2 MB; nur das Framework mit ein bisschen Beispielbilder und Beispielmusik)
http://delphipraxis.net/topic164357_...n+defense.html (Spiel, schon ein bisschen älter)
Hab dir auch mal eine PM gesendet.
Was mich noch interessiert, wie sieht es mit der Plattformunabhängigkeit aus? Ist es geplant? Es bietet sich ja regelrecht an, wenn man auf
OpenGL und OpenAL setzt.