D Tutorials

Vorwort:
Drei Monate sind seit meinem letzten Post hier vergangen und Dgame ist immer noch nicht publik…das liegt daran, dass ich seit etwa drei Monaten nun in Hamburg Software System Entwicklung studiere und dementsprechend wenig Zeit hatte/habe.
Aber nun in den Ferien möchte ich meine, in dieser längeren Zeitspanne gesammelten, neuen Erkenntnisse über D sowie meine neu gewonnene Zeit dazu einsetzen, Dgame nochmals zu überarbeiten.

D ist eine wirklich schöne Sprache, doch die Konkurrenz der C-Sytax artigen Programmiersprachen ist groß.
Da gibt es Java, C#, Objektive C und neuerdings auch Google Go und natürlich C & C++.
Und obwohl D “schon” seit 2007 existiert, ist dessen Popularität im Gegensatz zu den oben aufgezählten relativ gering. Im Programmiersprachen Ranking belegt D daher nur Platz 33, während Java, C und C++ die ersten drei Plätze belegen (Quelle).
Viele, wenn nicht sogar fast alle, begnügen sich auf Grund dieser Popularität mit C/C++ und Java bzw. Neuerdings mit der Java Konkurrenz C#.
Der auf sich warten lassende neue Standard C++0x verspricht zwar in der Tat etwas Modernisierung und einen Hauch der Zukunft der zukünftigen Programmierung, jedoch machen sich die wenigsten die Mühe und setzen sich mit den wirklichen Problemen bzw. Fehlentwicklungen der Sprache auseinander und/oder suchen entsprechende Alternativen, wie etwa neuere Programmiersprachen.
Dies mag an der Routine oder zwecks der wesentlich größeren Verbreitung liegen, aber wie schon Peter Rudl sagte:

Routine ist ein tückisches Gift , das schon mehr Katastrophen als mancher Leichtsinn ermöglicht hat.

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:

Kollision

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 »

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 »

Tile-Engine mit XML und D

In diesem Beitrag werde ich zeigen, wie im letzten Artikel schon angedeutet, wie man mit D und XML eine kleine Tile-Engine bastelt um eine auf Tiles basierende Spielkarte zu erstellen.
Ich werde hierbei mit Tiled arbeiten (Download) um daraus mithilfe dieses Tilesets (Achtung groß)

Zeige Tileset »

Tileset

eine Karte zu erstellen und im XML Format abzuspeichern.
Danach werden wir mit Hilfe des XML Parsers und der Image Klasse das Tileset laden, in 16 * 16 Pixel große Kacheln zerschneiden, abspeichern, die mit Tiled erstellte und in XML abgespeicherte Karte laden, und daraus dann ein Bild zu erstellen, welches wir in das Fenster zeichnen lassen.

Ich setze vorraus, dass D auf eurem System installiert ist und ihr die einfache Handhabung kennt, Derelict nutzt und eine passende IDE besitzt, ansonsten empfehle ich vorerst die Tutorials auf http://d.whosme.de/, von Einführung ins D Programmieren bis Code::Blocks: Konfigurieren für Derelict, wobei es Geschmackssache ist, ob ihr später mit Code::Blocks oder mit Eclipse/Descent arbeitet; ich arbeite mit Code::Blocks, da man dort die Keywords manuell hinzufügen kann, da einige dem Editor nicht bekannt sind (Beispiele wären “string” & “invariant”) und ich keine Erweiterung brauche, wie Eclipse z.B. Descent benötigt.
Ersteres ist bei Eclipse nicht der Fall, aber das ist, wie bereits angemerkt, reine Geschmackssache.

Viele Worte, wenige Taten … bisher ;)
More »

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress