Wie Sie beginnen, wenn sie versuchen, den Code eines 3D-Spiel-Engine zu verstehen (wie id Tech 3)? [geschlossen]

StackOverflow https://stackoverflow.com/questions/1324402

  •  19-09-2019
  •  | 
  •  

Frage

Ich bin ein C # -Entwickler für den größten Teil. Zurück in der Schule hatte ich Klassen auf C / C ++, damit ich „weiß, C“ und das ist ein gutes Stück von dem Grunde, warum ich ein C # -Entwickler bin.

Allerdings habe ich nie die Gelegenheit, um Code in C / C ++ hatte professionell und ich würde studieren mag, wie ein modernes Spiel-Engine arbeitet, zusammen mit, wie ein industrieller Grad C / C ++ App arbeitet.

Das Problem ist, habe ich keine Ahnung wo ich anfangen soll. Wie in, ich den Motor Quake 3 heruntergeladen Quellcode (das wurde retronymed id Tech 3 ) und ich bin nicht einmal sicher, wo zu beginnen es.

Wie soll ein geschützter C # / WinForms Angriff eine massive C-Codebasis wie id Tech 3 oder einem anderen massiven AAA Motor?

War es hilfreich?

Lösung

Versuchen Sie, die einfachste 3D „Hallo Welt“ Programm zu tun, die die grundlegendsten Teilmenge des Motors verwendet. Das wird wohl lehren Sie Lasten.

Mit großen Codebasen ist es am besten nicht zu , um zu versuchen lernen alles auf einmal. Nur Tauchgang mit einem ganz bestimmten Frage, die Sie sich selbst beantworten müssen (oder können im Internet suchen) oder eine ganz bestimmte Aufgabe, die Sie erledigen müssen. Dieser Ansatz gibt Ihnen den Zweck und die Motivation, die Sie brauchen, um tatsächlich etwas Programmierung zu tun. Das Lernen kommt von selbst.

Andere Tipps

a mod Schreiben wäre ein guter Ausgangspunkt sein.

Start auf kartierten Gebiet: Das Vanille-Spiel. Ändern Zeug. Schauen Sie sich die Granate Bounce-Code. Machen Sie es weiter hüpfen. In clientseitige Prädiktion (die nicht-federnd Geschosse bereits).

Fügen Sie eine teleportieren Waffe. Es wird Ihnen mehr über Kollisionserkennung sagen, als Sie wissen möchten.

Es gibt ein paar wichtige Funktionen, dass Griff die meisten des Spiels: Der Motor Exporte, die trap_ * Anrufe. Es könnte eine große Hilfe zu wissen, was genau Mods mit ihnen tun, bevor der Motor-Code und einen Blick auf ihre Umsetzung zu eröffnen.

Zum Beispiel könnte es Ihnen mehr über den Motor sagen zu wissen, dass Sie LinkEntity jedes Mal eine Einheit bewegt oder auf andere Weise seine Position im Spiel BSP Baum aufrufen müssen nicht aktualisiert und nachfolgenden Motor Anrufe könnte es ignorieren, als zu wissen, genau wie der Baum gespeichert und abgerufen.

Das klingt wie ein Witz, aber: die main() Funktion finden. Das ist der gut definierten Startpunkt der Ausführung des Programms, und Sie sollen in der Lage sein, alles folgen von dort aus.

Dies sollte Ihnen helfen, herauszufinden, auf dem die Subsysteme abhängen, da die Reihenfolge ihrer Initialisierung der Regel von unten nach oben sein. Zum Beispiel wird ein typischer Motor seinen Speicher initialisieren, Debuggen und Subsysteme frühen Tracing, da die meisten anderen Systeme, die solche Dienste sein müssen und läuft.

Sie sollten auch in der Lage sein, die Art und Weise, um herauszufinden, in die Hauptschleife des Spiels, und zu verstehen, was notwendig ist, bevor die Schleife Kontrolle gerät.

Für den Fall, sind Sie für andere 3D-Game-Engines suchen und vielleicht möchten sie miteinander vergleichen, finden Sie dim3:

http://code.google.com/p/dim3/

Andre LaMothe ziemlich lehrte mich alles, was ich über Spiele-Programmierung kennen. Sobald Sie durch diese beiden Bücher zu bekommen, werden Sie ziemlich viel wissen alles, was Sie über 3D-Motoren kennen.

  1. Tricks der Windows-Game Programming Gurus
  2. Tricks des 3D-Spiele-Programmierung Gurus - Erweiterte 3D-Grafiken und Rasterung

Ansonsten versuchen nur zum Spaß Ihre eigenen kleinen Motor zu schreiben, sehen Sie, wie weit Sie bekommen, was Sie verpassen, und Sie werden bald beginnen, den Zweck des anderen Code zu verstehen Sie betrachten,

Auch möchte vielleicht am suchen, um zu versuchen NeHe GameDev Tutorials .

Ich habe noch nie ein großer Fan des Lesens ein großes fertiges Produkts gewesen. Und vor allem der Quake-Codebasis. Es gibt gute Sache, die Sie von ihm sicher lernen können, aber es sollte nicht Ihr Ausgangspunkt sein. Sie müssen zunächst einige neue Konzepte in der Spiel-Programmierung verwendet lernen.

Ich werde vorschlagen, C ++ setzen ein wenig in die Warteschleife (wenn Sie Spiel machen wollen Sie wirklich brauchen, an einem gewissen Punkt, um es zurück zu gehen), aber für jetzt XNA installieren. Es ist so groß Framework als alles .NET. Es gibt viele Anleitungen Spiel XNA da draußen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top