So, das sieht noch nach nicht viel aus, aber es ist tatsächlich schon eine ganze Menge passiert:
Zu allererst mußte ich ein paar grundlegende Fragen klären: wie speichere und lese ich die Maps aus, welche Daten sind besser in einem Array aufgehoben, und was verwalte ich als Elemente in einer strukturierten Liste (Objekte)?
Zudem habe ich mich entschlossen, Auflösungs-unabhängig zu arbeiten, das heißt, daß Spiel erkennt die aktuell eingestellte Fensterbreite und -höhe und passt das Spielfenster dementsprechend an; alle Sprite-Dateien werden entsprechend skaliert.
Die klassische Map-Größe (Anzahl der Tiles) bei "Kalawaum" war 20*40, soviel konnte ich aus folgendem Video rekonstruieren, lol.
https://www.youtube.com/watch?v=wOgAzdbGTEA
"Kalawaum" ist Modul-basiert: man lädt ein Abenteuer, die Architektur ist fix, aber bestimme Aspekte des Spiels werden bei jedem Neustart randomisiert, was für immensen Wiederspielwert gesorgt hat. Also zum Beispiel waren Waffen und Schilde immer an denselben Orten, aber welche Waffe man letztendlich gefunden hat, war immer anders. Monstertypen, Anzahl und deren Location waren komplett zufällig. Schlüssel und zugehörige Türen waren fix, aber Türarten mit den respektiv zugehörigen Schlüsseln wurden ebenfalls randomisiert (für jedes Tür/Schlüssel-Pärchen wurde 1 von 3 Türarten ausgewürfelt), so war eine grobe Richtung vorgegeben, aber man konnte doch in jedem Spielverlauf andere Bereiche entdecken; ich werde mir erlauben eine optionale Möglichkeit einzubauen, Türen auch via Gewalt zu öffnen. Da geht dann natürlich irgendwas kaputt, oder sonstwas passiert damit es nicht die bevorzugte Methode bleibt, denn im Original konnte man sich allzu häufig in Dead End-Situationen manövrieren, wenn man die Schlüssel nicht in optimal vorgeschriebener Reihenfolge genutzt hat.
Man braucht also einen Editor um Module zu erstellen ...
Damit zusammenhängend kam die nächste Frage: erst Editor programmieren oder das Spiel? Habe mich dann für die dritte Option entschieden: beides gleichzeitig! Und zwar so synergetisch wie möglich, so daß man jederzeit während dem Editieren ins Spiel hüpfen kann um was zu testen, und dann ohne Zeitverlust direkt zurück in den Editor.
FORTSCHRITT BIS JETZT:
- Eine "Sprite-Factory" eingerichtet, die Grafiken initialisiert und in den Speicher lädt
- Man kann im Editor mit der linken Maustaste Wände malen und mit der rechten löschen
- Mit via Hotkey kann man eine Spielerposition an die entsprechende Mausposition setzen
- Man kann Maps speichern und laden
- Man kann ohne Umschweife in den Play-Modus switchen und die Map "spielen", also sich auf freien Feldern mit den NumBlock-Tasten bewegen (8 Richtungen)
- Durch gedrückt halten der Richtungstaste kann man schnell weite Strecken überwinden