Descent 3 Quellcode veröffentlicht
(github.com/kevinbentley)- Die Open-Source-Engine von Descent 3 wurde unter der GPL-3.0-Lizenz veröffentlicht; zur Nutzung müssen die Spieldateien separat selbst bereitgestellt werden
- Diese veröffentlichte Version enthält den „1.5“-Patch, der früher von Kevin Bentley und Jeff Slutter geschrieben wurde
- Dieser Patch wurde von der Descent-Community in einen stabilen Zustand gebracht
- Für Installationsdetails wird auf
USAGE.mdverwiesen, für den Build-Prozess aufBUILD.md - Probleme beim Bauen oder Ausführen sollen im GitHub-Tracker gemeldet werden, Beiträge als Patches über GitHub eingereicht werden
Veröffentlichte Engine und Lizenz
- Die Open-Source-Engine von Descent 3 wurde veröffentlicht
- Die Lizenz ist GPL-3.0
- Diese Engine enthält den „1.5“-Patch, den Kevin Bentley und Jeff Slutter vor einigen Jahren geschrieben haben
- Dieser Patch wurde von der Descent-Community in einen stabilen Zustand gebracht
Nutzung und Build
- Um die Engine zu nutzen, müssen Nutzer eigene Spieldateien bereitstellen
- Details zur Installation stehen in
USAGE.md - Für den Build des Spiels wird auf die Build-Anweisungen in
BUILD.mdverwiesen
Fehlermeldungen und Beiträge
- Probleme, die beim Bauen oder Ausführen auftreten, sollen im GitHub-Tracker gemeldet werden
- Jede und jeder kann beitragen
- Die Entwickler-Community befindet sich auf Discord im Descent Developer Network
- Patches müssen über GitHub eingereicht werden
1 Kommentare
Meinungen auf Hacker News
Ich habe dieses Spiel wirklich geliebt. Ich habe nie verstanden, warum sich dieses Konzept nicht als eigenes Genre etabliert hat.
Es gab kein echtes Oben, man konnte sich frei in 360 Grad bewegen, und die Gegner waren klug und haben einen sogar aus der Distanz ausgeschaltet. Früher habe ich unglaublich viel Zeit damit verbracht, und ich will es unbedingt wieder ausprobieren.
https://store.steampowered.com/app/753640/Outer_Wilds/
Als direkter Nachfolger dieses Subgenres gilt allerdings Overload.
[https://store.steampowered.com/app/448850/Overload/](https://store.steampowered.com/app/448850/Overload/)
https://youtu.be/T2-IHgNYaKA
https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
https://youtu.be/9U0KNVQmlcM
Ich vermisse dieses Spiel.
Zu der Aussage, man verstehe nicht, warum dieses Konzept kein Genre geworden ist: Ich denke, das liegt daran, dass Weltraum-Flugsimulatoren leider schon immer ein Nischengenre waren. Sogar noch nischiger als Flugsimulatoren.
Ein interessantes Feature war, dass man den Anzug abschalten und in einen Stealth-Modus wechseln konnte; dann verschwanden alle HUD-Elemente, und auch die meisten Gameplay-Geräusche wie Explosionen oder vorbeizischende Kugeln wurden abgeschaltet.
Im Universum des Spiels wurden all diese Geräusche vom Anzugcomputer erzeugt, und die Prämisse war, dass der Weltraum still ist.
Heute gibt es mit Elite Dangerous eine moderne Variante, aber die Flugmechanik ist zu nah an der von Flugzeugen, als dass man es gut mit Descent vergleichen könnte.
Ich habe Descent 1 auf der PS1 gespielt, und ich erinnere mich, dass auf der Packung stand, die Gegner würden sich an den Spielstil anpassen. Nachdem ich älter geworden bin und Machine Learning sowie einige KI-Techniken studiert habe, habe ich mich immer gefragt, was genau das bedeuten sollte.
Meine PS1 wird wohl kaum Gradientenabstieg ausgeführt haben; welcher Trick steckte also hinter der Behauptung, die Gegner würden den Spieler lernen und sich anpassen?
Meine Frau und ich haben uns in den Descent-Foren kennengelernt, und die Namen unserer drei Söhne stammen von Descent-Freunden: KoolBear, Jediluke und Mark392. Wir waren auch auf Hochzeiten von Descent-Freunden, und leider auch auf Beerdigungen; ruhe in Frieden, JinX.
Ich hielt D3 für den schwächsten Teil der Descent-Reihe, aber diese Nachricht freut mich wirklich. Danke an Kevin.
Es ist weit über 15 Jahre her, dass ich zuletzt in der Descent-Community aktiv war. Als die PlanetDescent-E-Mail verschwand, verlor ich auch den Zugriff auf mein ICQ-Konto, und online benutze ich den Namen DCrazy inzwischen auch nicht mehr. Auch, weil ich mich ein wenig von meinem damaligen, frühen Teenager-Ich distanzieren möchte.
Trotzdem hatte Descent, besonders D3, großen Einfluss darauf, dass ich in die Softwareentwicklung gegangen bin, und ich bin für diese Erinnerungen immer dankbar.
Mit 12 habe ich beim Lesen der Descent-FAQ IRC kennengelernt und versucht, IHHD über ein 14,4k-Modem einzurichten, um zu spielen. Mit DEVIL habe ich auch Level gebaut.
Heute bin ich Ingenieur und Spieleentwickler. Danke, dass ihr Descent in die Welt gebracht habt. Auf mich persönlich hatte es einen enormen Einfluss.
Schon allein an ein Spiel heranzukommen, war meist eine Reise für sich.
Kinder haben heute unendlich viele Spiele auf dem Handy. Sie kommen kaum noch mit dem darunterliegenden System in Berührung, und es ist auch keine Anstrengung nötig. Einfach herunterladen und das nächste halbwegs gute Spiel spielen.
Ich glaube, diese Generation verpasst da etwas.
Das Steuerungsschema von Descent war für mich der Auslöser, der die Invertierung der Y-Achse in First-Person-Spielen für immer fest verdrahtet hat.
Mein Gehirn passte perfekt zur Denkweise mit sechs Freiheitsgraden, und danach mussten sich alle FPS-Spiele daran anpassen, selbst wenn sie nicht auf Fliegen basierten.
Waren nur wir so unterwegs?
Descent hat zusammen mit Flight Simulator 95 seinen Teil dazu beigetragen, mein Gehirn zu ruinieren. Ohne invertierte Y-Achse kann ich nicht spielen.
Ich wünschte, die Standardeinstellung in allen Spielen wäre invertierte Y-Achse. Ich weiß nicht mehr, wann ich mich daran gewöhnt habe, vermutlich bei X-Wing oder Quake.
Es kommt wohl von der Flugzeugsteuerung, bei der die Nase hochgeht, wenn man zieht. Stick, Joystick, Yoke – alles so. Counter-Strike hat es ruiniert. :)
Am Ende fühlten sich für mich beide Steuerungsarten gleichermaßen unintuitiv an, und ich werde wohl warten müssen, bis jemand ein modernes Zelda mit der Maus ordentlich zum Laufen bringt.
Ein paar Freunde von mir spielten Descent kompetitiv, und ich war überrascht, als ich vom sogenannten Trichording erfuhr. Um die Geschwindigkeit zu maximieren, muss man mehrere Tasten gleichzeitig drücken und sich auf drei Achsen zugleich bewegen. Zum Beispiel vorwärts/rechts/hoch.
Die Besten schießen diagonal durch die Maps.
Ich habe das immer für einen Fall gehalten, in dem ein Bug zum Feature wurde, ähnlich wie das Skifahren in Tribes. Ich habe gerade im Repository nach Hinweisen gesucht, aber rund um die Codezeilen, in denen das passiert, letztlich keine relevanten Kommentare gefunden.
https://github.com/kevinbentley/Descent3/blob/142052a67d4318...
In Descent kam noch die Hoch/Runter-Achse dazu, sodass man etwa 1,7-mal so schnell war wie nur beim Vorwärtsflug.
Descent 2 und 3 hatten außerdem einen Afterburner, der die Vorwärtsgeschwindigkeit erhöhte. Die Energie war begrenzt, lud sich aber ziemlich schnell wieder auf; bei 100 % Energie war der Boost am stärksten, und je näher die verbleibende Energie an 0 % sank, desto ineffizienter wurde er.
Deshalb lernten die Leute, ihn mehrmals pro Sekunde kurz ein- und auszuschalten, sodass er zwischen den extrem kurzen Nutzungen wieder auflud und statt auf niedrige Werte abzustürzen immer bei etwa 95 % blieb.
Wenn man wirklich schnell sein wollte, musste man sich dreidimensional diagonal bewegen und den Afterburner mehrmals pro Sekunde pulsartig betätigen.
Nachdem es entdeckt worden war, sahen manche Designer es negativ, andere positiv, und selbst Jahre nach ihrem Abschied von Descent, als sich das Team wieder zusammentat, um Overload zu entwickeln, war es noch ein Streitpunkt.
Meine Frau und ich moddeten D1, um ein paar Alternativen zu testen, und führten Mike/Matt/Luke/Dan sowie den Leuten, die an dem Tag im Studio waren, eine Demo vor. Am Ende kamen wir zu dem Schluss, dass sich „Vektorunabhängigkeit einfach gut anfühlt“, und deshalb bekam Overload eine Umschaltfunktion zwischen einem normalisierten Flugmodus mit schnellerem eindimensionalem Flug und einem Trichording-Modus.
Eine naive Implementierung, die einfach die x- und y-Vektoren addiert, ergibt einen Summenvektor und macht einen um die Länge der Diagonalen schneller, also um das 1,41-Fache. In 3D wird es noch mehr.
Das ist in vielen alten Spielen ein sehr häufiger Bug und zugleich ein Feature.
Quake berücksichtigte diesen Bug beim Gehen, aber nicht beim Springen; daraus entstand die komplexere Technik zur Geschwindigkeitssteigerung namens Strafe-Jumping.
var playerX_input = Input.GetHorizontal(); // float in range -1 to 1
var playerY_input = Input.GetVertical(); // float in range -1 to 1
var playerVelocity = new Vector2(playerX_input, playerY_input);
Jetzt kann sich der Spieler um 1 Einheit/Frame auf X und um 1 Einheit/Frame auf Y bewegen; bei diagonaler Bewegung hat der Geschwindigkeitsvektor die Länge des Vektors (1,1), also sqrt(2), ungefähr 1,41.
Um das zu korrigieren, könnte man ungefähr Folgendes tun:
if(playerVelocity.length > 1)
{
playerVelocity = playerVelocity.normalized();
}
Dadurch waren sie von hinten wirklich schwer zu treffen.
Ich habe gegen ein paar Ladder-Spieler gespielt und war verblüfft, weil das ein völlig anderes Skill-Niveau war.
Einer der Gründe, warum diese ursprünglichen Spiele für mich so faszinierend waren, war, dass es praktisch keine Skill-Obergrenze gab.
Es wäre wirklich großartig gewesen, solche Matches auf Streaming-Plattformen sehen zu können.
Der Referenzlink zu dem Teil „Jemand hat kürzlich gefragt, ob der Quellcode von Descent 3 veröffentlicht wird“: https://news.ycombinator.com/item?id=40009248
Wirklich großartig, danke.
Zu dem Abschnitt „Einige proprietäre Sound- und Video-Bibliotheken von Interplay wurden entfernt. Es geht um die Formate ACM und MVE. Falls jemand helfen möchte, einen Konverter zu schreiben, damit die alten Cutscenes funktionieren: Ich habe diesen Code. Es wird etwas Arbeit kosten, den Code mit Stubs zu versehen, damit er kompiliert“: Zur Info, FFMPEG scheint diese Formate zu unterstützen.
Ich frage mich, was nötig war, um im Hintergrund die Zustimmung zu bekommen. Kannst du den Entscheidungsprozess ein wenig erklären? Das ist eine gute Sache, aber heutzutage viel zu selten.
Schon damals war davon die Rede, den Code zu veröffentlichen, aber ich wollte zuerst Patches herausbringen und einen Ersatz für den MVE-Decoder finden.
Vor ein paar Tagen habe ich hier in den Kommentaren zu einem anderen Beitrag den Eigentümer per Mail gefragt, ob ich den nicht veröffentlichbaren Code entfernen und einfach weitermachen dürfe; er antwortete: „Ja, mach ruhig.“
Auf der Wikipedia-Seite habe ich dieses Kleinod gefunden[0]:
„Eine 2002 veröffentlichte Studie nutzte Descent 3, um die Flugaktivität von Schwärmern zu untersuchen. Mithilfe des Editor-Moduls des Spiels erstellten die Forscher eine virtuelle Umgebung, die aus einer flachen Ebene mit rechteckigen Säulen bestand, in der das Tier erfolgreich navigierte.“
[0] https://en.wikipedia.org/wiki/Descent_3#Other_uses
„In diesem Paper beschreiben wir den Entwurf eines neuartigen Insekten-Flugsimulators, der eine realistische und interaktive visuelle Umgebung mit mechanosensorischen und olfaktorischen Reizen kombiniert und zusammen mit modernen mehrkanaligen neurophysiologischen Aufzeichnungstechniken eingesetzt wird. Das System nutzt aktuell verfügbare Computertechnologie und MEMS-Fertigungstechniken und wird verwendet, um parallel die Aktivität mehrerer Neuronen des zentralen Nervensystems während eines realistischen Closed-Loop-Flugs des Schwärmers Manduca sexta zu untersuchen.“
https://www.sciencedirect.com/science/article/abs/pii/S01650...
Ich habe gehört, dass viele Leute Descent mögen, und es sah auch großartig aus. Es wirkte ein bisschen wie eine Mischung aus X-Wing und Quake.
Aber ich konnte es nicht länger als ein paar Minuten spielen, und in meiner langen Spielerkarriere war es vielleicht das erste Spiel, das ich so schnell aufgegeben habe. Es hat etwas Beunruhigendes an sich, als würde man mit Boxhandschuhen Magnete handhaben. Schon beim Anschauen von Gameplay-Videos habe ich dasselbe Gefühl.