Dgame beta
Dgame geht endlich online. Der Doku fehlt es zwar noch an ausführlichen Beschreibungen der einzelnen Modul Methoden, jedoch sollten die meisten selbsterklärend sein, zudem gibt es ja einige Beispiele
Vervollständigt wird die Dokumentation aber dennoch noch.
Die Doku und das Framework an sich kann hier angesehen bzw. runtergeladen werden.
Wie auch schon der Titel sagt, ist Dgame zur Zeit nur eine Beta Version (um genauer zu sein Version 1.3), also nicht groß getestet, nur um Beschwerden vorzubeugen.
Dgame wird also weiter entwickelt.
Sprites, Nachtrag
Vor einiger Zeit verfasste ich ja bereits ein Tutorial zu Sprites und der zugehörigen Klasse.
Mittlerweile weiß ich, dass das ganze wesentlich einfacher bzw. besser ginge, unter anderem mittels des Keywords @property.
More »
Sprites in Aktion: Ziele anvisieren & Winkelberechnung
In diesem Beitrag will ich euch zeigen, wie man Geschosse an sich, deren Flugverhalten und -richtung, die (Neu-)Positionierung dieser, sowie das Anvisieren von Zielen in Spielen realisiert.
Einige von euch werden sicher schon einmal ein kleines Spiel geschrieben haben (oder haben es zumindest vor
) , in dem es darum geht, bestimmte Dinge abzuschießen (à la Moorhuhn oder Canon) oder bestimmte Dinge (Geschosse, Raketen, Bälle u.a.) in eine bestimmte Richtung zu bewegen, auf ein Ziel zu (z.B. bei Pong oder Canon), wie hier zu sehen:

Das Szenario: Der Raketenwerfer soll das anvisierte Ziel (hier das Flugzeug) treffen.
In Spielen oder in eben dieser Grafik sieht das ganze zwar ziemlich einfach aus, aber was wirklich alles berechnet werden muss bzw. welch’ (relativer) Aufwand es ist, die Rakete zielgenau auf das Flugzeug zu bewegen, das wissen die wenigsten.
More »
Dgame – pygame für die D Programming Language, Preview
Für die bisher im weiten Spektrum der Spieleprogrammierer recht unbekannte Sprache D Programming Language, welche im Grunde eine weiterentwickelte Form von C++ ist und so gut wie alle, wenn nicht alle, Vorzüge aus C++ besitzt, existieren zur Zeit leider noch recht wenige Lib’s und Frameworks. Dabei weist D viel weniger Mängel & Komplexität auf und ist dazu weniger überladen & wesentlich einfacher zu erlernen, laut meiner bescheidenen Meinung jedenfalls. Dazu kommt, dass die meisten Features und Weiterentwicklungen vom neuen aber noch auf sich warten lassenden Standard von C++ (C++0x) bereits implementiert sind und D somit eine Art modernes C++ darstellt.
Darüber hinaus ist die gesamte C Bibliothek fester Bestandteil und somit ist C Kompatibilität absolut gewährleistet.
Allerdings ist D viel zu neu, als das so viele Frameworks wie für C++, welche ja schon seit anno ’79 auf der Welt ist (D seit 2007, Quelle zu C++, Quelle zu D), existieren könnten. Durch das Projekt Derelict existiert allerdings ein Binding für einige C++ Bibliotheken (darunter SDL & OpenGL bspw.) und auch Allegro existiert bereits in D.
Als alter Python und Pygame Fan vermisste ich allerdings die Einfacheit und vorallen die Objekt-orientierte Benutzung einer solchen Lib., denn sowohl die SDL als auch OpenGL sind beinahe (mir fällt im Moment kein Objekt-orientiertes Beispiel ein) komplett funktional, und das liegt nicht an dem D – Binding, denn auch in der offiziellen Dokumentation zur Erklärung von SDL ansich und dessen Funktionsweise finden sich nur Funktionen, keine Klassen.
Die einzige Grafik Bibliothek in C++ die mir daher gefiel war SFML, da sie völlig Objekt-orientiert funktioniert.
SFML gibt es bereits für Python (PySFML) und auch für D existiert ein Binding (DSFML). Allerdings wird, auf Grund der bis dato mangelnden Verbreitung und Neuheit der Sprache, bisher eher zögerlich an DSFML gearbeitet, weswegen die aktuellste Version auf der 1.3′er Version von SFML beruht, wobei SFML für C++ bereits bei der 2′er Version angelangt ist (Quelle).
Deswegen entschied ich mich letzlich für Derelict. Auch dort existiert zwar ein Binding für SFML, doch dieses wird von Derelict (bislang?!) leider nur Funktional angeboten, was den ganzen Effekt zunichte macht.
Also setzte ich mich daran, einen solchen OOP Wrapper auch für D zu schreiben, welcher, wie Pygame, auf der SDL aufbaut.
More »
Sprites
Da bin ich wieder. Leider hat es diesmal etwas länger gedauert, ich war abgelenkt von diversen Projekten, die wohl auch in den nächsten Tagen hier gepostet werden.
Zum einen bin ich aktuell dabei für D eine pygame ähnliche Engine Struktur zu schaffen, da mir der ganze funktionale Code von SDL, statt Objekt Orientiertierung, wie ich es eben von pygame und generell von Python gewohnt bin, mächtig auf den Nerv geht.
Zum anderen haben ein paar Kollegen und ich beschlossen, ein Adventure Spiel zu entwickeln, wahrscheinlich in Python.
Aber in diesem Artikel möchte ich erklären, wie man Sprites auf die dazugehörige Karte zeichnet, so wie angekündigt.
Das mag für den einen ganz einfach klingen, ein Sprite ist ja nur eine Spielerfigur, sprich eine Grafik, also laden und an verschiedene Positionen blitten … oder doch nicht?
More »