私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
5 月 20 日から 6 月 4 日まで: 2D 物理エンジンを克服します。
6月4日~6月13日:「立体数学の基礎」を克服する。
6月13日~6月20日:「3Dグラフィックスチュートリアル」を攻略。
6月21日~6月22日:「レイキャスティングゲームチュートリアル」を攻略。
6月23日~7月1日:「Windowsゲームプログラミングマスタースキル」を克服。
7月2日~7月6日:「Atari 2600 Compilation Game Development」を克服。
7月7日~7月11日:「x86/x64アセンブリ言語」を克服。
次の目標は「3Dゲームプログラミングマスタースキル」
今度は「エイリアン」の惑星での新たな戦いです。昨日は60キロをサイクリングしました。これは普通の60キロではありませんでした。戻ってきたときはすべて山道でした。 今日は精神状態があまりよくなく、歯を食いしばってチュートリアルを終えたと言えます。
しかし、私はこの感覚も好きなことに気づきました。 Atari 2600 のコンピレーションほど馴染みのないものではありません。
組み立ての学習は、本当に間違いが許されない、まさにトップゲームのようなものです。一学期で覚えきれないほどのメモを取りました。ほんの数文ですが、びっしりとメモを書きました。大学時代にこれだけ頑張っておけばよかった。
今回は 2 つのチュートリアルを学びました。1 つは X86-32 bit です。 1 つは x86-64 ビットです。どちらにも独自の長所と短所があります。たとえば、最初のチュートリアルでは関数の呼び出し方法を最後まで教えませんでした。 64 ビットの基本については十分に説明されていますが、高度なアプリケーションについてはまったくカバーされていません。
このコースを学んだ後、私はアセンブリが比較的「低レベル」なものであり、結局のところ、今日の言語は「高レベル」であると考えていました。言語」。
このことから、私が使用するプログラミング言語が銃や大砲であるなら、アセンブリ言語は冷たい武器であるという印象が与えられます。どう考えてもかなり「後ろ向き」な印象を受けます。私も Atari 2600 のアセンブリを学習していたときに同じ印象を持ちました。
しかし、x86 アセンブリを学んだ後、その印象は一変しました。アセンブリは単なる「次世代」兵器です。それは冷兵器ではなく、「ハイテク」、レーザーソードです。
それは「弱い」ではなく「使いにくい」だけです。それどころか、とんでもなく強い。
以前、人々がアセンブリの学習について話しているのを聞いていましたが、今日のコンパイラは非常に高度であり、たとえアセンブリを学習したとしても、作成するコードは以前ほど効率的ではないということを何度も目にしました。今ならこれは純粋なおならだと分かります。 MMX から AVX まで、どのようにコードを書いてもこの種の並列処理機能を記述することはできず、この強力な機能を使用するにはアセンブリを使用する必要があります。
そして、私のアプリケーションはゲーム エンジンであり、グラフィックスのバッチ処理が最も必要とされる部分です。
以前アセンブリを学んだとき、パフォーマンスが重要な場所では依然としてアセンブリが必要であることを本の中で知りました。とてもシンプルな作者の気持ちです。実際のところ、アセンブリ言語がこれほど強力であるとは予想していませんでした。
これは実際、「少ないほど豊かである」という私の現在の考え方から恩恵を受けています。以前はゲームを作ることを考えていたので、クロスプラットフォーム、PC、携帯電話のことを常に考えていました。今は自分でエンジンを作るので、要件はそれほど高くありませんし、考えたくありません。クロスプラットフォームについては重要なので、PC プラットフォームを優れたものにすることに重点を置いています。そこで組み立てを学ぶことを思いつきました。常にクロスプラットフォームのことを考えていたら、この発想は出てこなかったかもしれません。
金宜南教授の講義の中で、私がとても印象に残った一文がありました。
難しいことをやれば何かが得られる。
これはほとんど私の人生信条の 1 つになっています。今回、この文章の威力を改めて確認しました。
アセンブリを学ぶことで、想像以上に多くのメリットが得られました。以前のコードの一部を修正するのが待ちきれません。たとえば、DirectX の DirectDraw はアルファ チャネルをサポートしていないため、以前はアルファ ブレンディング コードを使用していました。そこで、半透明のオブジェクトをサポートするために独自のアルファ ブレンディングを作成しました。これは非常に遅いですが、当初は 800 フレームでしたが、一瞬で 200 フレームまで引き下げられました。ただし、このアルゴリズムを使用するのは主人公の航空機だけです。アセンブリを使用する場合は、さらに高くなる可能性があると思います。もちろん、これは単なる改善の試みです。実際には、主なことはハードウェアに依存します。 Blt だけを使用すると、フレーム レートが 4000 を超えることがあります。これは、どのような変換方法でも実現できません。
ただし、改善できる点はまだあります。たとえば、SpritePack の機能です。これはハードウェアで制御できるものではなく、すべて私のアルゴリズムによって実現されています。この効率改善の集大成は、多大な価値をもたらします。
実は私はもともとPython + 機械学習を学び直したいと思っていました。この間に何が起こっているのか分からないので、すべてを知りたいと思っています。私のゲーム開発において、AI はパズルの非常に重要なピースになると感じています。今はAIを使って画像や原画を作っているのですが、とても使いやすいです。この側面の知識についてもっと学びたいと思っています。
しかし、この期間は本を読まず、ただチュートリアルを勉強しただけだったので、ずっと座っていることに耐えられませんでした。本で学習していれば寝転がりながら読めるので、「3Dゲームプログラミングマスタースキル」を学ぶことにしました。これで腰への圧力が軽減されます。
この期間が経過したら、Python を学習できるかどうかを確認してください。
来て!