C ++ストレートから3Dに移行することは可能だと思いますか(2Dをスキップ)


8

経験豊富なC ++プログラミング(5年ほど)から直接DirectX 3dを学ぶことができると思いますか?

つまり、基本から始めます。本格的なゲームを実際に行うよりも、デモを設定することに興味があります(良い水のデモを取得するなど)。

これは可能だと思いますか?


3
はい、可能です。簡単?ありえない。
共産主義者アヒル

回答:


16

絶対に可能です。偉大な出発点フランクD.ルナでのDirectX 10を使用したプログラミング、3Dゲームの紹介。非常に読みやすく、多くの一般的な機能をすばやく実装でき、DirectXとゲームプログラミングの詳細を学ぶための優れたベースとして機能します。


1
それは私が笑で始めるつもりの正確な本です。

2
その本の別の+1、非常に良い読み物。そこから、ウルフガングF.エンゲルの本を勧めます。彼のShader Xの本は特に長年にわたって非常に役に立ちました。
James

これも私が推薦した優れた本です。
リバーブ2011

2

もちろん、私は非常にシンプルな2Dアプリから始めることをお勧めしますが、最初の学習曲線(DXアプリを実行するだけで面倒になる場合がある)はかなり急な場合があるため、発生している問題が3D固有、または非常に基本的なものが欠けている場合。

Pongを実装する-DXアプリの起動、実行、入力処理、基本的な衝突検出、そして最も重要なこととして、画面上に描画する方法などの基本を学びます。

初めてのアプリであれば、実行に1週間もかかりません。その時点で、DXフレームワークの基本を理解し、変換マトリックス、オブジェクト/状態管理、カリング、ライティングなど、3Dの側面に焦点を当てることができる別のプロジェクトを開始する準備ができている必要があります。ラケットボール。


0

もちろん可能です。C ++を最初のプログラミング言語として学ぶことも可能です。しかし、それはおそらくそこに到達する最速の方法ではありません。

「プログラミング」から「ゲームプログラミング」に進むには、グラフィックスに関係なく、ゲームループ、リアルタイム入力など、いくつかのことを学ぶ必要があります。これらは、同時に新しいグラフィックライブラリの学習に対処する必要がない場合、はるかに簡単に学習できます。一度に1つのことを学ぶと、おそらくはるかに楽になります。(そして、もしあなたが経験豊富なプログラマーなら、2Dのことを学ぶことは、とにかくそれほど長くかかるべきではありません。)


0

2Dと3Dの共通点は何ですか?あまりない。2Dは、フラットワールドまたは偽造3Dのいずれかであり、3Dに多少似た視覚的外観を持ちながら、真の3Dとはコードが大きく異なります。

衝突検出など、彼らが共通して持っているものでさえ、コードを3Dに拡張するのはどれほど難しいですか?とても簡単。

簡単に言えば、2Dの学習は、3Dゲームまたはエンジンの設計を学習するための旅で考えるほど役立つことはありません。それらには共通点がほとんどなく、共通点があるため、2Dは3Dを実現するための簡単な「飛び石」ではありません。

David Livelyが示唆したように、Pongなどの非常に基本的な2Dゲームから始めたいと思うかもしれませんが、次に進む前にファイナルファンタジー、スーパーマリオブラザーズ、ゼルダなどを再作成する必要があるとは思わないでください。 3Dに取り組む。このような導入作業でさえ、2Dエクスペリエンスの多くを獲得する目的ではなく、すべてをできるだけ単純化して、基本的な概念と方法(衝突検出、グラフィックスライブラリの初期化など)を確認できるようにすることを目的としています。、)2Dの場合と同様に3Dの場合もできるだけ早く、次のステップに進むことができるようにします。次のステップは、 "New / Save / Load / Exit"メニューを作成することかもしれません。もう一度、これを可能な限りシンプルにし、その後、ものを追加し続けるだけです(+1次元の動き、モデル、

ただ、このように言いましょう。大学のコースでゲームデザインについての理論を学んだ後、3Dエンジンの作成を任されました。1週間くらいで完成しました。3Dオブジェクトの描画、シャドウのキャスト、テクスチャの描画、ミップマッピング、衝突の検出、ジャンプの許可、右クリックまたは{ENTER}または{ESC}を押すとメニューが表示されます。

時間のかかる部分は、エンジンを微調整する場合でも、モデル/テクスチャ/アニメーション、ゲームコンテンツなどを作成する場合でも、見栄えをよくすることです。


0

はい。すでにC ++を知っているので、今度はAPIと理論を学ぶ必要があります。特に3Dを学習する際の主なハードルは、おそらく関連する数学です。2D数学は最小限のレベルで理解するのはかなり簡単ですが、3Dはより複雑な理解が必要です。2Dとは対照的に、3Dに関連性が高いシェーダーのようなものもたくさんあります。ゲームの作成を計画している場合は、3Dに進む前に、最初から最後までゲームを作成するための感覚(そして、移植可能な動作するGUIシステムを入手できるかもしれません!)


IMEは、3D APIを学ぶ上での最大のハードルは、あなたがqctually何かを見るべきところに到達することです。初期のopenglで何も表示されなかった理由を理解するために少し時間を費やしました。空白の画面をデバッグするのは難しいです。
StarWeaver 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.