Wie programmiert man einen virtuellen 3D-Raum ohne Game Engine?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich würde dir dazu die folgenden 4 Videos von OneLoneCoder empfehlen. Dort programmiert er eine 3D-Engine von Grund auf und erklärt dabei noch wie es funktioniert:

https://youtu.be/ih20l3pJoeU

https://youtu.be/XgMWc6LumG4

https://youtu.be/HXSuNxpCzdM

https://youtu.be/nBzCS-Y0FcY

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
MarcelHD40 
Fragesteller
 27.06.2020, 18:17

Wenn du schon so zielgenaue Antworten liferst, kannst du auch was verlinken, wie eigentlich das erste Betriebssystem programmiert wurde, ohne einen vorhandenen Text Editor ?

0
AbgeNickt411  01.03.2021, 20:19
@MarcelHD40

Guck dir mal die Videos von NetLamp an. Allerdings werde ich dazu auch ein Tutorial machen

0
MarcelHD40 
Fragesteller
 02.03.2021, 07:11
@AbgeNickt411

Dein Kommentar war nicht unter meinem Gestanden.

Beziehst du dich auf meine Frage ob es das auch in C# gibt?

0
AbgeNickt411  02.03.2021, 11:49
@MarcelHD40

Natürlich Beziehe ich mich in dieser Weise auf die Frage in dem ich deinen Kommentar beantworte

0
MarcelHD40 
Fragesteller
 27.06.2020, 18:21

Leider alles nur C++...

Davon gibts keine C# version, oder?

0
Heutzutage haben kleinere Entwickler den Vorteil, dass es Game Engines gibt, die einen den großteil der eigentlichen Arbeit abnehmen und bereits beim starten eines...
  • Größere Entwickler bedienen sich auch an "Game Engines". Als Beispiel kann ich auf Fortnite/Epic-Games verweisen. Sie bedienen sich auch an einem "remake" der Unity-Engine.
  • Der großteil der eigentlichen Arbeit wird nicht abgenommen. Es wird eher der Großteil der lästigen Arbeit abgenommen.
Woher ich das weiß:Studium / Ausbildung
MarcelHD40 
Fragesteller
 27.06.2020, 18:00

Alles hat doch seinen anfang und bevor es überhaupt engines gibt muss man doch zuerst einen 3D Raum erschaffen der überhaupt als Editor ansicht dient?

Wie genau geht das weil das thema ist bereits so veraltet das man nichts darauf zutreffendes finden wird.

Man findet anleitungen wie man mit Unity arbeitet und der 3D Ansicht aber es gibt keine Anleitungen wie man eine eigene 3D Ansicht macht ohne eine engine weil auch die engine muss ja mal so angefangen haben um überhaupt die Scenenansicht zu ermöglichen.

0
PixelDerHund  27.06.2020, 18:14
@MarcelHD40

Mhh. Das ist natürlich schwierig. Die Engine-Entwickler sind natürlich schwer zu finden, da sie rar sind aber prinzipiell kann jeder eine eigene Engine machen.

Vorausgesetzt, man kennt sich mit Mathe rel. gut aus.

  • Wir nehmen mal eine Fläche. Genauer: ein Dreieck von Punkt A bis Punkt B und es soll rechtwinklig sein.
  • Es soll mit einer Kathete zu dir zeigen
  • Du bildest dann ein Dreieck auf dein Bildschirm ab.
  • Der Winkel(der rechwinklig eig. ist) soll ungefähr sich logistisch (Mit einer Schranke bei 90Grad und der Anderen Schranke bei 180Grad) zu der X-Koordinaten-Differenz zwischen dir und dem Dreieck.
  • Dann ziehst du 2 Linien(lineare Funktionen) Durch deinen Bildschirm (horizontal und eine "oben" eine "unten")
  • zu guter Letzt bildest du eine lineare Funktion namens "g".

g verschiebst du nach links oder recht, je nachdem wie du das Dreieck verschiebst. Die Steigung von g variierst du auch von kongruierend 0 zu kongruierend zu ∞ zu kongruierend 0 (Verhältnis von Verschiebung zu Steigung entspricht der Gaußschen Glocke) . Die Punkte in denen g die Anderen "Achsen" schneidet verbindest du und mithilfe des Winkels kannst du einen Dreieck abbilden, dass du verschoben anschaust.

Das alles macht eine Engine und natürlich nicht nur mit Dreiecken. Du musst bedenken, dass es mit Verformten Objekten auch getan wird (Charaktere usw), bei denen das aber ziemlich schwierig wird.

Anmerkung: Es ist zu beachten, dass es auch ein FOV gibt und dass man das Dreieck auch neigen kann usw. Hinzu kommt noch,dass man es optimieren soll, damit es keine Probleme mit der Leistung macht.

0
verreisterNutzer  27.06.2020, 18:24
@MarcelHD40

Das liegt daran, dass die, die wissen, wie man so etwas macht, keine Anleitungen benötigen. Generell benötigt man Anleitungen überhaupt nicht, auch wenn heutzutage jeder meint, alles mittels ein paar kleiner Tutorials lernen zu können.

Der Editor ist eine Kleinigkeit im Vergleich zur eigentlichen Engine (3D-Raum, Physik...) und nichts anderes als eine Anhäufung von 2D-GUI-Elementen - wie man die erstellt... ein Rechteck hier, ein schattierter Rahmen da und ein MouseEvent dort und schon hat man einen interaktiven Knopf. Das lernt man durch das Betrachten der API der Sprache und vielem, vielem Nachdenken und Erkennen logischer Zusammenhänge.

Wie erstellt man eine Grafik- oder Physik-Engine? Durch mathematisches Wissen, das überall verfügbar ist. Eignet man sich dies an, so knüpft man Verbindungen mit dem Wissen über Software-Entwicklung und entwickelt...

0
PixelDerHund  27.06.2020, 18:26
@verreisterNutzer

Ja da hast du recht. Eine Engine erfordert unnormal viel mathematische Kenntnisse. Nicht selten habe die Entwickler einen Doppel-Abschluss o.ä.

0

Das ist natürlich nicht so einfach zu beantworten. Die indirekte Antwort ist: es ist sehr kompliziert, deswegen gibt es ja Game Engines. Da steckt viel Mathematik drin. Im Studium haben wir mal ein 3D-Modell "from the scratch" dargestellt und das war natürlich extrem langsam ohne jegliche Optimierungen und Ausnutzung der GPU.

Außerdem würde ich nicht sagen, dass es leicht ist, ein etwas umfangreicheres 3D-Spiel zu programmieren, wenn man eine Game Engine verwendet. Die Game Engine macht es erst möglich, sowas profitabel zu machen, ansonsten bräuchte man ein riesiges Team oder 10 Jahre für ein Spiel statt 1-3 Jahren, was sich sicher nicht rechnet. Es bringt nichts, das Rad neu zu erfinden. Es ist so, auch mit einer Game Engine, schon genug Arbeit.

MarcelHD40 
Fragesteller
 27.06.2020, 18:08

Wir nehmen all die Sachen als selbstverständlich, ohne uns zu fragen wieso und wie überhaupt das enstehen kann?

Ein einfaches beispiel ist z.b. wie hat jemand ein Betriebsystem programmieren können wenn es noch kein Betriebsystem gibt um überhaupt einen Text Editor verwenden zu können?

Sowas wird einem nie gesagt und finden kann man das nicht richtig weil das Thema viel zu spezifisch ist.

Also wie macht man eigentlich einen leeren 3D Raum um überhaupt das umschauen zu ermöglichen in einem Scenenfenster wie im ersten Bild?

0
AbgeNickt411  01.03.2021, 20:20

Ich habe es geschaft in 2 Wochen alleine Fortnite mit einer besseren Grafik nach zu programmieren (Unity)

0

Wenn du wirklich alles von Hand machen willst musst du dir den Bildschirm wie ein 3D Koordinatensystem aus Mathe vorstellen. Die markanten Punkte musst du dann zeichnen und verbinden. Für die Rotation etc. werden dann mathematische Berechnungen nötig sein :)