2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
20. Mai – 4. Juni: Überwinde die 2D-Physik-Engine.
4. Juni – 13. Juni: Überwindung „Grundlagen der 3D-Mathematik“.
13. Juni – 20. Juni: Überwinden Sie das „3D-Grafik-Tutorial“.
21. Juni – 22. Juni: Überwinde das „Raycasting Game Tutorial“.
23. Juni – 1. Juli: Erlernen Sie „Windows Game Programming Master Skills“.
2. Juli – 6. Juli: Overcome „Atari 2600 Compilation Game Development“.
7. Juli – 11. Juli: Überwindung der „x86/x64-Assemblersprache“.
Nächstes Ziel: „3D Game Programming Master Skills“
Diesmal ist es eine weitere Schlacht auf einem „fremden“ Planeten. Ich bin gestern 60 Kilometer mit dem Rad gefahren. Die letzten 20 Kilometer waren allesamt Bergstraßen, als ich zurückkam. Mein geistiger Zustand ist heute nicht sehr gut. Ich kann sagen, dass ich nur die Zähne zusammengebissen habe und das Tutorial beendet habe.
Allerdings habe ich festgestellt, dass mir dieses Gefühl auch gefällt. Nicht so unbekannt wie die Atari 2600-Zusammenstellung.
Zusammenbauen zu lernen ist wirklich wie ein Topspiel, bei dem man wirklich keine Fehler machen darf. Ich habe mir in einem Semester mehr Notizen gemacht, als ich mir merken konnte. Obwohl es nur ein paar Sätze sind, habe ich meine Notizen dicht geschrieben. Es wäre schön gewesen, wenn ich während meines Studiums so hart hätte arbeiten können.
Diesmal habe ich zwei Tutorials gelernt, eines ist X86-32-Bit. Eine davon ist x86-64-Bit. Beide haben ihre eigenen Stärken und Schwächen. Beispielsweise wurde im ersten Tutorial erst am Ende gelehrt, wie man Funktionen aufruft. Die Grundlagen von 64-Bit werden gut erklärt, die fortgeschrittenen Anwendungen werden jedoch überhaupt nicht behandelt.
Nach dem Studium dieses Kurses habe ich die größte Erkenntnis gewonnen, dass Assembler eine relativ „niedrige“ Sache und eine relativ „rückständige“ Sache ist. Schließlich werden die heutigen Sprachen als „hochrangige“ Sache bezeichnet Sprachen".
Das erweckt bei mir den Eindruck, dass die Assemblersprache eine kalte Waffe ist, wenn die Programmiersprache, die ich verwende, Waffen und Kanonen ist. Ganz egal, wie man darüber denkt, es hinterlässt einen eher „rückständigen“ Eindruck. Ich hatte den gleichen Eindruck, als ich den Zusammenbau des Atari 2600 lernte.
Nachdem ich jedoch den x86-Assembler kennengelernt hatte, änderte sich dieser Eindruck völlig. Bei der Baugruppe handelt es sich einfach um eine Waffe der „nächsten Generation“, sondern um eine „Hochtechnologie“, ein Laserschwert.
Es ist nur „schwierig zu bedienen“, nicht „schwach“. Im Gegenteil, er ist unglaublich stark.
Früher hörte ich Leute darüber reden, Assembler zu lernen, und mehr als einmal habe ich gesehen, dass die heutigen Compiler sehr fortgeschritten sind. Selbst wenn Sie Assembler lernen, wird der Code, den Sie schreiben, nicht mehr so effizient sein wie zuvor. Ich weiß jetzt, dass das Ding reiner Furz ist. Von MMX bis AVX können Sie diese Art der Parallelverarbeitungsfunktion nicht schreiben, egal wie Sie Code schreiben, und kein Compiler kann dies tun. Sie müssen Assembly verwenden, um diese leistungsstarke Funktion zu verwenden.
Und meine Anwendung ist eine Spiele-Engine, wo die Stapelverarbeitung von Grafiken am meisten benötigt wird.
Als ich zuvor Montage gelernt habe, habe ich in meinem Buch tatsächlich nur gesehen, dass an einigen Stellen, an denen es auf die Leistung ankommt, immer noch Montage erforderlich ist. Es ist so ein einfaches Autorengefühl. Ich hätte eigentlich nicht erwartet, dass die Assemblersprache so mächtig ist.
Dies kommt mir tatsächlich zugute, wenn ich derzeit nach dem Motto „Weniger ist mehr“ denke. Weil ich früher über die Entwicklung von Spielen nachgedacht habe, habe ich immer über plattformübergreifende Entwicklungen, PCs und Mobiltelefone nachgedacht. Jetzt, wo ich meine eigene Engine erstelle, können die Anforderungen nicht mehr so hoch sein, und ich möchte nicht darüber nachdenken Es geht mir um Cross-Plattform, deshalb konzentriere ich mich darauf, die PC-Plattform gut zu machen. Deshalb kam ich auf die Idee, Montage zu lernen. Wenn ich immer an Cross-Plattform denke, komme ich vielleicht nicht auf diese Idee.
In einem Vortrag von Professor Jin Yinan gab es einen Satz, der mich tief beeindruckte:
Wenn Sie harte Dinge tun, werden Sie etwas gewinnen.
Das ist fast zu einem meiner Lebensglauben geworden. Diesmal wird die Kraft dieses Satzes erneut bestätigt.
Das Erlernen der Montage hat mir mehr Vorteile gebracht, als ich mir vorgestellt hatte. Ich kann es kaum erwarten, einige meiner vorherigen Codes zu ändern. Beispielsweise hatte ich früher einen Alpha-Blending-Code, weil DirectDraw von DirectX den Alpha-Kanal nicht unterstützt. Deshalb habe ich mein eigenes Alpha-Blending geschrieben, um durchscheinende Objekte zu unterstützen. Dieses Ding ist extrem langsam, es waren 800 Bilder, aber es kann im Handumdrehen auf 200 Bilder heruntergefahren werden. Aber nur das Flugzeug des Protagonisten nutzt diesen Algorithmus. Wenn Sie Assembly verwenden, kann es meiner Meinung nach viel höher sein. Dies ist natürlich nur ein Versuch, es zu verbessern. Tatsächlich hängt die Hauptsache von der Hardware ab. Mit nur Blt kann meine Bildrate über 4000 erreichen. Dies kann mit keiner Konvertierungsmethode erreicht werden.
Es gibt jedoch noch Bereiche, die verbessert werden können. Zum Beispiel meine SpritePack-Funktionalität. Dieses Ding kann nicht durch Hardware gesteuert werden, es wird alles durch meinen Algorithmus realisiert. Diese Zusammenstellung von Effizienzverbesserungen kann einen enormen Mehrwert bieten.
Tatsächlich wollte ich ursprünglich wieder Python + maschinelles Lernen lernen. Ich weiß nicht, was in dieser Zeit los ist, und ich möchte alles wissen. Ich denke, dass KI ein sehr wichtiges Puzzleteil in meiner Spieleentwicklung sein wird. Ich verwende jetzt KI, um Bilder und Originalgemälde zu erstellen, und sie ist sehr einfach zu bedienen. Ich würde gerne mehr über diesen Aspekt des Wissens erfahren.
Aber ich habe in dieser Zeit nicht gelesen, sondern nur die Tutorials studiert, sodass ich es nicht ertragen konnte, ständig zu sitzen. Wenn ich mit einem Buch lernte, konnte ich mich beim Lesen hinlegen, also entschied ich mich für das Erlernen von „3D Game Programming Master Skills“. Das entlastet meine Taille.
Versuchen Sie nach dieser Zeit, Python zu lernen.
Komm schon!