Ergebnis 1 bis 20 von 33

Thema: Simple-2D-Engine

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Hu, also damit du nicht ganz ohne Feedback bleibst, werd ich dir mal einige Punkte aufzählen, die mir gefallen und die mir nicht gefallen!
    Ich hoffe ich hab nichts vergessen und auch alles soweit getestet. :S

    Positiv
    • Vorschaufunktion spezieller Objekte
    • Reinziehen der "Weltobjekte" und das Bewegen dieser im Editor selbst
    • So wie es aussieht, die Möglichkeit zu jedem Text in der Datenbank, eine Übersetzung anzugeben
    • Bounding Box
    • Anlegen eigener Tilesets (Diese könnten meiner Meinung nach ebenfalls eine Vorschau im TileSets-Baum erhalten)
    • Autotiles können Transparenz erhalten, sodass man im "Foreground-Layer" diese normal verwenden kann
    • Massenimports
    • Anlegen mehrerer Layers für eine Map (damit lassen sich Karten schön mappen )

    Verbesserungswürdig
    • Die "Rückgängig-Funktion" : Folgendes Szenario: Ich zeichne mit der Maus, ohne den Button loszulassen, viel Gras, merke dass ich doch nicht alles benötige und drücke STRG-Z. Leider muss ich das so oft drücken, wie Gras gezeichnet wurde. Besser wäre es, wenn sofort die letzte Aktion verschwindet, also mein komplett gezeichnetes Gras. (Ist wahrscheinlich Geschmackssache)
    • Ah jetzt hab ich herausgefunden, dass der Button "<-" der Zurück-Knopf ist ohne Short-Cut ... müsste man sich vielleicht auch noch überlegen, wie man das Designtechnisch besser lösen mag.
    • Der Cursor im Editor selbst. Ich find das Fadenkreuz ist dafür eine schlechte Wahl...ich wollte am Anfang mehrere Felder selektieren, hab jedoch gezeichnet.
    • Im Database-Editor funktioniert bei mir der Cancel-Button nicht (Verhalten für mich: Drücke auf "Cancel" und das Fenster schließt sich)
    • Ist wahrscheinlich eher etwas für mich, aber ich würde noch eine oder zwei weitere Zoomstufen begrüßen und zwar näher dran (150% und vllt. 200%) Gerade für Detailarbeiten für mich extrem wichtig.
    • TileSet fallen-tree.png hat ein etwas komisches Verhalten. (es wiederholt sich immer in y-Richtung und wird nicht komplett gezeichnet) ::::: Ich seh grad, beim Fill hat das Tile die richtige Grafik
    • Was mir dabei auffällt..man importiert viele kleine Tiles, jedoch kann das später unübersichtlich werden. Eine Gruppierung wäre dabei hilfreich. (Ähnlich einem Chipset-System im Maker, nur mit DropDown-Box oder so)
    • Klick ich im Menü auf "File" und "move" dann mit meiner Maus über die anderen Reiter und komme auf "Database", öffnet sich diese sofort -> Sollte am Besten nur auf ein Klick reagiern
    • Bei den Weltobjekten gibt es ja die Animationsvorschau....die find ich irgendwie etwas unübersichtlich. Auch wenn ich das Fenster vergrößer, bleibt das leider so...da könnte man vielleicht noch einen Button einzubauen mit "Show Animation" oder sowas, der dann die ganze Verwaltung in einem neuen Fenster öffnet.

    nochmal nen Fazit
    Joa ansonsten sehen die Funktionen soweit gut aus, jedoch sind mir die Objekt-Anmiationstypen noch unklar...da kann man auch wenig dran schrauben. Ebenso wie bei den Texten....da hätt ich zu gerne mal ein weiteres Textfeld erzeugt...
    Es sind echt schöne Sachen dabei und dein Projekt geht in eine gute Richtung, wie ich finde.
    Die bisherigen Funktionen zur Kartendarstellung mit den Tiles, Autotiles und Weltobjekten find ich gut gelungen und damit würden sich schon schöne Karten darstellen lassen.
    Ich bin auf jeden Fall gespannt, wie die weitere Entwicklung vorangeht.

  2. #2
    Zitat Zitat von Javis Beitrag anzeigen
    Hu, also damit du nicht ganz ohne Feedback bleibst, werd ich dir mal einige Punkte aufzählen, die mir gefallen und die mir nicht gefallen!
    Ich hoffe ich hab nichts vergessen und auch alles soweit getestet. :S
    Hallo, danke für deine Mühen. Bin froh, das sich jemand die Mühe macht, und sich das ganze einmal ansieht.
    Dennoch sind mir ein paar Punkte nicht ganz klar, bitte hilf mir dabei auf die Sprünge :P

    Zitat Zitat von Javis Beitrag anzeigen
    Positiv
    • Anlegen eigener Tilesets (Diese könnten meiner Meinung nach ebenfalls eine Vorschau im TileSets-Baum erhalten)
    Was meinst du mit "Vorschau im TileSets-Baum"? Im MapEditor wird dir beim drüber fahren eine Vorschau gezeigt.

    Zitat Zitat von Javis Beitrag anzeigen
    Verbesserungswürdig
    • Die "Rückgängig-Funktion" : Folgendes Szenario: Ich zeichne mit der Maus, ohne den Button loszulassen, viel Gras, merke dass ich doch nicht alles benötige und drücke STRG-Z. Leider muss ich das so oft drücken, wie Gras gezeichnet wurde. Besser wäre es, wenn sofort die letzte Aktion verschwindet, also mein komplett gezeichnetes Gras. (Ist wahrscheinlich Geschmackssache)
    Ist mir tatsächlich auch schon aufgefallen. Ich überlege mir auch schon eine Lösung, wie ich das anders machen könnte. Liegt ein wenig an der Implementierung. -> werde ich überarbeiten

    Zitat Zitat von Javis Beitrag anzeigen
    • Ah jetzt hab ich herausgefunden, dass der Button "<-" der Zurück-Knopf ist ohne Short-Cut ... müsste man sich vielleicht auch noch überlegen, wie man das Designtechnisch besser lösen mag.
    Hier werde ich wohl ein Icon einsetzen, welches in etwa so aussieht wie das "Zurück" aus dem Maker. Sonst irgendwelche Vorschläge?

    Zitat Zitat von Javis Beitrag anzeigen
    • Der Cursor im Editor selbst. Ich find das Fadenkreuz ist dafür eine schlechte Wahl...ich wollte am Anfang mehrere Felder selektieren, hab jedoch gezeichnet.
    Kann ich verstehen, dass das ein wenig Eingewöhnungszeit benötigt. Dennoch denke ich, das wenn man öfter mit dem Editor arbeitet, auch damit zurecht kommen kann.

    Zitat Zitat von Javis Beitrag anzeigen
    • Im Database-Editor funktioniert bei mir der Cancel-Button nicht (Verhalten für mich: Drücke auf "Cancel" und das Fenster schließt sich)
    Ist ein Bug, und wird behoben

    Zitat Zitat von Javis Beitrag anzeigen
    • Ist wahrscheinlich eher etwas für mich, aber ich würde noch eine oder zwei weitere Zoomstufen begrüßen und zwar näher dran (150% und vllt. 200%) Gerade für Detailarbeiten für mich extrem wichtig.
    Hatte ich auch schon drüber nach gedacht. Werde ich auch umsetzen.

    Zitat Zitat von Javis Beitrag anzeigen
    • TileSet fallen-tree.png hat ein etwas komisches Verhalten. (es wiederholt sich immer in y-Richtung und wird nicht komplett gezeichnet) ::::: Ich seh grad, beim Fill hat das Tile die richtige Grafik
    TileSet "fallen-tree.png"? Das klingt für mich eher nach einem normalen Tile. Ich sehe aber was du meinst (wenn du denn das Tile meinst), und weiß auch woher das kommt. Werde ich beheben

    Zitat Zitat von Javis Beitrag anzeigen
    • Was mir dabei auffällt..man importiert viele kleine Tiles, jedoch kann das später unübersichtlich werden. Eine Gruppierung wäre dabei hilfreich. (Ähnlich einem Chipset-System im Maker, nur mit DropDown-Box oder so)
    Auch das hatte ich mir schon überlegt, ist aber ein wenig knifflig umzusetzen, deswegen erst einmal nach hinten geschoben. Ich werde mir dafür aber eine Lösung überlegen!

    Zitat Zitat von Javis Beitrag anzeigen
    • Klick ich im Menü auf "File" und "move" dann mit meiner Maus über die anderen Reiter und komme auf "Database", öffnet sich diese sofort -> Sollte am Besten nur auf ein Klick reagiern
    Stimmt, ist ein seltsames Verhalten. Werde ich überarbeiten.

    Zitat Zitat von Javis Beitrag anzeigen
    • Bei den Weltobjekten gibt es ja die Animationsvorschau....die find ich irgendwie etwas unübersichtlich. Auch wenn ich das Fenster vergrößer, bleibt das leider so...da könnte man vielleicht noch einen Button einzubauen mit "Show Animation" oder sowas, der dann die ganze Verwaltung in einem neuen Fenster öffnet.
    Dabei kann ich dir leider nicht ganz folgen. Wenn du das Fenster größer machst, vergrößert sich doch auch der Bereich, in denen die Animationen sind.

    Zitat Zitat von Javis Beitrag anzeigen
    nochmal nen Fazit
    Joa ansonsten sehen die Funktionen soweit gut aus, jedoch sind mir die Objekt-Anmiationstypen noch unklar...da kann man auch wenig dran schrauben. Ebenso wie bei den Texten....da hätt ich zu gerne mal ein weiteres Textfeld erzeugt...
    Es sind echt schöne Sachen dabei und dein Projekt geht in eine gute Richtung, wie ich finde.
    Die bisherigen Funktionen zur Kartendarstellung mit den Tiles, Autotiles und Weltobjekten find ich gut gelungen und damit würden sich schon schöne Karten darstellen lassen.
    Ich bin auf jeden Fall gespannt, wie die weitere Entwicklung vorangeht.
    Vielen Dank für deine Zeit. Ich werde mich bemühen deine Kritikpunkte auszumerzen
    mfg

  3. #3
    Ich pushe das ganze hier mal. Vielleicht verspürt ja noch jemand Lust, sich das mal etwas genauer anzusehen

    Habe mich jetzt auch einmal an den Launcher gewagt, und bin soweit, das ich Maps rendern lassen kann (noch ein wenig hacky, aber das ändert sich mit der Zeit). Im Moment wird die Map, welche man in Post #2 sehen kann, mit rund 170-200 FPS gerendert. Es passiert zwar noch nicht wirklich viel (kein Update der Objecte), aber ich denke ich bin auf einem guten Weg.
    Im Moment läuft das ganze ja auch nur auf einem Kern, ich habe also noch ganz gut Luft nach oben.

    mfg

    Geändert von DNKpp (05.07.2013 um 11:13 Uhr)

  4. #4
    Ich habe mir das ganze auch mal angeschaut und ein bisschen angetestet.
    Die Funktionen sehen ganz gut aus, dennoch ist es erstmal schwierig sich in das Programm einzuarbeiten.

    Das Plazieren von größeren Objekte (z.B. Bäume) ist schonmal eine wirklich praktische Angelegenheit (vor allem, das sich die Dinge automatisch vor- oder hintereinander versetzen, was sehr arbeitssparend ist!).

    Wie man neue "Objecte" hinzufügt, oder generell das Spiel testet, hat sich mir jetzt noch nicht erschlossen.

    Verbesserungsvorschläge:
    -In den Tiles auch mehrere Dinge anwählen können, und dann auf der Map platzieren (Alles immer einzeln nehmen zu müssen ist sehr aufwendig, denn man will ja nicht für alles ein "Object" erstellen müssen)
    -Animationsframes sollten auch per "Entf" löschbar sein, da man sonst jedesmal die Zahl ändern muss und dann auf "remove Animation" gehen muss.
    -Übersicht der Animationsframes und der Anzahl sollte besser gelöst werden (z.B. Ansichtstyp ändern: [Liste]; [Animationen]; [Liste und Animationen] oder so ähnlich)

    So weit erstmal dazu.

    (Ein bisschen "Fütterung zurück" von mir, denn Essen braucht man bekanntlich.)

  5. #5
    Hallo Oktorok3,
    vielen Dank für deine Zeit.

    Zitat Zitat von Oktorok3 Beitrag anzeigen
    Wie man neue "Objecte" hinzufügt, oder generell das Spiel testet, hat sich mir jetzt noch nicht erschlossen.
    Meinst du damit Objecte zu Database hinzufügen, oder auf der Map platzieren? Das Spiel teste geht, wie oben bereits erwähnt, noch nicht, da ich gerade mitten in der Entwicklung des GameLaunchers stecke. Hier bitte ich noch um ein wenig Geduld

    Zitat Zitat von Oktorok3 Beitrag anzeigen
    Verbesserungsvorschläge:
    -In den Tiles auch mehrere Dinge anwählen können, und dann auf der Map platzieren (Alles immer einzeln nehmen zu müssen ist sehr aufwendig, denn man will ja nicht für alles ein "Object" erstellen müssen)
    Dafür habe ich die "TileSets" entwickelt. Mit diesen ist es in kurzer Zeit möglich (wenn man weiß, wie alles zusammen spielt, unter einer Minute) sich sein benötigtes Set zusammen zu klicken. Dieses wird wiederverwertbar gespeichert, sodass man in Zukunft schnell darauf zu greifen kann.

    Zitat Zitat von Oktorok3 Beitrag anzeigen
    -Animationsframes sollten auch per "Entf" löschbar sein, da man sonst jedesmal die Zahl ändern muss und dann auf "remove Animation" gehen muss.
    Stimmt, da hast du recht. Sollte nicht allzu aufwändig sein. Allerdings sind für den AnimationsEditor noch ein paar mehr Improvements geplant. Wird es sicherlich in der nächsten Version geben

    Zitat Zitat von Oktorok3 Beitrag anzeigen
    -Übersicht der Animationsframes und der Anzahl sollte besser gelöst werden (z.B. Ansichtstyp ändern: [Liste]; [Animationen]; [Liste und Animationen] oder so ähnlich)
    Hierbei verstehe ich nicht ganz, was du mir sagen möchtest.

    Zitat Zitat von Oktorok3 Beitrag anzeigen
    (Ein bisschen "Fütterung zurück" von mir, denn Essen braucht man bekanntlich.)
    Stimmt, ohne ein wenig Feedback und Kritik kann die Motivation auch schnell dahin sein Deswegen bin ich über jede Stimme froh die sich zu Wort meldet!

    mfg

  6. #6
    Zitat Zitat
    Meinst du damit Objecte zu Database hinzufügen
    Yes! genau das.

    Zitat Zitat
    Dieses wird wiederverwertbar gespeichert, sodass man in Zukunft schnell darauf zu greifen kann.
    Not bad at all!

    Zitat Zitat
    Zitat Zitat von Oktorok
    -Übersicht der Animationsframes und der Anzahl sollte besser gelöst werden (z.B. Ansichtstyp ändern: [Liste]; [Animationen]; [Liste und Animationen] oder so ähnlich)
    Hierbei verstehe ich nicht ganz, was du mir sagen möchtest.
    Sorry, fehlende Infos: Database/Objects/WorldObjects->Animationsframes
    Hier finde ich fehlt eine gute Übersicht. Das ganze könnte Bspw. ähnlch wie im Maker angezeigt werden (Liste)
    http://s14.directupload.net/file/d/3...yzhzwj_png.htm
    (Beispiel der guten Übersicht)

    Wäre schade, wenn du die Motivation verlierst, denn das ganze ist ein schönes Projekt und die Mühe und die Zeit sollte keine Verschwendung sein!

  7. #7
    Hallo,
    die Motivation verliere ich schon nicht, keine Angst Dazu arbeite ich schon viel zu lange an dem Projekt, und es ist schon viel zu weit fortgeschritten.

    Das du noch nicht ganz klar kommst mit dem Programm, ist mir verständlich. Deswegen wollte ich eigentlich ein paar HowTo´s veröffentlichen, habe aber noch keine Zeit gefunden, diese zu schreiben. Werde ich dann wohl mit der nächsten Version nachreichen, wenn es dann auch die 1. Version des GameLaunchers gibt.

    Stimmt, das sieht ein wenig besser aus, von der Struktur. Werde ich mal gucken, was sich da machen lässt. Wird auf jeden Fall als ToDo vorgemerkt

    mfg

  8. #8
    So, heute hab ich mal wieder an dem Launcher weiter gearbeitet. Mittlerweile werden die MapObjecte mitgeladen, und haben ein rudimentäres update Verhalten, was sich in Zukunft natürlich noch stark erweitert.
    Erste Benchmark Tests mit 1700 Objekten auf der Map (wovon gut 2/3 sichtbar waren) haben immerhin noch eine FPS zwischen 70-100 ergeben und eine Nutzung des Arbeitsspeichers von ~20MB. Hier gilt es jedoch zu beachten, dass
    1. viele Objekt Grafiken mehrfach verwendet wurden
    2. die Map nicht sonderlich groß ist
    3. keine Ausgefeilten AIs verwendet werden

    Dennoch kann man sagen, das die Draw Routienen damit weitestgehend vollendet sind, was auch das Hardwarelastigste sein dürfte. Es bleibt also abzuwarten, was man am Ende für Werte erreichen kann

    mfg

  9. #9
    Tagchen. :3
    Ich würde mal gerne einen Blick in die Alpha werfen, aber es heisst dann immer, dass "MSVCP110.dll" nicht gefunden wurde, und startet dann nicht.

    Ansonsten zum Screenshot vom Post #2:
    Kann man zwischen 16x16 und 32x32 etwa jederzeit wechseln? Dort ist ja letzteres aktiv, was man auch am Mapping merkt.

  10. #10
    Hallo,

    Ich hatte es ja oben geschrieben, das dieses Microsoft Paket benötigt wird.

    Die Tile Auflösung ist fix auf 32x32.

  11. #11
    Ich hab mir das Map Format mal angeschaut. Ist noch ein wenig "unschön" gelöst, wie man es auch an der Dateigröße merkt. Damit meine ich vorallem die 500er Map.. die knapp 1MB groß ist. 100 Maps == 100MB? Ich weiß das wäre eher der worst-case, aber schau dir als gutes Beispiel mal das Tiled .tmx (eigentlich .xml) Format an. Tiled Map Editor. Dort wird zlib Kompression + base64-encoding verwendet. Anstatt also:
    Zitat Zitat
    <Layer>
    <MapTiles Tiles="4:1,4:1,5:1, ....
    im klartext zu speichern könntest du folgendes machen
    Zitat Zitat
    <layer encoding="base64" compression="zlib" width="500" height="500">
    eJzt2kEKAjEMheGizkXUk6gw97+R2QiZUgjUFDLJv/gW7eLRt3C.. <-- die codierten Tile IDs
    </layer>
    Um die Map zu erhalten dann sowas wie:
    Zitat Zitat
    byte[] decoded = Base64.decode(layer.value);

    int[] tileIDs = new int[layer.width * layer.height];
    Zlib.inflate(tileIDs, decoded);

    int tile = tileIDs[x + y * layer.width];
    Zip die Map mal, dann siehst du wieviel du in etwa verschwendest. 994kb werden auf ca. 6kb komprimiert.

    Falls du aus irgendeinen Grund nicht darauf verzichten willst, würde ich trotzdem einige Dinge überdenken. Sowas wie:
    Zitat Zitat
    <MapTiles Tiles="4:1,4:1,5:1,1:0,3:1,4:1,4:1,4:1,4
    <MapTiles Tiles="4:1,4:1,5:1,1:0,3:1,4:1,4:1,4:1,4
    <MapTiles Tiles="4:1,4:1,5:1,1:0,3:1,4:1,4:1,4:1,4
    Jeder char im xml Bezeichner ist mal fünfhundert = 500 Byte Verschwendung. Auch das Attributte "Tiles" ist unnötig. Den Tile IDs String kann man auch als value speichern. Also eher sowas wie
    Zitat Zitat
    <tid> 4:1,4:1,5:1,1:0,3:1,4:1,4:1,4:1,4 ... </tid>
    <tid> 4:1,4:1,5:1,1:0,3:1,4:1,4:1,4:1,4 ... </tid>
    <tid> 4:1,4:1,5:1,1:0,3:1,4:1,4:1,4:1,4 ... </tid>
    Bei AnimationDatabase.xml ist es ähnlich.
    Zitat Zitat
    <Frame time_msec="50">
    <Sprite spriteID="11" posX="0" posY="0" scale="100" rotation="0" opacity="100"/>
    </Frame>
    <Frame time_msec="50">
    <Sprite spriteID="12" posX="0" posY="0" scale="100" rotation="0" opacity="100"/>
    </Frame>
    <Frame time_msec="50">
    <Sprite spriteID="13" posX="0" posY="0" scale="100" rotation="0" opacity="100"/>
    <Sprite spriteID="3" posX="-96" posY="-96" scale="100" rotation="0" opacity="100"/>
    </Frame>
    Anstatt jedesmal ein neuen Tag für die Framezeit zu beginnen könntest du ein int array mit [index] = frametime Wertepaaren verwenden. Außerdem könntest du default-werte einführen. Werte wie posX="0" posY="0" scale="100" rotation="0" opacity="100" braucht man nicht zu speichern, wenn es sie als default gibt. Daraus wird dann sowas wie:
    Zitat Zitat
    <frame_times> 50 50 50 <frame_times>
    <sprites>
    <sprite id="11" t="0" />
    <sprite id="12" t="1" />
    <sprite id="13" t="2"/>
    <sprite id="3" t="2" posX="-96" posY="-96" />
    </sprites>
    Die Frame zeiten werden dann mit frame_times[sprite.t] ausgelesen.

    Na ja, das viel mir so auf. Hab mir aber auch nicht alles angeschaut.

  12. #12
    Bei den Maps bin ich mit dir einer Meinung, diese wollte ich auch in Zukunft zipen.
    Bei den Animationen machst du allerdings den Fehler zu denken, man hat nur ein Sprite pro Frame. Denn genau aus diesem Grund gibt es diesen Tag, damit mehrere Sprites pro Frame benutzt werden können.
    Von den default Werten bin ich kein Freund.

    Aber ich freue mich, das du dir das mal angeguckt hast, auch wenn ich im Moment wenig Zeit habe, daran weiter zu arbeiten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •