開発キットにアクセスせずにPS3 / Xbox 360を体験するにはどうすればよいですか?


24

私は、PS3、Xbox 360の業界プログラミングを始めようとしている新進気鋭のゲームプログラマです。主な問題は、潜在的な雇用者に自分のスキルを実証する必要があることですが、PS3またはXbox 360の開発キットにアクセスせずに、これは直接不可能です。

私の質問は、コンソール開発者に私のスキルを示す最良の代替方法は何ですか?

DirectX for WindowsのC ++プログラミングはXbox 360のプログラミングスキルに近いように見え、OpenGLのC ++プログラミングはPS3プログラミングスキルに比較的近いようです。残念なことに、Xbox 360とPS3の両方が独自の独自のライブラリを実際に持っているかのようにWeb調査から、したがって、これは100%の実りある努力ではないようです。このアプローチは最も近いように見えますが、最も時間がかかります。さらに、実際にコンソール上で何かを実行しているわけではありません。

一方、XNAでのプログラミングには、ゲームが実際にコンソール上にあるという利点がありますが、これはDirectXの単なるラッパーであり、C# C ++。

潜在的な雇用主にどのようなゲームデモが最も役立つかを知るために、業界内から知識や経験を持っている人はいますか?DirectX、OpenGL、XNA、Unreal Engine、Unity3d、FlashなどのC ++など?1日は非常に多くの時間しかないので、自分の努力をどのように導くかを知りたいです。

私の直感では、Xbox 360で使用されているものに近いように思えるので、DirectXが最良の選択であると思いますが、別の言語/エンジンで優れたデモを行うことが同様に優れている場合、明らかに時間がかかりません別のルート。

あなたの助けとアドバイスを事前に感謝します!

回答:


17

率直に言って、ほとんどの人はジュニアで特定のプラットフォームスキルを期待していません。

あなたのゲームプログラマーなら、たくさんのゲームを作ってください。

技術プログラマーが大量の技術デモを作成する場合。興味深いホワイトペーパーを読んで、新しいものを試してください。あなたがプログラマーをOOOooにする面白いことをするなら、私たちはあなたに話したいです。私たちはあなたが行ったこのちょっと面白いことについてお話ししたいと思います。ゲームである必要はありません。

重要な事実:デモは幅広いマシンで実行する必要があり、バックアップとしてビデオ録画が含まれます。生ではない編集。


8

ジュニアの役割については、特定のAPIで多くの経験を求めているのではなく、関連する概念を十分に把握している必要があります。

それはあなたが探している位置を関連グラフィックスだ場合、あなたは3D数学を知って実証し、そしてどのようにAPIを使用するだけでなく(実際にはその気にしない、OpenGLのかD3Dを-ちょうどあなたがそれをよく最適化します)。率直に言って、すべてのAPIは多かれ少なかれ、描画するもののリストを作成し、それらを送信し、状態を管理することになります。

より一般的なコンソールプログラミングの場合は、組み込みプラットフォームに伴う特定の問題に対処できることを確認してください。制限されたメモリ(スワップなし、フラグメンテーション不良など)、クラッシュへの対処に関する厳格なルール、制限されたI / O帯域幅、パッチ/更新機能がない(または制限された)など

それはコーディングのスタイルに関するものであり、具体的なものではありません。

あなたが商業的な地位を探しているなら、私は実際にXNAを避けるでしょう。なぜなら、それは実際にはその分野でそれほど有用ではないからです。


7

FWIW、Xbox 360でのC#/ XNAでのプログラミングは、「本物」の非常に優れた代替品と考えています。

考慮してください:

  • XNA on 360では、ガベージコレクションを処理する必要があります。具体的には、フレームあたりの割り当てが多すぎる場合は、それを避ける必要があります。360上のC ++では、ガベージコレクションを処理する必要はありません(Luaなどのスクリプト言語を処理している場合を除きます)が、フレームごとに多くの割り当てを行うこと避けたいと考えています。
  • 360の処理能力の多くを活用するには、コードをマルチスレッド化する必要があります。X ++では、C ++よりもパフォーマンスがやや劣るマネージコードを補うという要望があるため、XNAでもそうではありません。
  • XNAが提供する非常に多くのヘルパー関数とクラスは別として、XNAのグラフィックスAPIは、DirectXに基づいているため、360上のDirectX / C ++と非常に似ています。

XNAの素晴らしい点は、画面に何かを表示することの技術的な問題に集中することができず、ゲームの作成に集中できることです。特にXNAが提供する限られた環境では、比較的バグがなく、まともなフレームレートで実行されるゲーム(任意のゲーム!)を作成するだけで、多くの経験とデモを提供できます。できれば、ドアに足を踏み入れてください。


5

PS3プログラミングスキルが必要な場合は、以下を探してください。

  • PPCアーキテクチャの知識。これは、PowerPCマシンでC / C ++開発を行うことで取得できます。古いG5 MacのOS Xでも、PS3を含むPowerPCマシンのLinuxでも。
  • AltiVecの知識; 繰り返しになりますが、Macまたは最近のPowerPCマシン上のLinuxでこれを取得できますが、SSE3の知識は十分かもしれません。
  • SPUの知識:これは、Linuxを使用してPS3でのみ練習できます。

これでは、PS3ビデオチップのプログラミング方法や公式SDKの使用方法については説明しません。ビデオプログラミングについては、一般的なOpenGLとDirectXのスキルはおそらく十分であり、HLSLもある程度必要です。また、インターネットにはさまざまな情報や資料がありますが、そのすべてを違法に入手できるわけではありません(たとえば、PS3用のGCCのソニーの修正版はGPLの対象です)。

X360プログラミングスキルが必要な場合は、以下を探します。

  • PPCアーキテクチャの知識:上記を参照

  • AltiVecの知識:上記を参照

  • DirectXの知識:これはWindowsで練習できます。

  • Xbox 360 SDKの知識:類似点があるため、XNAを実践すると非常に役立ちます。

他の重要なスキルには、おそらくマルチスレッドプログラミング(一般的な知識だけでなく、アトミック操作、ロックフリーアルゴリズム)、移植性(エンディアンネス、ポインターサイズ、ビデオハードウェア機能など)が含まれます。

はい、あなたが言ったように、DirectXはあなたがマスターできる最も価値のあるスキルになると信じています。ただし、競争もこのように進むことに注意してください。いくつかの追加が違いを生む可能性があります。

出典:上記のすべてを実行し、業界で素晴らしい仕事を得ました。


3

この質問(またはあなたの願望)には範囲が必要です。今日の業界では、「ゲームプログラマー」のようなものはほとんどありません。非常に小さなスタジオやレンダリングプログラマーを目指しているのでない限り、DirectXやOpenGlは重要ではありません。コンソールとPCを区別するものは、パフォーマンスの制限、メモリの制限、マルチコアの問題です。業界のプログラミングの分野が何であれ、それらは重要であるため、それらの意志、imo、助けに対処する方法を知っていることを示します。C ++を知ってください。C ++の落とし穴を知ってください。STLを使用しない方法を知ってください。コードがフレームレートに依存せず、マルチスレッドであり、カスタムメモリアロケーターを使用していることを確認してください。もちろん、それを強調してください。本当に重要なのは、デモが終了したことです。多くのプログラマーは、コアメカニックが機能すると停止しますが、ゲームプログラミングの抵抗は最終決定です。

ほとんどのスタジオは、AI、ゲームプレイ、レンダリング、システム、オーディオ、物理学、その他、あなたのスキルが何かを知りたがっています。それを理解してみてください。業界での経験がなくても、ジェネラリストであることは大変なことです。

がんばろう!


焦点を当てるエリアを選択することの大きなポイント。
jcurrie33

1

DirectXは素晴らしい選択です。すでにWindowsを搭載したPCが存在する可能性が高いため、これは実行するのが最も簡単なデモです。コンソールオプションを使用することを選択した場合は、代わりにビデオが良いデモです。しかし、実行中のライブコードを見るに勝るものはありません。

いくつかのマシンでコードを試して実行して、異なるビデオカードなどを許可するようにしてください。最近はほとんど自動ですが、いくつかの違いが発生する可能性があります。


0

3D APIの知識はどれも優れています。DirectXかOpenGLかは問題ではありません。3Dの概念はどこでも同じですが、APIだけが異なります。OpenGLを知っていても、ジュニアレベルのXBOXジョブを競うときにDirect3Dを知っている人に不利益を与えることはありません。実証する必要があるのは、何かをコーディングする能力と、C ++(または他の言語)、標準ライブラリ、データ構造、アルゴリズムを理解していることです。UDKやUnityなどのゲームエンジンの知識はボーナスです。これは、ゲーム会社で一般的なミドルウェアを操作する能力を示しています。Flashはフロントエンド開発で使用されてきましたが、見逃さないスキルでもあります。

最も重要なのは、(任意の言語で)デモを作成し、それを適切に作成して最後まで確認することです。がんばろう!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.