PS3 のセル アーキテクチャを使用したプログラミングについて学ぶために、ソニーのライセンスを受けたトレーニング クラスに参加する機会があります。
しかし、私は C++ の初歩的な知識しか持っていないので、PS3 は私のようなゲーム開発者志望のスターターにとってはやり過ぎではないかと考えていました。
また、約 2 か月で C++ グラフィックス プログラミングを適切なレベルに到達させるのに最適なリソースは何ですか?
最後に私の仕事について質問です.... :)
並列プログラミングが未来のように見え始めているため、PS3 について学んだことの多くは他のアーキテクチャにも適用できます。PS3 で使用されている並列技術の多くは、Xbox 360 に直接適用できます。将来のゲーム コンソールの多くは同じ方向に進むのではないかと考えており、並列化についてこれまで以上に考え始める必要があります。現在。
とはいえ、C++ の初歩的な知識しかない場合は、多くの資料が頭を悩ませているかもしれません。それは、私が推測するセッションから何を得たいかによって異なります。PS3 の紹介を探していますか、それともカンファレンスの翌日に PS3 Linux でゲームを作り始めたいと思っていましたか?
余裕があると仮定すると、情報は興味深く、おそらく役立つでしょう。コストがメリットを上回ると感じない限り、私はこのような機会を逃しません。(費用はかかると思いますが、よくわかりません。)
ゲーム プログラミング リソースはネット上にあふれています。C++ で短期集中コースを受講したい場合は、Lippman らによる C++ Primer を取り上げます。グラフィックスの短期集中コースが必要な場合は、Real Time Rendering が最良の出発点であり、Eric Lengyel の Mathematics for 3D Game Programming のような数学に関する優れた本も一緒に読むことができます。いくつかの OpenGL または D3D チュートリアルも掘り下げてください。どちらも PS3 で一般的に使用されていなくても、原則はすべての API と同じです。
きっと楽しく、このコースで学んだことは、より優れたプログラマーになるのに役立つでしょう。
問題は、PS3 が過剰であるということではなく、Cell プロセッサがその潜在能力を発揮するようにプログラムするのが難しいことで知られています。高度に並列化されたアーキテクチャは潜在的に非常に強力ですが、実際にそのパフォーマンスを実現するのは簡単ではありません。
将来(マルチコアプログラミング)に備えるには素晴らしいアーキテクチャだと思います。ただし、ほとんどの実用的な目的では、コンソールでの初期費用がはるかに高いため、実際には Windows ベースのゲーム開発を学習する方が適切です。たとえば、DirectX のコーディングを開始する方がはるかに簡単です。
そうです、ある意味であなたはトラブルを求めています。PS3 を使用することに決めた場合は、必ず MIT PS3 コースをチェックしてください。
何もしないよりも参加する機会があるなら、絶対に行くべきだと思います。あなたよりも多くのことを知っている人から何かを学ぶことの見返りは、多くの人が持っていない贈り物です. ライセンスを取得したトレーナーからのものであるという事実は、それをさらに価値のあるものにします.
彼は特に、PS3 アーキテクチャ、ライブラリ、特殊なトリックなどを学びながら C++ を学習することについて話しています。私はそれをお勧めしません。PS3 で適切にコーディングするには、C++ のカンフーに強くなる必要があります。言語を知らずに現れたら、自分を馬鹿にすることになります。
最悪の場合、プロの開発者の時間を無駄にすることになります。彼らは実際に情報を使用することができますが、あなたはすでに知っているはずの初心者の質問に時間を費やすことになります.
私は意地悪をしようとしているわけではありません。私も C++ をよく知らないので行きません。そこに行くためにお金を払った他の人々に配慮するようにしてください.
ここ数か月、Cell プロセッサ プログラミング (C) を独学で学んでいます。セルのプログラミングを成功させるには、C/C++、pthreads、libspe、セル上のさまざまな種類の通信 (DMA、メールボックス、シグナル、割り込み、アトミック I/ O)。これを難しくするために、Cell のドキュメントはわかりにくく、見つけにくく、間違っている可能性があります。より一般的なプラットフォーム (XNA、pyGame、SDL) を使用すると、ユーザーのコミュニティがはるかに大きくなります。それは、Cell にユーザーのコミュニティがまったくないということではなく、Cell が小さいということだけです。また、マルチプロセッサ プログラミングが見られる環境は他にもありますが、これらの環境の技術をセルに変換することは、その独自のアーキテクチャのために難しい場合があります。また、
しかし、すべてが悪いわけではありません。PS3/Cell を学ぶと、マシンに近いプログラミングについて多くのことを学ぶことができます。プログラマーが利用できる抽象化はそれほど多くないため、選択の余地はありません。セルの各 SPU には 256KB のローカル メモリがあり、それ以上のメモリが必要な場合は、適切な値を適切なタイミングでメモリに取り込むために、適切な DMA 要求を発行するための何らかのスキームを考え出す必要があります。その DMA 要求が処理されている間、SPU を何かに忙しくさせておきます。細胞を学ぶ
ですから、学習のための最良のプラットフォームではないかもしれませんが、ソニーからクラスを受ける機会があることを考えると、これは良い機会のように思えます.
いずれにせよ、興味がある場合は、Scarpino の本が参考になります。OGRE エンジンを使用したセルでのゲーム プログラミングに関する章がいくつかあります。これも興味深いかもしれません。
いいえ、まったくありません。.NET を主要言語として使用すると、さらに難しくなります。.NET を使用する場合は、XBOX 360 用の C#/XNA をお勧めします。
編集: これは、開始するための優れたリンクです: http: //www.cag.csail.mit.edu/ps3/
360 や PS3 でアプリケーションを開発した経験はありませんが、2 つのプラットフォームのさまざまなメリットについて多くの調査を行いました。私は長い間 C++ を使用しており、MFC や BeOS アプリケーションをいくつか作成しましたが、UNIX サーバー アプリケーションもいくつか作成しましたが、それでもコンソール ゲーム環境は大きく異なります。
PS3のCellチップは、他の人がここで言っているように、飼いならすには本当にかなりの獣であり、適切に利用するにはCarmackレベルの才能が必要です. そうは言っても、無料のコースに参加しても問題はありません。特に、以前にゲームを開発したことがあり、アドバイスをくれる人に会える場合はなおさらです。
コンソール用のゲームを開発する場合、C++ の基本的な知識しかない人にとって最善の策は、Xbox 360 用の C# ベースの XNA キットを使用することです。拾うのは難しいです。実際、マルチコア、マルチスレッドのセルベースのプログラミングに移行するよりも、学習曲線ははるかに短いと思います。これまでカーネルレベルのアプリケーションを開発したことがない場合は、準備が整うまで、そのようなことは避けるべきです。2ヶ月じゃ時間が足りない。
熱心なコンソール開発者にとって XNA プラットフォームが非常に魅力的である理由はいくつかあります。特に、C# と C++ の相対的な安全性と、XNA ゲームを Microsoft マーケットプレースで販売できるという事実が挙げられます。
単独で開発された PS3 ゲームの多くは知りませんが、Braid のように 360 でほとんどソロで開発された例がいくつかあります。XNA の例も非常に興味深く、ためになるものです。