[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.
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: [Projekt] TAW-Klon

Beitrag von Matthias Gubisch »

Wenn es bei vulkan Einschränkungen diesbezüglich gibt liegt das am window Manager bzw os aber nicht an vulkan selbst
Ansonsten ist es so dass eine queue nur von einem thread gefüttert werden soll. Der way to go ist also die command buffer asynchron zu erzeugen. Und ein thread sammelt die dann zusammen und submittet sie zur gpu
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Schrompf hat geschrieben: 19.07.2020, 11:00Wenn ich mal groß bin, komme ich auch in die Nähe Deiner Startzeiten. Ne eigene Standardlib werde ich sicher nie schreiben, aber man kann auch so noch einiges rausholen, da bin ich überzeugt.
Gelesen, gelächelt, und dann mit Terror festgestellt: Ich habe da noch gar nicht meine eigene Standardlib verwendet.

Also die MS-CRT rausgeschmissen, meine eingebaut, über 20 % kleineres Programm gefreut.

Im Debugger der Schock: An Abhängigkeiten ändert das absolut gar nichts, nada, null, nichts.

Die Erklärung: In Windows 10 nutzt Win32 die Microsoft-CRT. Solche Systemmodule wie Kernel32.dll, User32.dll usw. haben den ganzen Satz API-MS-WIN-CORE-FUCKYOU.dll in ihren Abhängigkeiten. Plus solche NSA-Maulwürfe wie %WINDIR%\System32\msvcp_win.dll (was zur Hölle soll das überhaupt tun?!), ucrtbase.dll, und das allseits verhasste Bloat-Monster TextInputFramework.dll.

Der Dependency Walker geht direkt in die Knie, weil Kernel32.dll die Kernelbase.dll erfordert, und die wiederum API-MS-WIN-schlagmichtot, und die wiederum Kernel32.dll, was sich dann im Kreis dreht bis die Rekursionstiefe deckelt.

Ist das strukturelle Inkompetenz? Sie wollen Win32 so langsam machen, dass UWP in den Benchmarks nicht mehr so schlecht abschneidet?

Oder haben sie schlicht alle ihre Programmierer durch Anfänger ersetzt? Früher© musste Windows noch mit einem speziellen Compiler gebaut werden, der solche Abhängigkeiten vermeidet. Aber dann funktionieren die tollen neuen UWP-Smartpointer-Klassen mit ihrem Debug-Output-Spam nicht und keiner derer Programmierer weiß noch, was eine CRT ist – darum nutzen sie nun das normale Visual Studio?

NTDLL.DLL ist die letzte Bastion ohne Abhängigkeiten. Das bringt aber nichts, denn ein Laden von DirectX lädt auch Kernel32.dll, und dann hat man den ganzen Mist wieder im Prozess.

Hätte ich doch all die Zeit in ReactOS investiert …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Ich habe testweise das Design der Windows-10-Settings-App kopiert. Das bedeutet:
  • Alle Margins raus. Listen usw erstrecken sich bis zur Fenstergrenze und berühren sich; das interne Padding übernimmt die Trennung.
     
  • Textpriorität durch Farbe markieren (Grau für weniger wichtigen Text). Dass ich das nicht früher gemacht habe, lag an den selbstprogrammierten Controls.
     
  • Hintergrund nicht mehr grau für den Dialog und dunkel für Listeninhalt, sondern grau für Kategorien und dunkel für den Bereich, in dem der Anwender tatsächlich arbeitet.
Klassisch:
Bild

Fluent:
Bild

Ich finde es tatsächlich wesentlich aufgeräumter, kann aber schlecht bestimmen, ob es vor allem an der Textfarbe liegt. Da floss noch Kleinkram ein (Fein-Tuning der Schriftgrößen; Korrektur der Spaltenbreite, …).

Das bleibt nun jedenfalls erstmal so; mal schauen, wie weit ich in dem Stil komme.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Ich habe einen Artikel über das Originalspiel und seine Modding-Szene geschrieben: http://krishty.com/taw/history

Ist eigentlich nur interessant für Leute, die damals Total Air War / F-22 ADF / EF2000 gespielt haben – für die aber richtig. Es geht um Hintergründe zu den Spielen, kleine und große Durchbrüche beim Modden, Gespräche mit dem Publisher über Quelltext, und um Intrigen (ja, wirklich).

Ist alles noch nicht fertig, aber ich arbeite schon sooo lange dran und er wächst und wächst … also haue ich lieber jetzt raus, was ich habe, anstatt es nochmal Jahre auf dem Desktop vergammeln zu lassen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Schrompf »

Krasser Stuhlgang. Danke für's Aufschreiben, ich bin gespannt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Nach 25 Jahren ist es so weit: Die community.combatsim.com-Foren schließen heute. Das ist für mich große Kacke: Alles, was wir in den letzten elf Jahren an Reverse Engineering und Analyse gemacht haben, liegt dort. Ich sichte und speichere noch so viel Material wie möglich.

Als Ersatz habe ich ein eigenes Forum eröffnet; mal sehen, wie das läuft.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Ich kann zur Abwechslung mal was zeigen: Ich habe die Radsimulation verbessert, so dass sich die Räder nun auch tatsächlich drehen.

Touchdown in Zeitlupe mit Visualisierung der Kräfte. Mal gucken, ob Discord als Video-Hoster funzt!


Oben sieht man, dass bei der ersten Berührung lange Pfeile entstehen, die sich dann langsam normalisieren. Das ist die Gleitreibung, wenn das stehende Rad mit der bewegten Landebahn in Berührung kommt. Bis die Kräfte normalisiert sind (und das Rad als Drehgeschwindigkeit die relative Geschwindigkeit der Landebahn angenommen hat), müsste ich jetzt Qualm / Quietschen / Reifenspuren emittieren.

Konkret: Anstelle eines Ray Cast gegen das Terrain, der einfach direkt die Bewegungsgeschwindigkeit des Terrains annimmt, modelliere ich nun Drehimpuls und Durchmesser des Rads, Reibungskoeffizient der Oberfläche, usw.

Das klingt komplex, lässt sich aber ziemlich einfach im Code lösen, wenn Masse+Durchmesser+Frame-Zeit als konstant angenommen werden können. Dann lassen sich alle Kräfte als Änderung der Umlaufgeschwindigkeit in m/s behandeln.

Seine Grenzen erfährt das Modell, wenn es mit großer Krafteinwirkung stillsteht (z. B. angezogene Bremsen bei laufenden Triebwerken). Dann merkt man, dass ich keinen richtigen Solver für die Oberflächenkontakte verwende, sondern das iterativ fake – und dann schiebt sich das Flugzeug trotz stehender Räder vorwärts. (Diese Scheiße ist der Grund, warum es Flugsimulationen lange vor Autosimulationen gab – viel einfacher!) Für den Anfang ist es aber gut genug.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Krishty hat geschrieben: 24.02.2018, 17:41Wichtiger 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.
Geile Dinge, die man damit machen kann: HUD auf ein echtes HUD umleiten, das man sich vor den Bildschirm stellt. Ribbon hat das mal getestet; die Geräte kosten zwischen 800 und 1500 USD.

In mein Spiel hab ich’s noch nicht eingebaut, aber der Drang steigt!

Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Jonathan »

Krishty hat geschrieben: 04.06.2023, 20:18 Ich kann zur Abwechslung mal was zeigen: Ich habe die Radsimulation verbessert, so dass sich die Räder nun auch tatsächlich drehen.
Nice, ich mag Physik :D

Wofür ist das dann am Ende? Damit die Reifengeschwindigkeit korrekt ist? Oder damit das Flugzeug korrekter abbremst? Würde nicht, wenn man unten rechts vom Masseschwerpunkt das Flugzeug nach hinten zieht (weil Hinterräder zuerst aufsetzen) die resultierende Kraft auch die Nase des Flugzeugs nach unten drücken?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

Jonathan hat geschrieben: 03.09.2023, 17:29Wofür ist das dann am Ende? Damit die Reifengeschwindigkeit korrekt ist? Oder damit das Flugzeug korrekter abbremst?
Einer der wichtigsten Hinweise beim Landen ist das Quietschen der Reifen beim Aufsetzen. Ohne merkst du nicht richtig, wann du den Boden berührst (jedenfalls nicht, bis VR auch Popometer einführt). Aus der äußeren Ansicht ist das auch sehr auffällig, weil dann eine große blaue Qualmwolke entsteht.

Diesen Augenblick, wann man aufsetzt, zu finden ist aber nicht trivial: Du willst das Geräusch und die Qualmwolke nicht beim Starten haben, wenn sich die Räder langsam von der Fahrbahn heben. Du willst das nicht haben, wenn das Flugzeug vor dem Hangar spawnt und das erste Mal den Boden berührt. Das Flugzeug kann leicht hüpfen, dann wollen wir keine zwei Qualmwolken haben. Usw usf. Der betreffende Code wurde immer komplizierter und bekam immer mehr Workarounds.



Für die Grafik brauchte ich eh noch rotierende Räder, und da dachte ich mir, ich schlage zwei Fliegen mit einer Klappe und berechne das direkt physically-based.

Dazu bekam ich Schlupf gratis: Falls ich mal Autos mit quietschenden Reifen machen möchte, liegen alle nötigen Größen als Nebenprodukt fertig vor.
Würde nicht, wenn man unten rechts vom Masseschwerpunkt das Flugzeug nach hinten zieht (weil Hinterräder zuerst aufsetzen) die resultierende Kraft auch die Nase des Flugzeugs nach unten drücken?
Tut sie. Allerdings hat das Ding eine Masse von >25 Tonnen, und genau so groß ist die Kraft auf die Tragflächen – das Aufsetzen der Räder spürst du als kleinen, aber deutlichen Ruckler beim Spielen. Mehr nicht.

Wenn das Flugzeug auf 80 Knoten runtergebremst ist, und du die Nase noch hoch hälst und dann die Fahrwerksbremse betätigst, reißt es deine Nase aber tatsächlich sofort runter.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Jonathan »

Krishty hat geschrieben: 03.09.2023, 19:59 Diesen Augenblick, wann man aufsetzt, zu finden ist aber nicht trivial: Du willst das Geräusch und die Qualmwolke nicht beim Starten haben, wenn sich die Räder langsam von der Fahrbahn heben. Du willst das nicht haben, wenn das Flugzeug vor dem Hangar spawnt und das erste Mal den Boden berührt. Das Flugzeug kann leicht hüpfen, dann wollen wir keine zwei Qualmwolken haben. Usw usf. Der betreffende Code wurde immer komplizierter und bekam immer mehr Workarounds.
Hah, ja, das ist genau die Art von Problemen über die man erst dann nachdenkt, wenn man sie wirklich einbauen muss. "Räder berühren den Boden" ist das intuitive Kriterium, "Beschleunigung der Raddrehung über Schwellwert x" das physikalisch korrekte. Und ist es immer nett, wie einfach Probleme und robust Problemlösungen werden können wenn man das Problem erstmal richtig formuliert hat. Sehr schönes Beispiel.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
woodsmoke
Beiträge: 43
Registriert: 30.06.2023, 14:05
Wohnort: Ludwigshafen
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von woodsmoke »

Mein lieber Scholli das sieht ja schick aus. Und die ganze Physik, das ist ja eine richtige Simulation. Dass Leute echte HUDs verbauen, kannte ich auch nicht. Aber mich wunderts nicht bei dem Aufwand den mancher betreibt.

Ich bin auch nicht so die Zielgruppe von modernen Kampfjet Spiele und bevorzuge auch WK1 (Flying Corps) und WK2 (IL-2 Sturmovik 2001). F/A-18 Interceptor am Amiga500 habe ich als Kind gespielt aber nur rumgeflogen ohne Gefecht.
Zuletzt geändert von woodsmoke am 07.09.2023, 12:10, insgesamt 1-mal geändert.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] TAW-Klon

Beitrag von Krishty »

woodsmoke hat geschrieben: 05.09.2023, 13:24Ich bin auch nicht so die Zielgruppe von modernen Kampfjet Spiele und bevorzuge auch WK1 (Flying Corps) und WK2 (IL-2 Sturmovik 2001). F/A-18 Interceptor am Amiga500 habe ich als Kind gespielt aber nur rumgeflogen ohne Gefecht.
Ja, das war die goldene Zeit der Flugsimulationen. damsonn lädt jeden Tag ein Gameplay-Video aus der Ära hoch und ich bin immer wieder fasziniert, dass es damals so viele gab und auch, wie fortschrittlich sie teils waren!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten