[Projekt] TAW-Klon

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Antworten
Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

[Projekt] TAW-Klon

Beitrag von Krishty » 24.02.2018, 14:23

Ich arbeite seit ein paar Jahren mit ein paar Leuten an einem Flugsimulator, der auf dem 1998er F-22 Total Air War aufbaut (und sich dessen Content borgt).

[youtube]pQaTDLvY4SA[/youtube]

Natürlich sind wir noch meilenweit von einem fertigen Spiel entfernt. Andererseits gibt es aber viel zu viel aus der Entwicklung, wovon ich erzählen könnte – ich wollte das schon seit Jahren irgendwie sortieren, aber ich finde einfach keine Zeit dafür. Und es wird nicht besser.

Darum werde ich nun einfach mittendrin anfangen und hier Updates posten. Und vielleicht zwischendurch ein paar Geschichten aus der alten Zeit. Wenn euch was auffällt oder interessiert, fragt einfach!

Grobe Timeline:
  • 2011 habe ich Total Air War ausgegraben und wollte prüfen, ob man es gut modden kann.
  • Ich bin schnell auf TAW 2.0 gestoßen – eine großartige Community-Mod, in die dutzende Jahre Entwicklung geflossen sind. (Ende der 90er waren Flugsimulatoren irre populär.)
  • Die Mod war technisch am Limit – alles textbasierte und die Texturen waren ausgeschöpft. Neue Modelle wären das nächste gewesen, aber zu schwer – das Modellformat ist das Durchgeknallteste, was ich bisher gesehen habe (grob gesagt eine VM für Glide-Befehle).
  • Wir haben also 2011 einen Model Viewer programmiert, um dem Modding auf die Sprünge zu helfen.
    2011-05-16 dunev.jpg
  • Als der Model Viewer lief, dachte ich mir: Warum nicht die Kacheln der Landschaft nebeneinander anzeigen? … und so hatten wir dann einen Terrain Viewer.
    2011-07-20 targetnames.png
  • Dann dachte ich mir: Warum nicht das Cockpit-Modell vor dem Betrachter rendern? Und warum nicht ein paar Variablen für Geschwindigkeit hinzufügen? … und so hatten wir Ende 2012 einen furchtbar, furchtbar primitiven Flugsimulator.
    2012-08-16 TFXplorer.png
  • 2013 lief dann auch der Sound.
  • Immer, wenn wir dahintergekommen sind, wie das Originalspiel z.B. Schaden verarbeitet, habe ich das natürlich in unserer Software nachgerüstet. So hatten wir Ende 2014 zerstörbare Gebäude.
    2015-01-04 cannon hits.png
  • Ein großer, großer Sprung war dann 2015. Da haben wir die primitive Flugsimulation über Bord geschmissen und den Originalcode reversed – also zwei Monate lang nur Disassembly zu C zurückübersetzt. Im Debugger die Variablen des Originalspiels mit unseren Verglichen. Das war haareraufend, aber seitdem haben wir richtig gute Flugphysik.
  • Ebenfalls 2015 haben wir eine halbwegs brauchbare Physik-Engine programmiert, damit das Flugzeug auch richtig auf den Boden aufsetzen kann und mit dem Terrain kollidieren kann und so. (Verdammt, waren die Reifen schwierig. Die Haftung beim Rutschen habe ich immer noch nicht fertig.)
    [youtube]c8ns89eE9N4[/youtube]
  • Dann kamen UI-Verbesserungen. Instrumente im Flugzeug, mit denen man richtig interagieren kann. Vernünftiges HUD. Dass man Innen- und Außenperspektive umschalten kann. Usw usf.
  • Ach ja – man kann übrigens auch als Panzer oder als Tankflugzeug spielen; aber das ist augenblicklich noch sehr lieblos.
    Bild
  • Nachdem wir so kompatibel zu Total Air War geworden waren, haben wir Unterstützung für den Vorgänger EF-2000 (1995) eingebaut.
    2016-01-19 TFX2.png
  • Letztens habe ich Kondensstreifen angefangen. Die sind zwar hässlich wie die Nacht, aber sie setzen eine vernünftige Simulation von Wind/Temperatur/Luftfeuchtigkeit voraus, und die funktioniert endlich. (Meinen Recherchen nach bereits besser als in X-Plane, das mit uniformer Luftfeuchte arbeitet.)
  • Aktuell bin ich beim Aufräumen. Weil der Code immer nur zur Benutzung im Model Viewer ausgelegt war, und eher zufällig ein Spiel draus wurde, ist das alles eine einzige Katastrophe. Wir möchten z.B. endlich die Landschaft durch ordentliche Modelle in einem ordentlichen Dateiformat ersetzen können – aber im Originalspiel sind Grafik, Physik, und Gameplay alle im Modell selber definiert, und das muss ich jetzt irgendwie aufgedröselt kriegen.
  • Nächste Schritte also:
    • Ordentliche API, um die Simulation von Rendering/Leveln/Flugzeugen zu trennen.
    • Neues Terrain aus Geodaten. (Ich persönlich möchte auch gern meine extrahierten Ace Combat-Levels durchfliegen können.)
    • Simulationstiefe verbessern. (Aktuell haben wir ein paar tausend Schiffe und ein paar hundert Flugzeuge ohne K.I. im Level, aber das ist alles noch nicht rund.)
    • Netzwerkunterstützung.
    • Neuer Renderer (hoffentlich Vulkan).
    • KI.
Falls ihr es selber antesten wollt: http://community.combatsim.com/topic/31051-tfxplorer/
(Ihr braucht aber entweder Total Air War oder F-22 Air Dominance Fighter oder Super EF-2000!)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
RustySpoon
Establishment
Beiträge: 287
Registriert: 17.03.2009, 14:59
Wohnort: Dresden

Re: [Projekt] TAW-Klon

Beitrag von RustySpoon » 24.02.2018, 17:47

Sehr, sehr, SEHR geiler Shit, den du da wieder machst! Ich bin immer wieder erstaunt und beeindruckt, wo du die Muse her nimmst über so lange Zeit solchen Sachen zu basteln. Bitte, bitte mehr davon! :D

Ich konnte auch nie richtig verstehen, warum diese Flugsimulatoren praktisch "ausgestorben" sind. Gerade für heutige Konsolen und VR müsste das doch das ideale Genre sein. Apropos, habt ihr schon mal über VR-Support nachgedacht?

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 24.02.2018, 18:41

Danke!
RustySpoon hat geschrieben:Apropos, habt ihr schon mal über VR-Support nachgedacht?
Klar, aber
  • der aktuelle Renderer ist viel zu langsam
  • Ich weiß auch gerade nicht mehr, wie der VR-Support von D3D 9 ist – wir nutzen noch D3D 9.0c, denn wir haben (oder hatten? Letztes Jahr jedenfalls) tatsächlich noch XP-User :)
  • Ich hatte 2011 TrackIR ausprobiert, aber die haben eine scheiß DRM-geschützte API
Mit dem neuen Renderer dann gern. Übrigens soll Oculus’ Audio-API ganz gut sein (und gratis auch für nicht-VR-Spiele); weiß jemand was darüber?

Außerdem, den letzten Umfragen nach: Wichtiger als VR ist den Leuten, Instrumente auf eigene Bildschirme ausgeben zu können (für selbstgebaute Cockpits). Das wird der neue Renderer wahrscheinlich noch vor VR können.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

joggel
Establishment
Beiträge: 1413
Registriert: 06.11.2007, 19:06

Re: [Projekt] TAW-Klon

Beitrag von joggel » 24.02.2018, 20:23

Sieht wieder mal sehr cool aus, und glückwunsch zum dem bisherigem Ergbenis!

Entschuldige die (vlt dumme) Frage.
Habt ihr den SourceCode zu diesem TAW?
Wenn nein, wie geht man dann dabei vor, eine(n) Mod zu programmieren. Man müsste sich ja dann in die Exe "hooken" oder wie man das nennt, und die Resource-Referenzen verbiegen und so.

Auch stelle ich mir immer die Frage, wie man Spiele "seziert", um bspw. an die Assets heranzukommen? Disassemblieren?
CEO of Dirty Codez Production®

odenter
Establishment
Beiträge: 200
Registriert: 26.02.2009, 12:58

Re: [Projekt] TAW-Klon

Beitrag von odenter » 24.02.2018, 22:14

Krasser scheiss! *thumps up*
Ich habe früher gerne Spiele wie F-117A [1] und EF-2000 gespielt. Habe dafür sogar hunderte Seiten kopiert, wegen des Kopierschutzes. :lol:
Tatsächlich habe ich schon lange keine Flugsimulation mehr gespielt hätte aber Lust auf eine WK2 Simulation weil es nicht das einfache "lock and shoot" ist sondern auch Flugmanöver gefordert sind.

[1] https://www.youtube.com/watch?v=_ij2WAaLPEM

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 25.02.2018, 03:51

joggel hat geschrieben:Entschuldige die (vlt dumme) Frage.
Habt ihr den SourceCode zu diesem TAW?
Haben wir nicht, und das wäre eigentlich einen eigenen Thread wert. Jemand hat tatsächlich einen Vertrag mit Atari geschlossen, dass das Spiel gemoddet werden darf, mit Quelltextzugang. Als der unterschrieben war, fragte er Atari nach dem Quelltext. Deren Antwort: Haben wir nicht; sucht selber danach :)

Seit jeher melden sich alle paar Monate Leute bei uns und fragen nach dem Quelltext (vor einigen Wochen z.B. jemand von der türkischen Luftwaffe für ein Ausbildungsprogramm). Wir haben aber nichts und wissen nichts.

Ist also keine dumme Frage, sondern eine häufige ;)

Meine Meinung dazu, dass der Quelltext zu großen Teilen wertlos ist, wäre auch einen eigenen Post wert – stellt euch nur mal vor, zwei Millionen Zeilen Code von Visual C++ 5 und Assembler in modernes C++ zu portieren. Außerdem gibt es das 1995er DirectX-SDK, Glide-SDK, und die anderen Abhängigkeiten ja gar nicht mehr zum Download. Interviews mit den Entwicklern lassen auch darauf schließen, dass die Code-Qualität unter aller Sau war.
joggel hat geschrieben:Wenn nein, wie geht man dann dabei vor, eine(n) Mod zu programmieren. Man müsste sich ja dann in die Exe "hooken" oder wie man das nennt, und die Resource-Referenzen verbiegen und so.

Auch stelle ich mir immer die Frage, wie man Spiele "seziert", um bspw. an die Assets heranzukommen? Disassemblieren?
Also, als erstes schaut man sich die Dateien an, die das Spiel benutzt. Ziemlich genau so, wie ich es hier schonmal geschrieben habe – Daten anglotzen und Muster finden.

Bei TAW waren die Archive verschlüsselt und komprimiert; dafür musste tatsächlich disassembliert werden. Das war aber vor meiner Zeit; der Thread dürfte hier sein. Jemand namens Benjamin Haisch hatte in den Dateidaten ein LZ77-Derivat erkannt.

Das Flugmodell war besonders schwer. Hier hat mein Partner DrKevDog einen Debug-Modus in der UI entdeckt, der in der Bildschirmecke anzeigt, wie der aktuelle Geschwindigkeitsvektor des Flugzeugs ist. Wir konnten dann die EXE nach dem String durchsuchen. Dort, wo er verwendet wurde, musste die Adresse des Geschwindigkeitsvektors liegen. Dann konnten wir den Code drumherum disassemblieren und ungefähr erraten, wo die anderen Sachen liegen. (Beispiel: Wenn Geschwindigkeit = x * y, dann kann man sicher sein, dass x und y die Beschleunigung und Dauer darstellen. Man verfolgt „einfach“ die Berechnungskette zurück. Bei uns kamen am Ende um die 400 Variablen raus. Ich poste den Code irgendwann mal. Wir haben auch ein paar dicke Fehler entdeckt.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 25.02.2018, 03:53

odenter hat geschrieben:Krasser scheiss! *thumps up*
Ich habe früher gerne Spiele wie F-117A [1] und EF-2000 gespielt. Habe dafür sogar hunderte Seiten kopiert, wegen des Kopierschutzes. :lol:
Tatsächlich habe ich schon lange keine Flugsimulation mehr gespielt hätte aber Lust auf eine WK2 Simulation weil es nicht das einfache "lock and shoot" ist sondern auch Flugmanöver gefordert sind.

[1] https://www.youtube.com/watch?v=_ij2WAaLPEM
Jemand hat sich bei uns gemeldet, weil er ein F-117A-Remake mit Unity aufziehen wollte. Der Fortschritt war anfangs rasant, aber er bekam Probleme mit Unitys Rechengenauigkeit, wenn die Spielwelt größer als ein paar Kilometer wurde, und seitdem haben wir nichts mehr von ihm gehört. Thread hier: http://community.combatsim.com/topic/43 ... simulator/

EF 2000 würden wir gern komplett emulieren, aber ich möchte den Horror mit dem Reverse Engineering der Flugphysik nicht mit dem Eurofighter wiederholen. ABER wir können bereits TAW-Daten in EF2000-Levels nutzen. Hier z.B. ein schöner Screenshot, für den mein Partner mikew extra Paletten und die Übersichtskarte repariert hatte:
2016-12-05 Norway in TFX3 mode.png
(Ist dunkel, aber so war das Originalspiel eben.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

joeydee
Establishment
Beiträge: 665
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von joeydee » 25.02.2018, 10:06

Top Arbeit von eurem Team, und deine Plaudereien aus dem Nähkästchen sind sowieso immer interessant zu lesen! :)

joggel
Establishment
Beiträge: 1413
Registriert: 06.11.2007, 19:06

Re: [Projekt] TAW-Klon

Beitrag von joggel » 26.02.2018, 09:34

Scheint eine unheimlich aufwendige Arbeit zu sein, also das sezieren... bzw aus den Daten irgend ein Muster zu erkennen.
Zu mal man ja erstmal einige Muster kennen muss..

Das sezieren verstehe ich ja, um an die Assets heranzukommen; die machen das ja Spiel aus, sozusagen
Was ich aber nicht verstehe ist, warum ihr nicht gleich alles selber neu schreibt. Die Assets habt ihr ja. Wieso so umständlich einen Mod schreiben?
Oder geht es um Nostalgie? Also... vong feeling her ?^^
CEO of Dirty Codez Production®

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 26.02.2018, 11:07

joggel hat geschrieben:Das sezieren verstehe ich ja, um an die Assets heranzukommen; die machen das ja Spiel aus, sozusagen
Was ich aber nicht verstehe ist, warum ihr nicht gleich alles selber neu schreibt. Die Assets habt ihr ja. Wieso so umständlich einen Mod schreiben?
Oder geht es um Nostalgie? Also... vong feeling her ?^^
Das IST ja alles neu geschrieben :) Das spezielle Datenformat erfordert nur leider auch sehr speziellen Code. Die TAW 2.0-Mod ist übrigens auch kompatibel zu unserem neuen Code :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 04.03.2018, 20:02

Etwas, das auf dem Weg von Model Viewer -> Terrain Viewer -> Spiel mitgewachsen ist, sind die Koordinaten.

Am Anfang waren’s drei floats, dann drei ints, nun ist es ein 32768²-Raster mit drei ints pro Zelle. Das ist ein riesen Problem für die APIs und die Austauschbarkeit des Terrains, weil sich die Zellengröße ebenfalls ändern soll.

Eine vierte megakluge Koordinatenklasse ist keine Lösung, denn das Problem hört ja nicht auf. Bei hinreichend großen Levels möchte man Erdkrümmung haben, und da ist der kürzeste Weg zwischen zwei Punkten keine Linie, sondern eine Geodäte. doubles mit Erdzentrum wären eine Option, aber nur mit viiieel Trigonometrie.

Stattdessen schiebe ich so viel wie möglich in die Simulation und sorge dafür, dass die API für Flugzeuge nur noch mit lokalen (Flugzeug-zentrischen) Gleitkommakoordinaten rechnet. Damit wäre das Koordinatenproblem für zukünftige Flugzeuge erledigt und eine saubere Implementierung Sache des Simulationskerns. Dadurch gewinne ich hoffentlich Zeit, ohne was zu riskieren.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 31.03.2019, 23:05

Weil Datei-Hoster mal wieder mein TAW-Modding-Tool gelöscht haben, und Image-Hoster mal wieder meine Schnappschüsse gelöscht haben, hoste ich nun alles selber.

Hier habe ich mal 140 Screenshots hingeklatscht, die beim Dekodieren von Total Air Wars Dateiformat angefallen sind: http://krishty.com/taw/3view_en#gallery
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
marcgfx
Establishment
Beiträge: 1311
Registriert: 18.10.2010, 23:26

Re: [Projekt] TAW-Klon

Beitrag von marcgfx » 04.04.2019, 03:52

Lädt grad ein bisschen viel Bilder auf einmal (bei mir gehts mega langsam, habe auch nicht die beste Leitung), evtl. erst auf Klick die nächsten 10 laden oder sowas?
edit: Ist glaub wirklich mein Netz, hat inzwischen geladen. Schon gut dass du so viele Bilder über die verschiedenen Schritte machst, könnt ich mir auch ne Scheibe von abschneiden.

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 04.04.2019, 06:24

Die PNGs waren auch noch nicht optimiert; heute abend müsste die Seite von anfangs 140 MiB auf ca. 60 geschrumpft sein. Habe halt erstmal hochgeladen statt drauf zu warten :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Krishty
Establishment
Beiträge: 6860
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty » 10.06.2019, 14:05

Sooo, der nächste große Dump – einige hundert Screenshots und Videos über Partikelsysteme, Physik, Kollisionsabfragen, Datenformate, und viele viele Fails: http://krishty.com/taw/tfxplorer_en#gallery

Wenn man von unten nach oben durchscrollt, kann man geradezu sehen, wie aus einem Model Viewer ein Spiel wird.

So ziemlich jedes Bild/Video erzählt eine Geschichte, aber ich bin nicht ansatzweise dazu gekommen, alles aufzuschreiben. Bei Fragen könnt ihr hier einfach den Link zur Bilddatei posten und ich werde antworten.
2013-05-19 not quite right.png
Wenn ich mir das angucke wird mir übrigens auch klar, warum ich seit 2014 so wenig hier auf ZFX gepostet habe …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
xq
Establishment
Beiträge: 1303
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von xq » 10.06.2019, 14:34

Generelles: Sehr geil! Ich kenn leider die Orginalspiele nicht, aber was ihr da macht, sieht gut aus!
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Wer checkt diese Shaderprogrammierung denn?
JCL: Kein Mensch zwingt Sie jedoch, mit Shadern oder ueberhaupt mit Gamestudio zu arbeiten. Es gibt schliesslich auch andere schoene Hobbies, wie zum Beispiel das Sammeln von Bierdeckeln – JCL quotes

Antworten