|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 09.02.2005, 22:20 Titel: Direct3D Grundlagen Tutorial |
|
|
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 ) 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.
Viel spass damit!
Hier der Link: http://xarent.hollosite.com/
Konstruktive Kritik, Lob, Kochrezepte und co sind erwünscht
- 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 |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 09.02.2005, 22:36 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 09.02.2005, 22:40 Titel: |
|
|
Kronos
Danke
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
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 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
- 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 |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 09.02.2005, 23:19 Titel: |
|
|
Mir gefällts auch gut
Wo hast du bloss so programmieren gelernt
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. _________________ »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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.02.2005, 11:24 Titel: |
|
|
Der Code ist natürlich Frei verfügbar.
Wo ich so Coden gelernt habe? Selbst bei bringen ^^
Naja wer benutzt schon 8 Bit? edit: aber ich werds noch reinbauen bei zeiten _________________ '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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.02.2005, 14:46 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.02.2005, 15:19 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.02.2005, 15:23 Titel: |
|
|
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. _________________ '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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.02.2005, 17:02 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.02.2005, 17:09 Titel: |
|
|
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
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 _________________ '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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.02.2005, 17:31 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 10.02.2005, 19:00 Titel: |
|
|
Eigentlich nix zu meckern, sauberer Code, sauberer Stil, aber dein Kommentarstil stört mich etwas mit diesen #, aber das ist Geschmackssache.
Leider ist keins deiner Tutorials Win9x kompatibel, aber ist wahrscheinlich auch nicht das Ziel gewesen. 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! |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.02.2005, 19:04 Titel: |
|
|
GreveN
Danke
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.
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 |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 10.02.2005, 20:07 Titel: |
|
|
Die Beispiele sehen sehr vielversprechend aus!
Ich werde sie mir jetzt mal zu Gemüte führen.
edit: Kannst ja auch ein Buch schreiben. |
|
Nach oben |
|
|
|
|
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
|