私は今日で最も複雑な/印象的なアプリケーションが書かれたものが何であるかについて今日考えていました。だから私は毎日快適なものを考え始めましたデータベース。
それから私は未知の分野(私たちのほとんどに私が推測する)、政府。私は彼らが火星のローバーと通信することを可能にするNASASアプリケーションの複雑さを想像することしかできません。
しかし、私は私が子供だったので私が毎日使用していたものについて考えるのを始めましたゲーム。ゲーム開発者ではありません、これは私の想像力にもたらされました、私が考えることができる何かを上回るAIと計算の複雑さについての膨大な質問をしました。
ゲームは最も複雑な/印象的なアプリケーションですか?
短い答え:いいえ.
長い答え:ゲームは実際には複雑なものすべてではありません。それはあなたが「ゲーム」と言うとき、それはあなたが話しているのかによって異なりますが、最も複雑なゲームのための2つの競争相手は3Dゲームとオンラインゲーム(特に超オンラインゲーム)です。
3Dゲームの合併症は、世界のモデルを取得し、3Dでそれをレンダリングし、それを「現実的」に(世界の規則内で)振る舞うことから来ています。それからの視覚的および聴覚環境を作成することは実際にはそれほど難しくありません。それはほとんどすべての線形代数であり、コンピュータサイエンスの成熟した分野です。
本当のトリックは、そのプロセスがリアルタイムでパフォーマンスを実現しています。長年にわたり、ゲームプログラマーはリアリズムとパフォーマンスの間にたくさんのトレードオフを行わなければなりませんでした(例えば、あなたが実際に多くのお金の価値がある現実的な木の木を生成することができるようにすることができる場合)。だから、コンピューティングとグラフィックの電力が増加したので、ゲームは当然(視覚的に)何年にもわたって良くなっています。
今、いくつかのゲームプログラマーはこの分野で実際の革新を行ってきました(当然)彼らは多くのお金を獲得しました。 John Carmack(IDソフトウェア:DOOMとQuake)とTim Sweeney(Unreal)Spring to Mind。
しかし、ゲームを作る際の実際のコストはコンテンツです。現代のFPS(一人称シューティングゲーム)ゲームのクレジットを見に行くだけで、通常は6つのプログラマーがわずか6つのプログラマーが見られますが、30~50 +芸術家があります。コンテンツは複雑ではありません(ソフトウェアの観点から)。時間がかかるだけです。
オンラインゲームに関しては、EverQuestが出てきたときに覚えており、人々はそれがどれほど難しいかについて暴走しました。バズツ、間違っています。 90年代(そしておそらく80年代)を通して泥(マトリユーザーダンジョン)の開発に精通していた人(Mutli-User Dungeons)のために、建築的に絶え間ないサーバーがそれほど複雑ではありませんでした。
World of Warcraftやこれらの他のゲームのいずれかにも同じです。
複雑なことについて話す場合は、Windows XPオペレーティングシステム)について説明します。これは、推定値がある 4000万行のコード ?神はいくつのVistaを知っています持っています。またはLinuxカーネルについてはどうですか?
今、政府、軍事と民間部門では、文字通り何千人もの人が彼らに投資された他のアプリケーションがあります。
私はNASAのSattelite地上局の1つのコードに少し働いていました。システムの仕事は、NASAの衛星を電子的に追跡し、そして制御することです。それは多くのように聞こえないかもしれませんが、あなたが衛星を指揮する途中にある間にシステムがクラッシュした場合、あなたは太陽の中に回転する数十億ドルのドルを訪問することができます。そのため、そのセットアップに組み込まれているフォールトトレランスと冗長性は爆発を嫉妬します。 IIRCは、50のサーバーの近くのどこかにあり、そのうち中央に障害が発生した場合は2秒以内に引き継ぐ準備ができているホットスペアがより重要です。これらのシステムのそれぞれには、の両方の両方が失敗する場合は、冗長システムの冗長システムが継続する準備ができています。私はまだ複雑なゲーム(またはそれ自身の方法で、それ自身の方法で)を見ていません。
これらの地上局は、すべての田田自体自体とともにすべての田田自身とともにリアルタイム(そして人間の相互作用と経由の両方)、およびそこにあるときのシャトル、そして軌道データを処理する様々な地上端末と相互作用します。したがって、NASA呼び出し [〜#〜] tdrss [〜#〜] 。これが私が見つけた非常に概念的な図です オンライン :
(出典: nasa.gov )
「白い砂の複合」は 物理的に位置しています LOSのクルーセスの近く、太い南ニューメキシコで。あなたがそのブロック内部を見ることができるように、私が説明したもののような3つのグランド端子全体があり、すべてネットワークが一緒にネットワーク化されている。さらに2つのリモートなものがあります(私は彼らがどこにいるのかわかりません)。
ゲームは複雑さの視点から印象的なすべてではありません。私はあなたが確かに彼らのグラフィック能力でうわーを和らげるFPSスタイルのゲームを考えていたと思います。計算が進む限り、彼らは確かに多くを行いますが、それはほとんど多くの試みられた試みのある、実績のあるアルゴリズムが絶えず増加している多角形と高解像度のテクスチャマップです。
身体環境をシミュレートすることは、そのすべてのハードではありません。あなたが環境に従うことを望んでいることを提供しましたら、そのもののほとんどがやや基本的で理解されているので、物理学の法則に従うことができます。
火星のローバーの任務は印象的な偉業です。動的メモリ割り当て、実行中のコードのデバッグ、MARS上の、およびバグの修正をフライにアップロードします。頑健性の観点から、それはケーキを取り込むのに近づくと思います。
私はすでにここにいる答えのいずれにも反対していませんが、人々が「ゲームの複雑さ」について考えるとき、彼らはGTAまたはMMORGSについて考えることを非常に興味深いものです。私は行くこととチェスについて考えます。
人気のあるゲームは、たくさんのグラフィックスを使って計算的に集約的であるかもしれませんが、それ自体は難しくありません。一方、扱いにくい問題です。
また、「複雑さ」の技術的な定義をしている場合は、これは[〜#〜]ではなく、〜#〜]主観的な質問です。
私はあなたが「複雑さ」または「印象的」を測定する方法を知りませんが、あなたがデスクトップ上に持っているかもしれないソフトウェアの中には、おそらくほとんどの対策によって、あらゆるビデオゲームよりも「複雑」です。 。
(私はこれらの日は5000万行のコードのようなものであると思いますが、私は必ずしも信頼できるリソースではありませんがここにあります。)
私は本当に言及されていないのだろうか Dwarf要塞 まだ:)
dwarf要塞は実際にはかなり印象的です。それは光沢のあるグラフィックを欠いているかもしれませんが、オープンワールドの世代とシミュレーションの印象的なものがたくさんあります。
それは本当に私たちが複雑さを測定する方法である、私たちはどのような側面を見ていますか。これらの日々のビデオゲームを力にするのは確かに大きな印象的な技術があります。
私はあなたのいくつかがこれを楽しむかもしれないと思います:NASAのJohn Carmackは、月のランダーでの彼の仕事の最初の賞を受け入れます。
John Carmack(Armadillo航空宇宙)のNASA HQ
Carmackによると、featは簡単でした。
私がビデオゲームでやるべき仕事は、実際にareより複雑な航空宇宙作業。
彼らは複雑です、はい。彼らは非常に印象的です、はい。
しかし、ゲームに匹敵するシステムがそこにあるシステムがあります。データベースマネージャは非常に複雑で印象的です。 MathematicaはSWのもう一つの素晴らしい部分です。多くの例があります。間違いなく一部のゲームは上がります。
開発プロセスを含めると、ゲームは確かにそこにあります。
誰かが航空交通管制ソフトウェアを述べています - それが信じられないほど複雑で信頼できることをかなり確信していますが、私にとってそれはグローバル航空の発券システムになることができます - Amadeus私はそれが呼ばれていると思います。
何百万のフライトや目的地や価格設定のオプションで、基本的に全世界にリアルタイムでリクエストを提供できるという信じられないほどのものです。
ホテルの客室料金を計算した少しのソフトウェアを書いた。これは大きなチェーンや何かのためではなかった、ただのホテル - それほど大きくはありませんでした。そして、すべてのさまざまな変数とルールを取得し、価格を返したコードは...巨大でかなり複雑でした。
今すぐ開催されたすべてのフライトに拡張するには、将来的には存在の最も複雑なものが私の意見にある必要があります。