Ich bin daran interessiert, mehr darüber zu erfahren, wie Vektorspiele wie Elite und Star Wars Atari von Grund auf aufgebaut wurden. Die Frage ist nicht, wie Vektorgrafiken mit modernen 3D-APIs wie OpenGL und DirectX implementiert werden können, da dies recht einfach ist und kein Vektor- / Matrixsystem wie bei diesen Spielen von Grund auf neu erstellt werden muss.
Einige Dinge, die ich über diese Spiele vermute:
- Sie arbeiten auf einem extrem niedrigen Niveau und sind in ASM geschrieben
- Sie sind echte 3D-Spiele und fälschen sie nicht wie After Burner. Auch nicht wie Wolfenstein 3D. Afterburner verwendete Rotozoom / Raster-Effekte und Wolfenstein 3D verwendete Raycasting und 2D-Skalierung und es ist nicht wirklich 3D, da Sie nicht nach oben gehen können. Selbst wenn Ihnen die Build Engine gefallen könnte, die Duke Nukem 3D verwendet hat, ist alles außer den Wänden nur ein Sprite. Star Fox ist näher dran, da es tatsächliche 3D-Modelle verwendet, aber die Implementierung verwendet den Super-FX-Chip von SNES und verwendet wahrscheinlich Scanline-Tricks. Ich weiß, dass Elite wahrscheinlich auch diese Scanline-Tricks verwendet (zumindest bei einigen Implementierungen wie Elite NES), aber ich bin mir bei SWA nicht sicher, da es einen speziell angefertigten Arcade-Automaten verwendet. In jedem Fall würde ich gerne mehr darüber erfahren.
- Ihre 3D-Modelle sind tatsächliche 3D-Modelle. Sie werden als Vektoren definiert und entsprechend der Position der Kamera transformiert.
Ich weiß, das Beste wäre, die Quelle von Elite zu zerlegen und zu sehen, wie die Dinge von mir selbst gemacht wurden, aber bevor ich das mache, möchte ich mehr darüber wissen, wie sie gemacht wurden und ob es moderne Open-Source-Projekte gibt, die ähnliche Techniken zeigen . Ich meine nicht Elite-Remakes wie Oolite (das OpenGL und Obj-C verwendet), sondern Projekte, die ähnliche Techniken verwenden und die direkte Verwendung von APIs wie OpenGL vermeiden - jedoch nicht unbedingt Projekte auf niedriger Ebene, die 2D-Bibliotheken wie SDL (ohne OGL) verwenden. sollte zumindest vorerst reichen.
Ich weiß, dass der Quellcode von MESA3D wahrscheinlich viele der Routinen enthält, die Spiele wie Elite und SWA implementiert haben - ich möchte sie nur im Kontext eines Spiels sehen. Ich weiß, dass Elite und SWA im Grunde genommen Rasterisierung implementiert, ihr Format für Modelle und einen Loader erstellt haben (ich bin mir ziemlich sicher, dass zumindest SWA Modelle von Modellierern mit Werkzeugen erstellt hat, obwohl es nicht unmöglich ist, TIE-Kämpfer hart zu codieren es ist schwer, dies genau zu tun) und viele andere Dinge, die mir vielleicht nicht bewusst sind. Aber es ist wirklich zeitaufwändig, sich darauf einzulassen, und mir ist nicht viel von dem, was darin enthalten ist, wichtig. Denken Sie daran, dass Spiele wie Elite aufgrund des geringen ROM- und RAM-Werts von Computern und Konsolen zu dieser Zeit sehr leicht waren.
Ich bin neu in 3D-Grafiken und alle meine Annahmen basieren auf meinen begrenzten Kenntnissen in 3D-Geometrie und Mathematik auf Schulebene. Tut mir leid, wenn ich irgendeinen Bullshit gesagt habe. Aber ich würde wirklich gerne mehr darüber erfahren, wie diese Spiele in jedem Detail funktionieren, und möglicherweise nicht nur "X-Buch kaufen", da ich ziemlich pleite bin. Obwohl ich ein Buch über die Entwicklung von Elite oder ein ähnliches Spiel kaufen würde, falls es existiert. Einige allgemeine Vorschläge würden ausreichen.