JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=8abf22d184c3f0e853a0037243b3ed93Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Direct3D Grundlagen Tutorial
Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 09.02.2005, 22:20    Titel: Direct3D Grundlagen Tutorial Antworten mit Zitat

Hi,

hier (und auch in anderen Foren) wird ja oft "Standardfragen" gestellt werden wie z.B, "Was mach ich bei einem DeviceLost?", "Wie initialisier ich Direct3D?", "Wie wechsle ich vom Fenstermodus in den Vollbildmodus?", oder "Wie kann ich den Fehler finden oder ihn eingrenzen?" (Dazu einen unnötigen Batzen Code!) hab ich angefangen eine kleine Tutorialserie zu coden.

Das Tutorial ist in GT (GameTutorials.com) manier gehalten, also es gibt nur Code der sehr gut kommentiert ist und aufeinander aufbaut.

In Teil 1 zeige ich wie man effektiv ein Window erstelle (Nein wie Spannend Very Happy) aber auf eine etwas "andere" Art, wie man spätestens in der WndProc sehen wird.

In Teil 2 geht es Speziell um die Fehlerfindung. Hier wird mit Exceptions und Stacks gearbeitet um einen Fehler schnell einzukesseln und ihn zu finden.

In Teil 3 geht es um Mathefunktionen die man später in Direct3D gebrauchen wird, da kein D3DX benutzt wird. Alle Berechnungen die D3DX ausführt werden in diesem Teil per Hand ausgeführt und dort sieht man dann halt mal "Hinter die Kullissen".

In Teil 4 wird endlich Direct3D initialisiert, hier kann man die Modis per F1 wechseln, auf Restore wird eingegangen, uvm. Auch wenn das Programm minimiert ist benötigt es keine 100% CPU ausnutzung mehr, wie ein Kommerzielles Game! Dafür wird ein ganz einfacher Trick angewendet --> zu sehen in der Hauptschleife.

Im Nächsten Teil geht es um das Gamemanagment! Dann wird gezeigt wie man Gamestates später gut verwalten kann per Factorypattern und wie man es macht, das man das device nicht publich machen muss.

Im Teil darauf gehts ums Rendern im Orthogonalen Modus mit Texturierten Polygonen. Smile

Viel spass damit!

Hier der Link: http://xarent.hollosite.com/

Konstruktive Kritik, Lob, Kochrezepte und co sind erwünscht Smile

- Patrick
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 09.02.2005, 22:36    Titel: Antworten mit Zitat

Also auf den ersten Blick, gefällt's mir sehr gut, wie du alles gemacht hast.. Du gibst einen, wie ich finde, guten Einstieg und du holst viel aus C++ raus.. Ich meine, da Typensicherheit/Templaters, dort C++ Casts, da wieder Exceptions, const correctness (ok, gabs schon bei C99).. Find ich toll (nein, das ist kein schleimen).
Mir persönlich gefällt allerdings der Kommentierstil nicht, aber das ist relativ(diese übertriebene anzahl an ////////)
Ansonsten verwirren die pragmas zwischen den Codezeilen immer mal wieder..
Naja, genug gesagt..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 09.02.2005, 22:40    Titel: Antworten mit Zitat

Kronos
Danke Smile

Zu den //////, das oberste ist für den Fileheader, wenn bis zu 3 Mann an einem Header arbeiten ist der ganz schön Praktisch wenn man da kurz das Datum, Name und kurze Veränderung eingetragen wurde Wink

Zu den #pragmas, bei VC++7.0 und auch 7.1 ist ein long etwas größer als diese LPCREATESTRUCT geworden ist als beim VC++6 Smile und natürlich dieser Performance-Warning, diese 4 Pragmas werden die einzigen sein neben dem Linkerpragma in der direct3d.h und haben wo anders im Code auch nichts zu suchen Wink

- Patrick
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 09.02.2005, 23:19    Titel: Antworten mit Zitat

Mir gefällts auch gut Very Happy

Wo hast du bloss so programmieren gelernt Shocked

Darf man deine Exception-Klasse eigentlich auch für sein Programm verwenden?

Und wo bleibt die Unterstützung für 8bit? Wenn du da schon ne Exception wirfst. Razz
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 11:24    Titel: Antworten mit Zitat

Der Code ist natürlich Frei verfügbar. Smile

Wo ich so Coden gelernt habe? Selbst bei bringen ^^

Naja wer benutzt schon 8 Bit? Very Happy edit: aber ich werds noch reinbauen bei zeiten Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 14:46    Titel: Antworten mit Zitat

ich kann zwar normalerweise keine Lete leiden, die besser sind als ich, aber wenn die anstatt sich wichtig zu machen sich hinsetlzten und Tuts schreiben, um andere zu helfen genau so gut zu werden wie sie, finde ich das voll korrekt!

Kurz geil & thx!
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 15:19    Titel: Antworten mit Zitat

najo, net schlecht...
nur ich fände es eigentlich besser, wenn da auch Text dabei wäre. Ich mag immer die Tutorials, wo erst die Theorie erklärt wird, dann die wichtigsten Codeausschnitte nochmal besprochen werden, und man dann noch den kompletten Source runterladen kann.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 15:23    Titel: Antworten mit Zitat

Naja ich wollte halt erreichen das man mit interesse den Code auseinander nimmt und dadurch "learing by doing" betreibt, was meiner Meinung nach am meisten Lerneffekt hat. Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 17:02    Titel: Antworten mit Zitat

naja, ich progge imemr gerne die Theorie nach, was bedueten würde, das ich mir aus dem Code die Theorie herleiten muss und daraus dann wieder Code mache...
Und wenn man schon so den Code hat, macht man vileiecht einfach Copy&Paste.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 17:09    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
Und wenn man schon so den Code hat, macht man vileiecht einfach Copy&Paste.


Naja bisher scheint das noch zu gehen, aber spätestens im Texturen Tutorial wird das nicht mehr so easy sein, da immer mehr verschachtelt wird und viel mit friend gearbeitet wird Smile

edit: und wer gern Copy&Paste macht, der wird sich schon früh genug wundern wenn er auf die Schnauze fliegt weil er den Anschluss verpasst hat, sowie bis dahin den Sinn des Codes nicht verstanden hat Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 17:31    Titel: Antworten mit Zitat

tja, und zum Beispiel wenns so kompolex ist, wäre es doch sehr gut, vorher eine kurze Einführung zu geben, wo man was findet.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 17:49    Titel: Antworten mit Zitat

Hi,

Teil 5 ist nun erschienen Smile

@Jonathan_Klein, darin ist neuerdings ab Teil 5 ein Changelog Smile

Download auf: http://xarent.hollosite.com/

- Patrick, der wieder auf gute Kritik hofft Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 19:00    Titel: Antworten mit Zitat

Eigentlich nix zu meckern, sauberer Code, sauberer Stil, aber dein Kommentarstil stört mich etwas mit diesen #, aber das ist Geschmackssache. Wink
Leider ist keins deiner Tutorials Win9x kompatibel, aber ist wahrscheinlich auch nicht das Ziel gewesen. Wink Dann leuchtet mir nicht ein, warum du in der math.h Funktionen wie max() und min() hast, afaik gibts genau dieselben doch auch in der STL. Besonders gefallen hat mir persönlich das Debug-System und die WndProc. Das Debug-System hats mir mit seiner Einfachheit und Nützlichkeit angetan.
Also, beide Daumen hoch, gut gelungen! Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 19:04    Titel: Antworten mit Zitat

GreveN
Danke Smile

Nein die Programme sollen nur unter NT-Kernel laufen wie z.B. WinNT, 2k, XP und Longhorn, da das die Zukunft von Windows sein wird, nebenbei hat es was mit der UNICODE-Unterstützung zu tun. Smile

Mit den ####: Ich habs gerne schön geordnet ;D und die Sache mit dem min, max, abs usw. die gibt es zwar in der STL, aber je nach Port sehen die folgendermaßen aus:

CPP:
#define MAX(a,b) ((a) > (b) ? (a) : (b))

template<class T> inline T max (T a, T b)
{ return MAX(a, b); }


Und das ist sicherlich nicht sehr schön ^^
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 10.02.2005, 20:07    Titel: Antworten mit Zitat

Die Beispiele sehen sehr vielversprechend aus! Thumb Up
Ich werde sie mir jetzt mal zu Gemüte führen.

edit: Kannst ja auch ein Buch schreiben. Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter
Seite 1 von 6

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum