Schlagwort-Archive: Programmierung

Tilemap Editor

Ich arbeite zur Zeit an einem kleinen Tilebased 2D RPG. Das Spiel wird in C++ und mit der Library Allegro geschrieben. Ein Projekttemplate und die Story des Spiels ist fertig. Bevor ich jetzt anfange mich in Tilemap Editoren wie Tiled und Mappy ein zu arbeiten, habe ich mir überlegt einen eigenen Tilemap Editor zu schreiben.

Es soll aber nicht nur ein einfacher Editor für Maps werden. Es soll auch die Möglichkeit geben weiteren Content wie Items, Dialoge etc zu erstellen und zu verwalten. Das ganze wird dann mit Java und Java Swing um gesetzt.

Was soll der Editor können?

Core:

  • Erstellung von 2D Tilemaps mit verschiedenen Layern wie Basegrounds, Objektlayer, Collision, Events und und..
  • Export / Import – XML und Textfiles (Sollte es bessere alternativen für ein Dateiformat geben, wird dieses auch implementiert)
  • Verwaltung von Tilesets
  • Api / Parser für das Spiel um mit den erstellten Daten zu arbeiten

Wenn dieser Teil fertig ist, kommen noch weitere Features hin zu, die mir das Programmieren erleichtern werden.

  • Erstellung von Dialogen
  • Erstellung von Items
  • Erstellung von NPC’s

Jetzt noch ein kleiner Screen vom aktuellen Entwicklungsstand:

Man kann zwar noch nicht viel erkennen aber ich wollte euch damit auch zeigen, dass das ganze nicht nur gerde ist. Sobald alle Elemente der GUI fertig sind, setze ich mich an das Datenmodell für den Editor. In diesem Sinne.. bis zur nächsten Neuigkeit.

Veröffentlicht unter Allegro, Allgemein, Java, Programmierung, Projekte | Verschlagwortet mit , , , , , , , | Hinterlasse einen Kommentar

Gut Programmiert != gut Dokumentiert

Jaja wenn man nur ans Programmieren denkt, fällt es einem doch etwas schwer eine gute Dokumentation zu schreiben und zwar noch vor der eigentlichen Programmierung. Ich persönlich finde es schwerer eine Dokumentation nach der Programmierung zu erstellen auch in Beruflichen Projekten.

Tut euch selber einen gefallen und dokumentiert vor der eigentlichen Programmierung! Das ganze mag zwar etwas trocken sein aber es erleichtert die Programmierung später um einiges. Gerade, wenn man an einem Hobby-Projekt basteln möchte..

Veröffentlicht unter Programmierung | Verschlagwortet mit , | Hinterlasse einen Kommentar

Tilemap Übung mit Tiled

2D Tilemap Innenraum

Das kommt heraus, wenn man ein wenig mit Tiled experimentiert. Das Tileset habe ich nicht selbst erstellt und es sind wohl zu viele Türen vorhanden. Als nächstes muss ich diese Map nur einlesen und fange dann mit ein paar Interaktionen an wie z.B das Bewegen eines animierten Sprites auf dieser Map, Kollisionserkennung usw.

Tiled ist ein einfach bedienbarer 2D Level Editor. Die Tilemaps lassen sich in ein XML-Format speichern, welches dann in das Spiel eingelesen werden kann. Jetzt muss ich mir nur noch einen XML Parser für das TMX Format schreiben. Es scheint zwar ein, zwei vorhandene Parser zu geben aber die habe ich noch nicht getestet.

Um den Umgang mit Tilemaps zu lernen habe ich vorher einfache Maps als zweidimensionales int Array mit Referenzzahlen auf ein Tile verwendet. Das sieht z.B so aus:

unsigned int tilemap[MAP_HEIGHT][MAP_WIDTH] = {
 
	{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
	{ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 1 },
	{ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,	0, 1 },
	{ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 3, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
	{ 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 0, 6, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
	{ 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};

Bei so einem gewusel ist ein 2D Level Editor schon besser. Zwar am Anfang etwas mehr Aufwand fürs Parsen aber dann sollte es schnell vorran gehen ^^

Veröffentlicht unter Programmierung | Verschlagwortet mit , , , , , , | Hinterlasse einen Kommentar

[Tutorial] Hinzufügen eines Icons in ALLEGRO_DISPLAY

Heute möchte ich euch ein Beispiel zeigen, wie ihr eurem Spiel ein eigenes Icon geben könnt.

Wie man mit der Allegro Library um geht setze ich vorraus. Wichtig ist, dass wir das Icon erst zum Display hin zu fügen können, wenn wir das Allegro Display initialisiert haben.
(weiterlesen…)

Veröffentlicht unter Allegro, Programmierung, Tutorials | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

[C++] Allegro Image Handler

Ich arbeite zur Zeit an einem kleinen 2D Spiel mit der Allegro Library. Dabei kam irgendwann der Zeitpunkt wo ich mir mehr Gedanken um die Verwaltung der Bilder im Spiel machen musste. Heraus kam der Image Handler. Also warum kein Tutorial darüber schreiben?

In diesem kleinen Tutorial möchte ich euch anhand eines Beispiels die Idee und Vorgehensweise des Image Handlers erklären. Die Idee ist mit sicherheit nicht neu aber dennoch empfehlenswert. Das ganze habe ich in C++ geschrieben (weiterlesen…)

Veröffentlicht unter Allegro, Programmierung, Tutorials | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar