3D-Engine in C++ erstellen?

Eine Eninge vereinfacht doch eigentlich nur die DirektX programmierung. Oder?
Ich bin kein experte, aber ich stell mir unter eine Engine ein Stück software vor, auf der man sein programm aufsetzt, aber der engine nur noch sagen muss lade diese datei oder jene, die ich vorher in einem 3D-Grafikprogramm erstellt hab. Die eigene dazugeschriebene Software ist praktisch nur noch ereignis handler.
 
Das würde mir nur weiterhelfen, wenn ich mit dieser einen Engine arbeiten wollte. Will ich aber nicht. Ich will ja eine eigene machen.

C Coder hat gesagt.:
Ich bin kein experte, aber ich stell mir unter eine Engine ein Stück software vor, auf der man sein programm aufsetzt, aber der engine nur noch sagen muss lade diese datei oder jene, die ich vorher in einem 3D-Grafikprogramm erstellt hab. Die eigene dazugeschriebene Software ist praktisch nur noch ereignis handler.
So ähnlich. Eine Engine kann (meistens) noch mehr. Sie verwalten den Speicher, vereinfachen Berechnungen, können Figuren animieren...
Meinst du mit ereignis handler sowas wie einen Befehlsgeber?

Wie kann man eigentlich 2D in DirektX9 verwenden?
Kennt ihr da irgendwelche Tutorials? DirektDraw gibt es ja seit DirektX8 nicht mehr.
 
Wie kann man eigentlich 2D in DirektX9 verwenden? Kennt ihr da irgendwelche Tutorials? DirektDraw gibt es ja seit DirektX8 nicht mehr. 20.10.04 19:43
Wieso stellst du diese Fragen nicht einfach mal in einem der 2 oben genannten Foren. Schließlich sind das Foren die sich aufs Spieleprogrammieren spezialisiert haben. :rolleyes:
Oder du suchst mit :google:.
 
Hehe, Danke! Bin ich wieder was klüger geworden! :D

Aber zurück zum Thema: Wie stellst du dir denn deine Engine vor?
Also was soll sie alles können?
 
Das war nur ne Frage nebenbei. Such ich mir irgendwan mal.

Also sie sollte DirektX9 vereinfachen ;-).
Sie sollte (hintergrund)musik abspielen können, das erstellen von Soundeffekten erleichtern, Eingaben abfragen (also auf sowas wie Joystickbewegungen reagieren), den ganzen Initialisierung-Kram kürzen, 2D Grafiken (Panels, Buttons...) anzeigen, das Speichern und Laden von Spielständen vereinfachen, Model- und Map- Dateien laden können und natürlich erstmal einfaches 3D beherschen.
Klingt ziemlich viel. Soviel ich weiss ist alles ausser das mit den Spielständen, Initialiesierung und Modeldateien schon in kompliezierter Form in DirektX drin.

Die Musiksachen und Eingabesachen sind schon gut mit Beispielen erklärt, die kann ich mir vermutlich selbst beibringen.
Ich brauche eigentlich nur wissen wie ich so ne Engine anfange und wie ich DirektXGraphics da rein kriege.
 
Nunja, also als erstes möchte ich hier einiges richtigstellen. OpenGL beherrscht sehr wohl Bumpmapping und diverse andere Shaderfunktionen. Da gibt es massenhaft Extensions!

Um deine Enginevorstellung am besten umzusetzen solltest du erstmal ein gutes Konzept entwerfen. In Ansätzen hast du dies ja hier getan. Aber nimm dir mal ein Blatt Papier und schreibe dir alles auf was deine Engine machn soll. (zB 3D-Objekte laden und darstellen, jene, rotieren, verschieben, scalieren. Lichtquellen setzen. Desweiteren wird ein ordentlicher mathematischer Funktionshaufen nötig. Da brauchste viele kleine Funktionen und Klassen zur Normalenberechnung, Kreuzprodukt etc.) Und glaub mir, das alles sollte gut organisiert sein, sonst siehst da später nicht mehr durch und dann bringt dir deine Engine nichts, weil sie dir keine Arbeit abnimmt, sondern welche auferlegt. Wenn du nun eine Liste deiner ganzen Funktionen hast, kannst du dich daran machen, dass DX-SDK (ich persönlich nutze nur OGL) zu durchsuchen und versuchen deine Funktionen umzusetzen. Da wirst ne Menge lernen müssen. Wenn denn irgendwann mal ein Teil deiner Funktionen fertiggestellt ist, kannst auch schon mal was darstellen. Dieser Moment ist sehr schön und ich hoffe für dich, dass er dir genug Schwung gibt auch noch den Rest zu bewältigen.

so far,... .X0R
 
Auf ein Blatt krieg das sowieso nicht.
Ausserdem hab ich nach meinen fast 3 Jahren Programmiererfahrungen eine Papiersparendere Technik gefunden. Sobald ich merke das ich noch berechnungen und Funktionen gebrauchen kann, programmier ich mir das dazu. Ich mach mir übrigens eine statische Engine und keine dynamische.
Den durchblick verlier ich eh nicht, ich kann mir das seltsamerweise alles merken. Ich brauch nur kurz auf den unkomentierten jahrealten Code zu schauen und weiß direkt wofür die einzelnen Variablen und Funktionen da sind.

Das SDK hab ich schon durchsucht und nur gute Beispiele in Fenstern gesucht. So kann ich nochnichtmals lernen wie man eine Vollmodus Anwendung Initialiesiert(ich hasse dieses Wort).
Ich such mir da ein Tutorial. Ausserdem erklären die nur wie man X-Dateien läd und brauch niemand.

Ich weiß das es da erweiterungen gibt, der ganze kram ist mir aber zu komplieziert. Da lern ich lieber das DierktX9 Ding durch.

Ich wolte erstmal mit dem Initialiesierungskram anfangen und dann mit 2D, Eingaben, Sound und 3D weitemachen. DirektPlay und DirektInstall mach ich wenn überhaupt ganz am Ende.
 
Ausserdem hab ich nach meinen fast 3 Jahren Programmiererfahrungen eine Papiersparendere Technik gefunden. Sobald ich merke das ich noch berechnungen und Funktionen gebrauchen kann, programmier ich mir das dazu.
Na dann viel Spass bei großen Sachen.
Ich bin mir ziemlich sicher bei MS wird das auch so gehandhabt. Sieht man ja an den vielen Updates!? :suspekt:
Mal im Ernst, das erste was du lernst ist, dass das eigentliche Programmieren nur einen kleinen Teil der Entwicklung von Software ausmacht, der große Teil erstreckt sich auf die Planung und die Wartung.

Den durchblick verlier ich eh nicht, ich kann mir das seltsamerweise alles merken. Ich brauch nur kurz auf den unkomentierten jahrealten Code zu schauen und weiß direkt wofür die einzelnen Variablen und Funktionen da sind.
Nee ist klar. Anscheinend bist du ein Wunderkind. Nur soll alte Software auch gewartet werden und das nicht unbedingt von dir, dein Nachfolger wird sich bedanken. (Falls du jemals im Software Engineerimg Bereich arbeiten solltest.)
 
Damals sah das eben so bei mir aus.
Das kommt noch aus WDL-Zeiten ausserdem waren das nicht mehr als 200 Zeilen pro Projet.
In C++ will ich das im Code mit Komentaren versehen (für mich ein grosser schritt).
Bei Spielen und Programmen schreib und zeichne ich auch einiges vorher auf, nur weiß ich nicht wie das bei direktx gehen soll.

Ich hab jetzt mal nach Tutorials gesuch und nichts gefunden.
Dafür hab ich aber ein passendes Buch gefunden (könnte das sein was ich am anfang erwähnte).

Ihr findet beschreibungen unter:
http://www.games-net.de/books.php?action=display&id=208
http://www.amazon.de/exec/obidos/AS...8093/sr=2-1/ref=sr_2_27_1/302-2737459-5519211

Kennt ihr das?
Was haltet ihr davon?

Übrigens hab ich über Software-engineering schon einiges in einem Buch gelesen.
Da steht, dass für die Planung 40%, die Programmierung 20% und fürs Testen auch 40% der Zeit gebraucht werden. Da ich alleine arbeite fällt für die Planung und dokumentierung das meiste weg.
 
Zuletzt bearbeitet:
Zurück