[Projekt] TAW-Klon
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.
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.
-
- Establishment
- Beiträge: 493
- Registriert: 01.03.2009, 19:09
Re: [Projekt] TAW-Klon
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
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
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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 …
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
Ich habe testweise das Design der Windows-10-Settings-App kopiert. Das bedeutet:
Fluent:
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.
- 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.
Fluent:
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.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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.
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.
- Schrompf
- Moderator
- Beiträge: 5063
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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.
Als Ersatz habe ich ein eigenes Forum eröffnet; mal sehen, wie das läuft.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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.
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.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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!
Re: [Projekt] TAW-Klon
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/
https://jonathank.de/games/
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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.
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.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?
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.
Re: [Projekt] TAW-Klon
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.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.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- woodsmoke
- Establishment
- Beiträge: 102
- Registriert: 30.06.2023, 14:05
- Wohnort: Ludwigshafen
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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.
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.
Spiele: https://woodsmoke.itch.io/
Videos: https://www.youtube.com/@w00dsm0ke/
Zeichnungen: https://www.deviantart.com/melerski/gallery/all
Videos: https://www.youtube.com/@w00dsm0ke/
Zeichnungen: https://www.deviantart.com/melerski/gallery/all
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] TAW-Klon
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!