Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

15.12.2013, 13:04

als Code Referenz, kann man auch gut das hier Empfehlen

https://github.com/bjorn/tiled

Das ist weniger eine Engine, mehr ein reiner Level Editor. Er bietet sogar einstellungen für die Ecken, https://github.com/bjorn/tiled/wiki/Automapping

Das tolle daran ist, dass man die Karte später Exportieren kann, und die dann in seiner eigenen Favorisierten Sprache verwenden kann..

http://blackscorp.github.io/tiled2crafty/kinetic/ das ist meine JavaScript umsetzung(Bilder sind Open Source, nicht von mir)

12

15.12.2013, 13:27

Ich kenne Tiled schon sehr lange und hab es auch des öfteren benutz. Mein Ziel ist es auch das der Level-Editor ungefähr so umfangreich wird wie der von Tiled.

Daedalus

Frischling

Beiträge: 8

Wohnort: Duisburg

  • Private Nachricht senden

13

15.12.2013, 14:56

Hi!

Mach doch lieber ein Spiel anstatt einer Engine! :P

Nein, ich finde das richtig gut, dass es auch so Leute wie dich gibt, die halt
etwas anderes, also z.B. eine Engine, machen. Das ist ja schließlich kein Forum
ausschließlich Computerspiel-Projekte. ;)

Und dafür das du das in einer Woche gemacht hast, Respekt. :thumbup: Es gibt Leute, die sitzen Jahre an der Planung
eines Spiels und lassen es dann doch Falle.

Also bleib am Ball und viel Spaß noch. :thumbsup:

MfG Merlin

14

15.12.2013, 15:33

Hey, danke für die nette Antwort :)

Zitat


Und dafür das du das in einer Woche gemacht hast, Respekt. :thumbup: Es gibt Leute, die sitzen Jahre an der Planung

eines Spiels und lassen es dann doch Falle.
Inzwischen ist es auch ein bisschen länger her als eine Woche :D

15

17.12.2013, 20:24

So da bin ich wieder, es gibt wieder einige neue Sachen, aber zuerst ein paar Bilder :)



Layer

Das Layersystem ist jetzt so gut wie fertig, man kann jetzt im neuen Layermanager soviele Layer hinzufügen wie man möchte und diese dann auch wieder löschen.


Mapping

Das mapen ist deutlich einfacher geworden da man jetzt nicht mehr klicken muss sondern einfach die Maus gedrückt halten kann. In der nächsten Version wird es dann noch mehrere Brushes zum auswählen geben.




So das wars dann erstmal mit den Neuerungen, für die nächste Version ist das Speichern und Laden der Leveldateien geplant, die dürft ihr dann auch ausprobieren.

LG und schönen Abend noch :)

16

17.12.2013, 20:54

Cool, kann man auch schon was damit programmieren (sry wenn die frage blöd is) ? Ich denke ich werde diese Engine selbst benutzen wenn sie rauskommt, dann könnten wir evtl. ja was zusammen machen?
Grüße, Suskritor :thumbup:

Zitat

Die wichtigste Eigenschaft eines Programmierers ist vorausschauende Faulheit.


17

17.12.2013, 21:17

Nein, das geht derzeit noch nicht, wird aber eines der nächsten Dinge sein die Implementiert werden. Ich würde mich riesig freuen wenn du die Engine benutzen würdest, und hätte auch nichts gegen eine Zusammenarbeit :)

18

11.02.2014, 15:13

So, nach langer Zeit melde ich mich mal wieder, ich habe die letzten 2 Monate eigentlich nur an der Engine gearbeitet und dabei festgestellt, dass es für meinen derzeitigen Wissensstand einfach zu schwer ist und mich deshalb entschieden anstatt einer Engine an dem 2D Leveleditor weiter zu machen. Seit vorgestern sitze ich also wieder an dem Editor und habe schon einige neue Dinge implementiert.

Hier ist das Fenster zu sehen das sich jetzt öffnet wenn man eine Tilemap laden will, man kann nun die TileSize beliebig ändern und er erkennt wenn die breite und höhe des bildes nicht zu der tilesize passen.


Es gibt jetzt ein Pen- und ein Fillwerkzeug, mit dem Pen malt man wie gewohnt und kann auch die größe einstellen. Mit Fill wird die komplette Map gefüllt.


Man kann nun außerdem die Transparenz aller Layer einstellen was ein ziemlich nettes Feature ist wie ich finde.


So das wars erstmal von dem Editor, es gibt heute leider noch keinen Download da ich noch nicht das Speichern komplett drin habe und erst warte bis es fertig ist. Das sollte aber auch nurnoch 2-3 Tage dauern. Ich würde auch ganz gerne ein paar Vorschläge von euch haben wie ich die Map am besten in einem Textdokument oder einer XML-Datei speichern kann. Ich hätte momentan folgende Idee:


[Layer 1]
0 0 0 0
0 1 1 0
0 1 1 0
0 0 0 0

[Layer 2]
....

Was haltet ihr davon?

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

19

11.02.2014, 16:40

Ich weiß nicht, welches Framework/welche Bibliothek du für den Editor (die grafische Oberfläche) verwendest, allerdings solltest du nach Möglichkeit mal nach einem Docking-System schauen. Es bringt zwar einen gewissen Aufwand, dieses gänzlich zu integrieren (nicht nur das einfügen des Managers und dynamische hinzufügen und entfernen der Panels, sondern auch bspw. die Serialisierung und Deserialisierung, Mindest- und Maximalgrößen für alle Panels definieren, Unterbringen von Paneloptionen, ggf. das Verwalten der Layouts, ...), hat man es aber erst einmal drin, ist es ein enormer Gewinn für die Usability. Vor nicht all zu langer Zeit hatte ich auch mit dem Schreiben eines Editors angefangen, bei dem ich recht schnell ein solches Docking System eingebaut habe. Für das Layout dachte ich mir erst, dass eine ganz bestimmte Anordnung ganz sinnvoll wäre (auf der linken Seite unten eine Projektübersicht unten, darüber das Tileset zur Auswahl der Tiles für die Bearbeitung und darüber die Werkzeuge (Malen, Füllen, ...) und Optionen (Freihändig, Linie, Rechteck, ...). Nach vielen Test in einem anderen Bereich (Serialisierung) und dem dafür notwendigen ständigen neu Anordnen ist mir dann aufgefallen, dass die Wrkzeuge links neben dem Tileset besser aufgehoben sein könnten und musste sie nur dort hin ziehen (und nicht irgendwas im Code ändern). Sollte ich dort in der Breite mal nicht genug Platz haben, könnte für mehr Breite sorgen.
Solltest du ein Docking System haben, kannst du für jeden Tabinhalt der rechten Seite bereits ein Panel anlegen und diese dann frei hin und her schieben (oder wahlweise so liegen lassen).

Ansonsten noch ein paar Kritikpunkte am Interface:
Bei der Mapansicht und (vermutlich) der Tilesetansicht lassen die Scrollbars darauf schließen, dass der Inhalt dieser Container weit größer ist, als er es eigentlich sein müsste. (Es befindet sich alles im sichtbaren Bereich, aber dennoch kann man scrollen.) Das solltest du unbedingt noch so anpassen dass man auch nur so weit scrollen kann, wie Inhalt vorhanden ist.
Es ist zwar eher eine Kleinigkeit, bei einer sauberen Herangehensweise dürfte es aber kein Problem darstellen: Die Map ist nicht zentriert. Da die Map in der Regel das wesentliche Element ist, an dem man arbeitet, sollte es sich auch mittig befinden (nicht nur vom Layout der Elemente her, sondern auch innerhalb seines Containers. In meinem Editor ist das so gelöst, dass ich ein Steuerelement für die Map selbst habe, dessen Größe sich nach der Map (und später der eingestellten Darstellungsgröße) richtet, welcher (bisher nur) in den "MapEditor" (oder eher in einem SCrollViewer dessen) eingebunden wird, welches eine Größe entsprechend der Platzierung im Layout erhält und zusätzlich noch Steuerelemente für die Bearbeitungs (welche Ebene bearbeitet werden soll) und Darstellungsoptionen (wie groß soll die Map dargestellt werden) liefert.
Es ist zwar auch wieder eher eine Kleinigkeit, aber der Hintergrund des Mapcontainers (aus das, was um die Map herum dargestellt wird) sollte nicht weiß bleiben. Weiß liefert im ungünstigsten Falle einen sehr großen Kontrast mit dem eigentlichen Inhalt, was für die Augen anstrengender ist, als ein grauer Hintergurnd. (In dem Fall finde ich WPF gut, weil ich dort mit XAML ein Muster als Ressource definieren konnte, die als Hintergrund für den Mapeditor und die Tile-Auswahl dient, wofür nur die Zuweisung notwendig war. =) ) Ein Muster wäre meiner Meinung nach in diesem Falle auch besser, da man so Transparenzen der Map erkennen kann. (Sollte zwar nicht so sein, kann aber passieren.) Außerdem finde ich, dass mein Editor dadurch (und durch den verwendeten Style, der sehr nach Visual Studio 2010 aussieht) schon wesentlich besser aussieht (auch wenn bisher kaum Funktionalitäten implementiert sind, so fehlen eine Bearbeitungshistorie, Laden und Speichern von Maps, ...).
Die Position der + und - Buttons unter "Tiles" ist unschön. Siem acht zwar eine Zugehörigkeit zum oberen Feld kenntlich, passt aber nicht zur Höhe des Buttons links daneben. Dort wäre ein Abstand der beiden "Elementsammlungen" (Liste/Tileübersicht und die zugehörigen Button) angebracht, sodass die Zugehörigkeit eindeutig ist, es aber dennoch gut aussieht. (Zum Verständnis: wenn man eine horizontale Linie zur Abgrnzung durchziehen kann und die Zugehörigkeiten noch erkennbar sind, ist es richtig/so wie ich es meine.)
Die Gruppierungen im "Dialog"-Dialog sind unsinnig, da bisher nur einzelne Elemente gruppiert werden. Sollten später weitere Optionen hinzukommen, dann haben die Gruppen durchaus ihre Berechtigung, so sollte es aber nicht bleiben...
Der Button im gleichen Dialog hat keine Beschriftung.


Mapformat:
Im Falle von Maps halte ich XML für weniger Sinnvoll. Daten einer XML-Datei besitzen eine hierarchische Struktur, wodurch sich hierarchische Daten damit auch gut abspeichern lassen. Tabellarische Daten (feste Anzahl an Reihen und Spalten) lassen sich damit weniger gut speichern. Abgesehen von dem immer vorhandenen Problem, dass das Dateiformat keine gleichmäßige Anzahl von Reihen oder Spalten sicherstellen kann (ist bei CSV bspw das gleiche), hat man dann entweder für jede Reihe/Spalte ein Element und für jedes Datum ein Element, was für einen großen Overhead sorgt, oder man hat im XML eingebettet wieder Inhalt eines anderen Formats (bspw. CDATA).
Das Format, was du bereits hast, kannst du auch erst einmal weiterverwenden.
Ich speichere in meinem Maps (bisher) am Anfang zeilenweise Daten, wie die Größe, das Tileset etc., gefolgt von den Tiles der Map, die je Zeile durch Komma getrennt die Zeilen der Map darstellen, im Gegensatz zu deinem Format aber nicht durch "[Layer X]" unterteilt werden.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

20

11.02.2014, 18:11

@Sacaldur Erstmal danke für diesen außergewöhnlich langen und hilfreichen Beitrag :)

Zitat


Ich weiß nicht, welches Framework/welche Bibliothek du für den Editor
(die grafische Oberfläche) verwendest, allerdings solltest du nach
Möglichkeit mal nach einem Docking-System schauen. Es bringt zwar einen
gewissen Aufwand, dieses gänzlich zu integrieren (nicht nur das einfügen
des Managers und dynamische hinzufügen und entfernen der Panels,
sondern auch bspw. die Serialisierung und Deserialisierung, Mindest- und
Maximalgrößen für alle Panels definieren, Unterbringen von
Paneloptionen, ggf. das Verwalten der Layouts, ...), hat man es aber
erst einmal drin, ist es ein enormer Gewinn für die Usability. Vor nicht
all zu langer Zeit hatte ich auch mit dem Schreiben eines Editors
angefangen, bei dem ich recht schnell ein solches Docking System
eingebaut habe. Für das Layout dachte ich mir erst, dass eine ganz
bestimmte Anordnung ganz sinnvoll wäre (auf der linken Seite unten eine
Projektübersicht unten, darüber das Tileset zur Auswahl der Tiles für
die Bearbeitung und darüber die Werkzeuge (Malen, Füllen, ...) und
Optionen (Freihändig, Linie, Rechteck, ...). Nach vielen Test in einem
anderen Bereich (Serialisierung) und dem dafür notwendigen ständigen neu
Anordnen ist mir dann aufgefallen, dass die Wrkzeuge links neben dem
Tileset besser aufgehoben sein könnten und musste sie nur dort hin
ziehen (und nicht irgendwas im Code ändern). Sollte ich dort in der
Breite mal nicht genug Platz haben, könnte für mehr Breite sorgen.

Solltest du ein Docking System haben, kannst du für jeden Tabinhalt der
rechten Seite bereits ein Panel anlegen und diese dann frei hin und her
schieben (oder wahlweise so liegen lassen).
Ich bin mir gerade nicht so 100% sicher wie du es meinst, sollen die User das Layout verändern können oder soll ich es schnell verändern können? Da ich mit QT arbeite und ich ziemlich faul bin habe ich das Layout schnell zusammengeklickt und kann es daher auch beliebig verschieben ohne großen Aufwand.

Zitat

Es ist zwar eher eine Kleinigkeit, bei einer sauberen Herangehensweise
dürfte es aber kein Problem darstellen: Die Map ist nicht zentriert.
Ich fand es einfach schicker als wenn die Map zentriert ist, standardmäßig ist sie auch in der Mitte.

Zitat

Es ist zwar auch wieder eher eine Kleinigkeit, aber der Hintergrund des
Mapcontainers (aus das, was um die Map herum dargestellt wird) sollte
nicht weiß bleiben. Weiß liefert im ungünstigsten Falle einen sehr
großen Kontrast mit dem eigentlichen Inhalt, was für die Augen
anstrengender ist, als ein grauer Hintergurnd. (In dem Fall finde ich
WPF gut, weil ich dort mit XAML ein Muster als Ressource definieren
konnte, die als Hintergrund für den Mapeditor und die Tile-Auswahl
dient, wofür nur die Zuweisung notwendig war. =) ) Ein Muster wäre
meiner Meinung nach in diesem Falle auch besser, da man so Transparenzen
der Map erkennen kann. (Sollte zwar nicht so sein, kann aber
passieren.) Außerdem finde ich, dass mein Editor dadurch (und durch den
verwendeten Style, der sehr nach Visual Studio 2010 aussieht) schon
wesentlich besser aussieht (auch wenn bisher kaum Funktionalitäten
implementiert sind, so fehlen eine Bearbeitungshistorie, Laden und
Speichern von Maps, ...).

Die Position der + und - Buttons unter "Tiles" ist unschön. Siem acht
zwar eine Zugehörigkeit zum oberen Feld kenntlich, passt aber nicht zur
Höhe des Buttons links daneben. Dort wäre ein Abstand der beiden
"Elementsammlungen" (Liste/Tileübersicht und die zugehörigen Button)
angebracht, sodass die Zugehörigkeit eindeutig ist, es aber dennoch gut
aussieht. (Zum Verständnis: wenn man eine horizontale Linie zur
Abgrnzung durchziehen kann und die Zugehörigkeiten noch erkennbar sind,
ist es richtig/so wie ich es meine.)

Die Gruppierungen im "Dialog"-Dialog sind unsinnig, da bisher nur
einzelne Elemente gruppiert werden. Sollten später weitere Optionen
hinzukommen, dann haben die Gruppen durchaus ihre Berechtigung, so
sollte es aber nicht bleiben...

Der Button im gleichen Dialog hat keine Beschriftung.
Danke für die Tipps, falls ich wieder Zeit für sowas habe werde ich es umsetzen. Ich habe mir ja, wie oben bereits gesagt, alles schnell zusammengeklickt und noch nicht über eine sinnvolle Aufteilung nachgedacht.

Werbeanzeige