Mapeditor Worklog
Übersicht

![]() |
cooloBetreff: Mapeditor Worklog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Heyho!
Da mir aus guten Gründen verwehrt wurde einen Worklog in der Worklogsektion zu erstellen(hat zu wenig mit BB/BMax zu tun), poste ich nun hier die Fortschritte meines Mapeditors. Nun werden sich viele natürlich denken, was das ganze denn nun für einen Sinn habe. Mapeditoren gibt es doch bereits wie Sand am Meer. Nun das ist natürlich richtig, allerdings haben alle diverse Ecken und Kanten, die mich dazu bewogen haben mir den für mich "perfekten" Mapeditor zu schreiben. Angefangen haben meine Versuche damals in B3D mit der EscapeGUI, was leider keine Früchte hervorbrachte. Weiter ging es mit einer Version in BlitzMax mit der MaxGUI, was auch nicht so recht funktionieren wollte. Ob es diesma was wird weiß ich nicht, ich hoffe es jedenfalls! Geschrieben wird das in C# + Windows Forms. Ich habe kein WPF verwendet, weil mir hier die Einbindung von OpenTK zu mühsam war (Ob das überhaupt geht ist mir ein Rätsel, denn WPF rendert ja alles über DirectX). Zusätzlich verwende ich wie bereits erwähnt OpenTK als Grafikschnittstelle + einer kleinen aber feinen Renderingengine (Erinnert stark an Max2D). Die simple 2D Engine wurde so abstrahiert geschrieben, wie nur möglich (Keine abstrakten Klassen sondern interfaces wurden verwendet) wodurch später ohne Weiteres ein DirectX Treiber möglich wäre. Geplante Features: - Beliebig viele Layer: Keine Beschränkung auf drei/vier Layer, wie leider manche Editoren haben. - Üppige Layertypen: Es soll neben reinen Tilelayern auch möglich sein, Eigenschaftslayer(Kollisionslayer, Teleportationslayer, etc. da ist viel möglich!), Animationslayer, Scriptlayer zu definieren. Maps sollen so dynamisch wie möglich sein. - Einfaches laden von Tilesets, mit Vorschaufunktion - Einfaches setzen von Tiles mit praktischen Werkzeugen (Momentan: Stift, Radiergummi, Fülleimer, Linie, Oval und Rechteck) - Rückgängig/Wiederholen Funktion: Da muss ich mir noch was Ordentliches einfallen lassen. - Copy/Paste: Dito - Möglichst Intuitive Bedienung und Berücksichtigung des "Dont Repeat Yourself" Grundsatzes, es soll nicht 100 Varianten geben ein Ziel zu erreichen, eines genügt! Damit habe ich auch versucht keine "OK" Buttons zu inkludieren - Inhalt wird automatisch bei der Eingabe geupdatet, - Ressourcensparendes XML Format: Karten werden als XML gespeichert. Hier läuft man allerdings schnell in Gefahr, dass man die erzeugten Dateien aufbläht (XML kann falsch verwendet ziemlich groß werden). - Mapexporter in nativen Code für folgende Sprachen: BlitzBasic, BlitzMax, GLBasic - Mapexporter in andere Formate: Binär (Schnelles laden), JSON (Verwendung in JavaScript + HTML5) - Möglichst kleiner Umfang, das was der Mapeditor beherrschen soll, soll er gut können, aber nicht mehr! Es soll KEIN Gamemaker werden und auch keine nicht Mapeditor spezifische Sachen (Spriteeditor, Soundeditor, weiß der Guckguck was Editor), ein REINER Mapeditor soll es werden. - Platformunabhängig: Ich weiß nicht in wie weit ich das wirklich bleiben kann, aber grundsätzlich sind die Komponennten, die ich verwende einigermaßen Platformunabhängig. OpenTK ist von Haus aus crossplatform, Windows Forms gibt es eine Monoportierung, nur bei Scintilla (das ist die Syntaxhighlightingengine) bin ich mir nicht ganz sicher. Fortschritt: Die grundlegensten Sachen funktionieren bereits gut. Man kann bereits Karten erstellen, Tiles setzen, Eigenschaftslayer erstellen und auch das Erstellte speichern und nachher laden. Allerdings geht bezüglich Animationen, Scripts, Exportieren und Undo/Redo nichts. Dies werde ich in den nächsten Tagen implementieren. Hier ein kleines Schmankerl zum ansehen: ![]() Zu sehen sind die einzelnen Untereditoren (Tileseteditor, Layeredtior, Propertyeditor und Mapsettings) Diese Karte als XML gespeichert: http://pastebin.com/aycmWxQa (Hat leider das Design zuerschossen, deswegen Pastebin) Ich glaube das ganze ist einigermaßen selbsterklärend. Die kommaseparierten Daten in den "data" Elementen sind die ids der zuvor definierten tiles. Bei Fragen/Anregungen stehe ich gerne zur Verfügung! mfg |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: - Ressourcensparendes XML Format: Karten werden als XML gespeichert. Hier läuft man allerdings schnell in Gefahr, dass man die erzeugten Dateien aufbläht (XML kann falsch verwendet ziemlich groß werden).
Jetzt würde es mich aber interessieren, wie du Mapdaten abspeichern willst und dabei -) den XML-Standard einhalten und -) die Dateigröße klein halten ("ressourcensparend" darf ich doch so verstehen?) willst? Hast du da zufälligerweise ein paar genauere Erklärungen dazu? mfG, Christoph. EDIT: Jetzt erst die verlinkte XML-Datei gesehen... nunja, also reines BIN-Format wäre da bestimmt vom Speicherplatz und von der Ladezeit her schneller, aber ich nehme an genau dafür wirst du n Export dafür anbieten? ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau! Für solche Dinge wird es die diversen Exporter geben.
Das XML Format hat den großen Vorteil, im Vergleich zum Binärformat, dass es Abwärtskompabibel ist, was in der Entwicklungsphase ja wahnsinnig praktisch ist. |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group