インディーズ以外の開発者は、どうやってホイールの再発明をやめることができますか?


8

ゲーム業界の現状では、ほとんどのソフトウェアを社内で作成するようですが、ダース以上のものを使用する場合は、エンジンを除外する可能性があります。ここで働く前は、私は主にオープンソースの開発者だったので、この考え方は私にはまったく狂っています。ログビューア、ネットワーク診断、パッチシステムなどの構築をすべて停止できる良い方法はありますか?

回答:


15

ホイールの再発明をやめることができます...ホイールの再発明をやめます。外部ライブラリ、ゲームエンジンなどを使用します。

私は人々車輪を再発明して次のことをするという感覚を得ます:

  • ライブラリまたは借用したコードの著作権、使用料などを回避する
  • ゲームエンジンへの支払いを回避する(AAAゲームの全額の場合、これは非常に高価になる可能性があります)
  • コードベース全体との親密な関係を維持する-外部ライブラリの追加、ゲームエンジンへのリンクなどは、コードに精通し、場合によっては維持するコードが増えることを意味します
  • すべてのコードを自分で書くことは、ゲーム専用にコードを最適化できることを意味します
  • その後、必要に応じてそのコードを他のユーザーにライセンス供与し、独自の制御を維持しながら、他のプロジェクトなどに再利用できます。

私はそのすべてに同意します!私自身も、特許を取得したコードを回避するためにいくつかを再発明する必要がありました。また、ゲームエンジンへの支払いを回避する必要がありました。最後に、自分のせいではない問題がよくあります(3つの欠陥がある現在のゲームのように、1つはそれです)物理エンジンには直感に反する動作があります...これは、ソースを深く読む必要があることを意味します...もう1つは、優先順位を選択するための任意の方法がミキサーにあるようです。最後に、マップエディターを備えたゲームエンジン自体です。マップをアンロードすると、ランダムにsegfaultします...これもまた、コードスイープを意味します...)
スピーダー

質問はより社会的なものです。どうすればそれを奨励できますか?たとえば、ゲームに依存しないパッチ適用ツールはありますか?データ操作(rsyncアルゴリズム、zlib)の基盤となるアルゴリズムとライブラリはいくつかありますが、UIまでは何もわかりません。
coderanger、2010

1
サードパーティのクローズドソースのターンアラウンドタイムを考慮に入れたり、正確なユースケースに合わせてライブラリを最適化したりせずに、リリースクランチ中にライブラリの問題を解決して修正することができなかった。それらはかなり価値がある場合があります。
moonshadow

1

場合によります。私は実際にはかなりの量のミドルウェアがそこにあると思います、それは慣れています...あなたがそれを支払う気があるなら。

同時に、スコープが小さい場合、多くの外部依存関係がなくても、何かをハックして本当に高速にするのは簡単です。

ハイエンドでは、EAやUbisoftなどの企業を、Apple、Google、Facebookなどの他の大規模なソフトウェア企業と比較する必要があると思います。

彼らは競争上の優位性を獲得したいので、既存の選択肢がある場合、それらはすべて非常に大量のカスタムコードを書きます。

@Sean Jamesが述べたように、法的な理由や他の多くの理由がありますが、障害がなくても、独創的なソフトウェア会社は、既存の一般的なソフトウェアコンポーネントのカスタム代替案を開発して、それらを改善できると考えた場合はそうするでしょう。

しかし、私たち全員が恩恵を受けることができるいくつかのプロジェクトを開始する余地が常にあることにも同意します。たとえば、COLLADAをJSONベースのもっと単純なものに置き換える必要があると思います。多分、任意のメッシュのみを処理し、他は何も処理しないものでしょう。本当にもっと良いメッシュフォーマットが必要だと思います。


独自の「ミドルウェア」を作成することには競争力があるだけでなく、社内サポートも意味します。これは、重大な危機が発生した場合や、ゲーム全体を渡さなければバグを再現することが不可能な場合に役立ちます。
Kaj 2010

ゲームエンジン会社が買収された場合や、彼らのコードが海賊版にされた場合も、リストは続きます。他の誰かに依存しているコードは、それを定量化するのが難しい可能性のある責任です。多くのユーザーがいない場合、それは多くの専門ミドルウェアの場合です
Jonathan Fischoff 2010

カスタムコードがすべてなくなるとは思いませんが、データを共有するための実用的な形式がないことがツールの開発に役立っていません。
ジョナサンフィショフ2010

多くの場合、少なくとも私の会社では、人員がすでに社内で再構築されますが、それは、人員がすでに予算に入れられており、商用ミドルウェアを購入することができないためです。 HQに大規模な資本支出を許可するよう依頼します)。自由なコラボレーションのメリットは、プロプライエタリツールの競争力よりも大きな恩恵ではないでしょうか。
coderanger、2010

改善できると思いますが、ゲーム会社だけにとどまらない問題だと思います。コードの再利用は、ゲームだけでなく一般的にもはるかに少なくなります。個人的なレベルでは、いくつかのプロジェクトを進めるのを手伝いたいです。
ジョナサンフィショフ2010

1

ログビューア、ネットワーク診断、パッチシステムなどの構築をすべて停止できる良い方法はありますか?

私の経験では、これらは「実際の」プログラミングと一緒に追加できる単純な追加機能として扱われます。もちろん、それらは単純ではなく、「余計な」ものからは離れており、システムの複雑で重要な部分であることが判明していますが、それまでに、特注バージョンへの投資は多すぎます。

このタイプの機能を提供する優れたオープンソースまたは商用ライブラリはありますか?あるかどうかはわかりません。誰かがステップアップして提供するまでは、このままです。多くの場合、ビジネス開発者はゲームに適したライブラリを作成できません(「リリースビルドですべての呼び出しを完全に削除できないのですか?」)。ゲーム開発者は、この種の作成に関心がないことがよくあります。彼らがゲームを進めているときのスタンドアロンパッケージとしてのこと。

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