roybaer / mdcii-engine

Plattformunabhängiger Nachbau der Grafikengine von Anno 1602 – Platform independent remake of the graphics engine of Anno 1602/1602 AD
GNU General Public License v2.0
25 stars 5 forks source link

Projektstatus #9

Open ghost opened 5 years ago

ghost commented 5 years ago

Ich wollte nur mal generell fragen, wie es hier so weiter geht. Du warst ja lange Zeit relativ aktiv mit einer jetzt längeren Schaffunkgspause.

Meine bisherigen Änderungen sind maßgeblich beeinflusst von der Bedienbarkeit des Ganzen (Dateien auffinden und laden, etwas mehr Fehlerbehandlung). Ich glaube du hast nen Haufen Wissen über die Dateiformate und deren Inhalte. Gibt's einen Plan, wo es in der nächsten Zeit hingehen soll? Hast du Kapazitäten aktiv weiter zu machen?

roybaer commented 5 years ago

Meine zeitlichen Kapazitäten sind zur Zeit leider sehr begrenzt.

Hier ist eine Liste der Sachen, die ich prinzipiell für am wichtigsten halte:

  1. Ein COD-/GAD-Paser, z.B. auf Basis von boost::spirit. Für COD kann der Decoder-Filterstream aus mdcii-codcat wiederverwendet werden.
  2. Erweiterung der internen Inselrepräsentation von zwei auf drei Lagen, d.h. Basisinsel, gebaute Dinge und Temporäransicht von Bau- und Abrissmodus
  3. Wirtschaftssimulation auf Basis der Daten aus den COD-Dateien. Waren können zunächst „teleportiert“ werden.
  4. Schiffe und Soldaten, z.B. mit Wegsuche aus boost::graph
  5. Das ganze Gewusel

Und irgendwann zwischendurch eine GUI auf Basis der GAD-Dateien. Das ist natürlich alles zusammen noch eine ganze Menge Arbeit.

siredmar commented 5 years ago

Ich hatte also recht... Du hast scheinbar viel Wissen was die Dateien und deren Verwendung angehen. Kannst du irgendwo noch beschreiben welche files wozu benutzt werden, was drin steckt, und wie sie (zumindest in der Theorie) dekoriert werden können?

Ggf. Kann man über github issues die Sachen steuern und den jeweiligen input liefern. Die Implementierung und Doku der Infos, kann dann ja im jeweiligen pull Request geschehen.

Der workflow wäre dann also ungefähr so: Du schreibst ein issue mit der Beschreibung was getan werden soll und lieferst ggf. Antworten bei Rückfragen. Jemand implementiert das und stellt nen PR. Der PR wird von z. B. Die Reviewed und gemerged.

roybaer commented 5 years ago

Kannst du irgendwo noch beschreiben welche files wozu benutzt werden, was drin steckt, und wie sie (zumindest in der Theorie) dekoriert werden können?

Also die GAD-Dateien beschreiben die ganzen Menüs, einschließlich anklickbarer Grafiken und Button-IDs. Sie sind für den menschlichen Leser weitgehend selbsterklärend, aber dafür für die Maschine schwieriger zu parsen. Die COD-Dateien haben etwa das gleiche Format, sind aber per Zweierkomplement (d.h. Vorzeichenwechsel) „verschlüsselt“. Der Einzeiler ./mdcii-codcat Haeuser.cod > Haeuser.txt hilft hier weiter. Da ist quasi alles drin beschrieben, was mit den Häusern zu tun hat. Ansonsten steht zu den Spielständen alles in strukturen.hpp, ergänzt durch bitflags.md und warencodes.md. Die Inseldaten sind in der Datei kein zweidimensionales Array, sondern eine Liste von Inselfeldern bzw. Gebäuden mit X- und Y-Koordinate. Mein zweidimensionales Array missbraucht dann diese Koordinaten-Variablen für die Position im aktuellen Feld bzw. Gebäude. Bei 1x1-Feldern ist das immer (0|0). Nachtrag: inselfeld_t ist in insel.hpp, nicht in strukturen.hpp.

Green-Sky commented 5 years ago

Ich schreibe zufälligerweise gerade mein Wissen zu den ganzen Anno files zusammen. Und werde das dann die Tage öffentlich schalten. Habe aber zurzeit viel um die Ohren, also bitte etwas gedulden... Da es aktuell eine private GitHub Repo ist, könnt ich aber schon Zugriff verteilen, bis es einen füll und leserlichkeits Zustand hat, den ich für Öffentlich vertretbar halte.

Green-Sky commented 5 years ago

So. Ich hab das Projekt jetzt einfach mal öffentlich gemacht. Es fehlt noch viel, und Rechtschreibung ist auch noch ein Probelm. Wenn ihr Fehler findet bitte melden :smile: .