Hallo. In diesem Thread möchte ich euch über den aktuellen Stand zu meiner Arbeit an der Unterstützung von 32 Bit PNG-Bildern auf dem Laufenden halten.
Was habe ich bis jetzt gemacht? Nachdem ich es aufgegeben habe das Laden von PNGs in Assembler zu programmieren, habe ich eine DLL erstellt in der ich die beiden Grafikfunktionen, die das Spiel zum Laden aller Panzer General Grafiken benutzt, in C nachprogrammiert habe. Die alten Funktionen habe ich durch meine neuen ersetzt. Als nächstes habe ich mir zu zum testen eine Panzer General SHP-Datei erstellt, in der anstelle der PG-Grafiken PNG-Bilder eingebaut sind. Ich habe damit die Grafik des PZ IIA Panzers ersetzt. Dann habe ich in eine der Grafikfunktionen eine Überprüfung des Formats der Grafiken eingebaut und das Laden von PNGs eingebaut. Das hat soweit erstmal geklappt. Leider habe ich noch keine Lösung für die Unterstützung von teilweise transparenten Pixeln, was bei meiner Testeinheit dafür sorgt, dass sie von einem rosa Rand umgeben ist, weil in der Grafik transparente Pixel verwendet werden.
Hier ein Screenshot (der Panzer ist mir etwas groß geraten , aber so sieht man ihn besser):
Zitat von James Font im Beitrag #1der Panzer ist mir etwas groß geraten , aber so sieht man ihn besser):
Ääähm ... ja. Aber mein Problem damit ist, das es sich definitiv nicht um einen Pz IIA handelt, sondern in etwa um einen Tiger mit Überbreite, Pz III-Turm und Panther-Geschütz. Welches Icon hast du da verwendet?
Die OpenIcons-PNGs haben m.W. maximal 24, die meisten gar nur 8 Bit. Aber das gibt ja zusammen genau 32.
Zitat von James Font im Beitrag #1der Panzer ist mir etwas groß geraten , aber so sieht man ihn besser):
Ääähm ... ja. Aber mein Problem damit ist, das es sich definitiv nicht um einen Pz IIA handelt, sondern in etwa um einen Tiger mit Überbreite, Pz III-Turm und Panther-Geschütz. Welches Icon hast du da verwendet?
Die OpenIcons-PNGs haben m.W. maximal 24, die meisten gar nur 8 Bit. Aber das gibt ja zusammen genau 32.
Die Bilder für den Panzer habe ich vor einer Weile zum testen aus einem 3D-Modell von World of Tanks erstellt. Ich wollte sehen wie gut das hinhaut. Du hast recht es ist ein Tiger. Das Bild ist ja nur zum testen. Die OpenIcons-PNG sind nicht transparent, wenn sie nur 8 oder 24 Bit verwenden. Solchen Bilder haben eine Hintergrundfarbe, die vom Spiel dann einfach nicht gezeichnet wird, um einen transparenten Hintergrund zu erhalten. Ich kann noch einbauen, dass 8, 24 und 32 Bit unterstützt werden. Um eine möglichst gute Darstellung zu erhalten sind aber 32-Bit Bilder mit teilweise transparenten Rändern am besten, weil die Kanten damit viel besser mit dem Hintergrund verschmelzen. Solange ich das Problem mit dem rosa Rand bei teilweise transparenten Pixeln nicht gelöst habe gibt es aber keinen Unterschied zwischen 24 und 32 Bit, weil die 8 Bit Alphakanal nicht genutzt werden können. Erstmal muss ich sowieso die grundsätzlichen Arbeiten abschließen. Wenn es weitere Fortschritte gibt werde ich hier berichten. So gut Wie OpenGeneral bekommen wir das auf jeden Fall hin .
Zitat von James Font im Beitrag #3So gut Wie OpenGeneral bekommen wir das auf jeden Fall hin .
Aber reicht es dazu nicht aus, die vorhandenen Formate aus der OpenIcons.dat (8 & 24 Bit) unfallfrei abzubilden? Warum 32 Bit (ich bevorzuge die klare statt die verschmolzene Kante )? Warum eigene 3D-Modelle?
Zitat von James Font im Beitrag #3So gut Wie OpenGeneral bekommen wir das auf jeden Fall hin .
Aber reicht es dazu nicht aus, die vorhandenen Formate aus der OpenIcons.dat (8 & 24 Bit) unfallfrei abzubilden? Warum 32 Bit (ich bevorzuge die klare statt die verschmolzene Kante )? Warum eigene 3D-Modelle?
Hallo Rayy Ich sage ja, so gut wie OpenGeneral bekommen wir das auf jeden Fall hin. Ich werde auch erstmal daran arbeiten das erstmal rund zu machen. Allerdings der Einfachheit halber nicht so wie OG sondern im Stil der schon vorhandenen PG-SHP Dateien. Der Grund ist folgender. Mit den OG Formaten kommt das Spiel ohne meine Hilfe nicht klar und die OG Formate bringen keine wirklichen Vorteile für das Spiel. Wenn ich statt dessen die PNG-Bilder anstelle der PG-Grafiken in einer SHP-Datei verpacke, bekommt das Spiel gar nicht mit das es eine PNG-Datei untergeschoben bekommt. Die einzigen beiden Funktionen, die die Bilddaten im Spiel auswerten habe ich ja in meine DLL ausgelagert. D.h., ich muss mich im Spiel nicht darum kümmern, das die Bilder richtig von der Festplatte gelesen werden, das bisherige System zur Identifizierung der richtigen Grafikdatei weiterhin parallel funktioniert oder gestört wird usw.. Ich muss überhaupt nichts tun um an die richtige Grafik zu kommen, weil das ursprüngliche System unverändert bleibt und mir die richtige Grafik zum richtigen Zeitpunkt an meine Grafikfunktion liefert. Das spart schon einige Monate Arbeit und Tests. Außerdem bin ich nicht der Meinung, dass ich Dinge die so schon gut funktionieren unbedingt ändern muss, wenn ich sie für meine Ideen mit nutzen kann.
Auf die 32 Bit Grafiken gehe ich ein anderes Mal ein. Dann kann ich mal ein Beispiel erstellen auf dem man sieht was der Unterschied zu 24 Bit Grafiken ist.
Das mit dem 3D-Modell hast du falsch verstanden. Ich habe mir schon vor einiger Zeit rein aus Interesse das kostenlose Spiel "World of Tanks" heruntergeladen. Gespielt habe ich es nicht , aber ich habe mir in einem 3D-Viewer die Panzermodelle betrachtet. Dabei bin ich auf die Idee gekommen, dass man daraus relativ schnell auch ein Icons für PG erstellen könnte. Ich habe also den Panzer zurechtgerückt und ein paar Screenshots davon gemacht. Die Bilder habe ich dann freigestellt und dann auf der Festplatte liegen lassen. Daran habe ich mich jetzt erinnert als ich vor der Wahl stand die erste Testeinheit anzulegen. Deshalb habe ich diese Bilder verwendet. Mit 3D-Modellen hat meine eigentliche Arbeit an PG also nichts zu tun, nur das Testbild stammt Zufällig von einem.
So, da ich noch zum Sport muss und ich mich kurz halten will war es das für heute. Wenn ich meine erste Testeinheit im OG Style (24 und oder 8 Bit) eingebaut habe, poste ich nochmal einen Screenshot. Der rosa Rand sollte da dann nicht mehr sichtbar sein.
Hallo. Also ich habe jetzt vorerst die Transparenz rausgenommen, um den rosa Rand zu entfernen. Hier ein neuer Screenshot mit neuen (Test-)Modellen. Diesmal kein Tiger .
P.S. @ Rayy: Wenn du schon ein paar echte Einheiten Grafiken mit zu vielen Farben hast kannst du mir auch welche schicken, dann baue ich diese testweise ein.
Zitat von James Font im Beitrag #6@ Rayy: Wenn du schon ein paar echte Einheiten Grafiken mit zu vielen Farben hast kannst du mir auch welche schicken, dann baue ich diese testweise ein.
Sorry, dass ich dir nicht immer folgen kann; Grafikprozession oder so war nie meine Baustelle. Was sind "zu viele Farben"? Warum nimmst du nicht PNGs aus der OpenIcons.dat? Die sind es doch, die in PG angezeigt werden sollen. Welche von denen 8 und welche 24 Bit haben, ist leider nirgends dokumentiert. Gibt's da vielleicht im File selbst eine Header-Eintrag?
„Der Vorteil der Klugheit besteht darin, daß man sich dumm stellen kann. Das Gegenteil ist schon schwieriger.“ - Tucholsky
Zitat von Rayydar im Beitrag #7...Sorry, dass ich dir nicht immer folgen kann; Grafikprozession oder so war nie meine Baustelle. ...
Entschuldige meine ungenaue Ausdrucksweise. Mit "zu viele Farben" meine ich alle Bilder, die in PG3D nicht dargestellt werden können, weil sie Farben beinhalten die nicht in der Farbpalette von PG3D enthalten sind. Wenn due meine Beispieleinheiten im letzten Beitrag z.B. betrachtest, werden bei dem böse schauenden Auto z.B. sehr viele unterschiedliche Rottöne verwendet um einen glatten roten Verlauf darzustellen. Die meisten davon werden von PG3D gar nicht unterstützt.
Zitat von Rayydar im Beitrag #7...Welche von denen 8 und welche 24 Bit haben, ist leider nirgends dokumentiert. Gibt's da vielleicht im File selbst eine Header-Eintrag?
Wenn du ein PNG-Bild in Windows 7 mit der rechten Maustaste anklickst, dann auf "Eigenschaften" klickst und im sich öffnenden Dialog den Reiter "Details" auswählst bekommst du unter anderem auch die "Bittiefe" angezeigt. Ich denke in älteren Windowsversionen war das auch schon enthalten.
Zitat von Rayydar im Beitrag #7...Warum nimmst du nicht PNGs aus der OpenIcons.dat? Die sind es doch, die in PG angezeigt werden sollen. ...
Ich habe mir schon einige OG Icons angeschaut, aber sie kommen mir irgendwie auch nicht viel besser vor als die PG3D Icons, die du in deiner Panzer2.dat verwendest. Wenn ich sie in mein erweitertes SHP-Format konvertiere sollten sie darstellbar sein. Wenn du ganz bestimmte OG Icons im Sinn hast und mal ein Beispiel damit sehen willst baue ich gerne mal welche ein. Ich selbst sehe, wie schon gesagt, keine herausragenden Unterschiede und kenne mich ja auch nicht mit den Einheiten aus. Daher kann ich nicht sagen welche noch fehlen oder welche durch OG Icons ersetzt werden sollten.
Ich habe im Netz nach Icons gesucht, die ich schöner als viele PG3D Icons finde und bin auf ein Forum gestoßen in dem sehr viele Icons für das Spiel Panzer Corps gepostet werden. Ich vermute mal du kennst es schon. http://www.slitherine.co.uk/forum/ Die Qualität der Icons dort könnte man mit meiner Änderung auch darstellen (zumindest wenn man die transparenten Schatten weglässt), nur habe ich nirgends solche Icons gefunden, die auch in allen 9 von PG3D benötigten Positionen dargestellt werden. Hier zwei Beispiele von guille1434. Panzer IA
Hier noch ein kleines Beispiel mit dem Panzer IA (großes Icon) von oben. Ist vielleicht minimal zu groß solange die Hexagone im Spiel noch so klein sind, aber etwas kleiner kann jemand der solche Bilder erzeugen kann das ganze auch noch gut darstellen, denke ich. Vom Größenverhältnis zu den Soldaten rundherum her, finde ich es mit dem großen Bild viel besser.
Ich möchte schon gar nicht: größere Hexfelder als bisher, die alle bisherige Arbeit entwerten würden. "... solange die Hexagone im Spiel noch so klein sind". Soll das eine Drohung sein?
Zitat von Rayydar im Beitrag #10James, in mir festigt sich der Verdacht, dass wir gar unterschiedliche Zielsetzungen haben.
Ich möchte nicht: a) rote Autos, UFOs und Pz. I in anderer Größe als bisher; da würde ein Tiger im konsequenten Maßstab mindestens 6 Hexe ausfüllen ;
b) subjektiv 'schönere' Icons; die bisherigen sind 'schön' genug. Die Qualität hängt weit mehr vom Talent des Malers ab als von der Farbtiefe, wie folgende 8-Bit-SHP-Meisterwerke zeigen: ...
Ups, du hast mich durchschaut. Ich will riesen Hexagone in das Spiel einbringen. Nein, nein das meinte ich nicht. Ich meinte nur das das Icon in der Größe leider nicht ganz zum Spiel passt und dass ich persönlich der Größe durchaus etwas abgewinnen kann. Ich hätte das Icon gern in gleicher Qualität etwas kleiner. Momentan plane ich keine Änderung der Größe der Hexagone und sollte das in Zukunft irgendwann mal kommen, würde ich das einstellbar machen. Du hast Recht, dass die Qualität der Bilder vom Zeichner abhängt und deine Beispiele haben mich auch überrascht. Allerdings fällt es viele vermutlich leichter größere Bilder "schön" zu zeichnen als Miniaturausgaben zu malen. Wie auch immer, im momentan habe ich mit den aktuellen Aufgaben genug zu tun. Bevor die PNG-Unterstützung und danach die flexible Auflösung nicht abgeschlossen sind, denke ich gar nicht über neue Großbaustellen nach. Danach werde ich vermutlich noch viele wichtigere änderungswürdige Dinge finden als die Hexagongröße.
Wir haben bestimmt unterschiedliche Ziele, aber deine Ziele sind eine Untermenge meiner Ziele und danach richte ich meine Vorgehensweise. Alles was du dir für PG3D vorstellst und was ich umsetzen kann, werde ich, sofern ich dazu komme, auch umsetzen. Wenn ich aber weitergehende Ideen habe, werde ich diese auch umsetzen und zwar so, dass alle Ansätze funktionieren und jeder sich aussuchen kann was er nutzen will.
Was das Panzer2.dat nur aus PNGs angeht, brauchst du daraus keine Panzer2.dat zu machen. Allerdings würden mich die PNGs selbst interessieren. Ich benötige ja ein anderes Format als OG. Deshalb werde ich ein Tool schreiben, das die OG PNGs zu meinen neuen SHP-Dateien umwandelt. Das Tool wird natürlich auch eine ganze OG OpenIcons.dat entpacken und gleichzeitig umwandeln können. Zum Erstellen des Tools bräuchte ich die PNGs.
Wie kann ich deine Beispiel-Icons aus Punkt b herunterladen? Muss ich dazu ein ganzes Paket laden oder kann man die einzeln herunterladen?
Ich hoffe das hat dich beruhigt. Ich bin noch nicht gößenwahnsinnig geworden und fange ständig neue Baustellen an.
Zitat von Rayydar im Beitrag #10... Ich möchte nicht: a) rote Autos, UFOs und Pz. I in anderer Größe als bisher; da würde ein Tiger im konsequenten Maßstab mindestens 6 Hexe ausfüllen ;...
Ich habe noch vergessen zu sagen, dass das rote Auto ein Beispiel für einen Farbverlauf war. Auch bei kleinen Panzer-Icons trägt es zur Qualität bei, wenn man Flächen, die einen Farbverlauf darstellen sollen, auch mit einem richtigen Farbverlauf versehen kann. Gegen ein Ufo-General hätte ich nichts einzuwenden . Allerdings war hier der fliegende Ball auch nur ein Beispiel.
Die OpenIcons.dat mit dem SHP Tool entpacken; dann hast du fast 10.000 PNGs im Zielordner, denn viele der bisherigen SHPs wurden schon umgestellt - nicht weil das schöner ist und Farbverläufe bei roten Autos ermöglicht (doch, hattest du vorher schon erwähnt), sondern einzig und allen wg. der Filesize.
Hallo. Heute ist rein Äußerlich nur ein kleiner Fortschritt zu vermelden. Ich habe die letzten Tage daran gearbeitet möglichst alle PNG Formate einlesen zu können. Ich hatte ein paar Probleme mit 8-Bit Grafiken und da diese in sehr vielen Icons verwendet werden, weil sie Platz sparen und häufig ausreichen, habe ich mich darauf konzentriert. Außerdem habe ich, um mir das Testen zu vereinfachen, das Spiel so erweitert, dass die Dateien aus der Panzer2.dat auch in einem Ordner "data" liegen können. Befindet sich dort eine im Spiel verwendete Datei wird sie anstelle der Datei aus der Panzer2.dat geladen.
Hier ein Screenshot mit dem Ergebnis. Alle Grafiken auf dem Startscreen, bis auf den Mauszeiger, sind aus 8-Bit PNGs geladen, die in einer SHP-Datei verpackt sind, die im Ordner "data" liegen.
Yeah, das ist schon näher dran an PG als das rote Auto. Bloß besteht bzgl. des Startscreens bzw. bzgl. aller Hintergrundgrafiken m.E. kein Handlungsbedarf, denn das sind die einzigen PNGs aus der OpenIcons.dat, die wir garantiert nicht verwenden. Wichtig wären halt die Einheiten. Gibt's da ein Problem mit den 9 Einzel-Icons für die verschiedenen Blickwinkel, oder warum testet / postest du die noch nicht?
Zitat von Rayydar im Beitrag #15Yeah, das ist schon näher dran an PG als das rote Auto. Bloß besteht bzgl. des Startscreens bzw. bzgl. aller Hintergrundgrafiken m.E. kein Handlungsbedarf, denn das sind die einzigen PNGs aus der OpenIcons.dat, die wir garantiert nicht verwenden. Wichtig wären halt die Einheiten. Gibt's da ein Problem mit den 9 Einzel-Icons für die verschiedenen Blickwinkel, oder warum testet / postest du die noch nicht?
Ganz einfach.
Ich hatte, wie schon erwähnt, Probleme mit den 8-Bit Grafiken. Da ich das Spiel zum Debuggen gefühlte 100 Mal mit unterschiedlichen Testaten starten musste habe ich, wie meistens, den Startscreen verwendet, um möglichst schnell an die zu testende Stelle zu kommen. Nachdem dann alles funktioniert hat habe ich den dann auch gepostet. Ich baue jetzt einfach mal die Beispielpanzer als 8-Bit PNGs ein und poste einen weiteren Screenshot, damit du siehst, dass sie kein Problem darstellen. Gestern war es mir schon zu spät dafür.
So, wie versprochen der Screenshot mit echten Einheiten. Die drei Panzermodelle sind 8-Bit PNGs. Leider hat es etwas länger gedauert als ich dachte, weil mein Tool zu erzeugen der neuen SHP-Dateien nicht richtig funktioniert hat und ich erst einmal den Fehler beheben musste. Dafür kann es jetzt aber direkt eine PG2-SHP-Dateien laden und dann als SHP-Datei im neuen Format mit 8-Bit Grafik abspeichern. 4-Bit und kleiner geht noch nicht.
YIPPIEH! Endlich Panzer, und auch in gewohnter Qualität. Trotzdem ist mir die Philosophie immer noch nicht ganz klar. Sollen alle Icons , also auch die alten SHP, einzeln in einen Ordner? Oder gibt es die bisherige Panzer2.dat mit SHP und zusätzlich einen Ordner mit PNGs? Letzterer sollte dann m.E. auch PNG heißen und nicht Data. Sprechende Namen sind die halbe Miete.
Und dann frage ich mich noch, ob die Suite PG2 die PNGS überhaupt darstellen kann. Sonst dürfte die RSF-Bastelei schwierig werden ...
Nabend! Auch wenn es überrascht, ich lese mit und bin erstaunt was hier so "abgeht"! Da muß ich wohl nochmal beginnen und mich genauer einlesen. Es ist aber wirklich interessant und die Zusammenarbeit scheint zu funktionieren. Weiter so! Echt klasse Arbeit.
Gruß Gerd
Logik ist die Kunst, zuversichtlich in die Irre zu gehen!
Zitat von Rayydar im Beitrag #18YIPPIEH! Endlich Panzer, und auch in gewohnter Qualität. Trotzdem ist mir die Philosophie immer noch nicht ganz klar. Sollen alle Icons , also auch die alten SHP, einzeln in einen Ordner? Oder gibt es die bisherige Panzer2.dat mit SHP und zusätzlich einen Ordner mit PNGs? Letzterer sollte dann m.E. auch PNG heißen und nicht Data. Sprechende Namen sind die halbe Miete.
Und dann frage ich mich noch, ob die Suite PG2 die PNGS überhaupt darstellen kann. Sonst dürfte die RSF-Bastelei schwierig werden ...
Tja, die Antwort ist nicht ganz so einfach. Ich fange erstmal mit der Ist-Situation an.
Momentan kann das Spiel nur Grafikdateien mit der Endung *.SHP verarbeiten. Was in dieser Datei für Daten verpackt sind ist fast egal. Der Grund war, dass ich so mit verhältnismäßig wenig Aufwand PNGs mit einbauen konnte. Das habe ich geschafft, indem ich das Format der SHP-Dateien erweitert habe. Es gibt jetzt zwei Formen die alte Form wie sie in PG2 verwendet wurde und eine neue in der ich die Pixeldaten durch PNG-Bilder ausgetauscht habe. SHP-Dateien beide Formen haben den gleichen Grundaufbau und sind für das Spiel mit Ausnahme der Pixeldaten genau gleich lesbar. Die PNGs liegen also in einem SHP-"Container" verpackt, was auch bedeutet, dass eine Einheit nicht wie in OG als eine einzelne PNG-Datei vorliegt, sondern, so wie in PG2 üblich, in Einzelbildern. Wiegesagt, das ganze diente der Einfachheit der Umsetzung.
Jetzt hat sich wären der Umsetzung meine Effektivität bezüglich der Grafikverarbeitung gesteigert, weil ich hier nicht mehr auf reine Assemblerprogrammierung angewiesen bin. Ich arbeite jetzt ja auch in C. Vorstellbar ist es nun auch als "drittes" Format die reinen PNGs von OG direkt zu unterstützen und evtl. auch das Format von Peoples General *.S16 (kommt auf den Bedarf drauf an). Einfacher verarbeitbar ist mein Format, weil ich bei den OG PNGs das Bild erst in seine neun Teile zerteilen muss.
Die Suite PG2 kann mein Format zwar lesen (weil fast identisch zu den normalen SHP-Dateien) aber die Pixeldaten, also die eigentlichen Bilder, werden natürlich nicht richtig dargestellt. Da muss ich ein Tool liefern womit man die gleiche Arbeit tun kann. Zumindest für die Bearbeitung des Equipments. Es sei denn Luis lässt sich überreden mein Format richtig einzulesen, was eigentlich sehr einfach sein sollte, weil er das SHP Format sowieso schon einliest und nur noch die Pixeldaten als PNG verarbeiten müsste.
Zu der Sache mit dem "data"-Ordner. Dieser Ordner ist für mich nichts anderes als eine Panzer2.dat. Beide können exakt die gleichen oder sogar selben Grafikdateiendateien enthalten. Was ich gemacht habe ist folgendes. Wenn das Spiel mich auffordert eine Grafikdatei zu laden, schaue ich zuerst in den Ordner "data" nach, ob sich dort diese Datei befindet. Ist das der Fall, wird die Datei aus dem "data"-Ordner geladen und die Panzer2.dat ignoriert. Wenn die Datei nicht im "data"-Ordner zu finden ist verhält sich das Spiel wie vorher und lädt die Datei aus der Panzer2.dat. Die verwendeten Grafiken müssen also entweder im "data"-Ordner oder in der Panzer2.dat liegen. Ist sie doppelt vorhanden wird der "data"-Ordner bevorzugt behandelt.
Ich hoffe ich habe die Fragen alle richtig und verständlich beantwortet. Falls nicht, versuche ich es heute Abend nochmal. Jetzt muss ich erstmal ins Bett .
EDIT: Achso, der Name "data" für den neuen Ordner kann auch geändert werden. Evtl. soll er aber später auch die wenigen Nicht-Grafikdateien die in der Panzer2.dat enthalten sind und Konfigurationsdateien für die geplanten verschiedenen Auflösungen beinhalten können. Deshalb fand ich "data" ganz gut.