- 締切済み
プログラムに詳しい方に質問です。
シムシティのような街作りゲームって、街を発展させていくと必ず処理が重くなります。 例えば、最初のうちはゲーム内1ヶ月が現実10秒ぐらいだったのが、次第に20秒かかるようになり、30秒かかるようになっていきます。 これって主に何が原因なのでしょうか? 建物などのグラフィックを同時に描写することが原因? 内部で複雑な計算が必要になることでその計算量が原因? それ以外の何か?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- cametan_42
- ベストアンサー率62% (162/261)
ちなみに、初代のシムシティはソースコードが公開されてるので、見てみたら良いかもしれません。 Micropolis Downloads: http://www.donhopkins.com/home/micropolis/ 「シムシティ」は現在、エレクトロニック・アーツの商用なんで、名称がMicropolisになっていますが(実はMicropolisはシムシティの開発時の名称)、スーパーファミコンにも移植されたオリジナルのシムシティです。 「micropolis-activity-source.tgz」と言うのをダウンロード、解答して、「一体何が行われているのか」見てみれば良いと思います。
- jack-a3
- ベストアンサー率38% (305/800)
基本的には(2)です。 ああいうゲームって、建物ごとに何人の住人がいて、その幸福度はいくつか、などのデータが管理されてます。 商業系や工業系の建物だと、そこで何がどれだけ生産されているかとか、その生産が完了したかどうかも管理してます。 で、それらの総計を元に街全体の人数とか幸福度、税金の収入なんかが計算されてます。 ってことは、街が大きくなって建物が増えれば増えるほど計算量が増えるのは当然ですよね? さらには建物ごとに不定期に発生するイベントなんかもあります。そのイベントを発生させるかどうかの計算も建物数の増加や複雑化に従って増えていきます。 ついでに最近のシムシティ系ゲームは道路に人や車が動いてたり、朝晩でグラフィックが変化したりしますが、これも結局は建物の数に比例して処理量が増えていきます。つまり結局はグラフィック計算量の増加も建物の増加や複雑化に比例する。 よって、街が発展するほど処理が重くなっていく、ということになります。
- wormhole
- ベストアンサー率28% (1626/5665)
>PS4などではもうほとんど影響が無くなっていそうですが、スマホのゲームなら今でも処理が重くなる可能性は高いですか? いえいえ。 最新のゲーム機でCPUやGPUの性能が上がって処理に余裕が出てきたと思ったら、 新しく作られるゲーム側でその余裕がなくなるくらいCPU、GPUを使うようになものが作られるようになりますから影響がなくなるって事はないです。 そして、それはスマホのゲームでも同じかと思います。
- t_ohta
- ベストアンサー率38% (5238/13705)
> ということは、スーパーファミコンとかの時代は内部の計算量が多くて重くなっていたということでしょうか? スーパーファミコンはCPUの処理能力が追いついていないでしょうし、現代のGPUのような高度なグラフィック処理もCPUが担っていたので余計にCPUの負荷が高かったでしょうね。 それにメインメモリもたいして載っていない上にディスクスワップのような機能も無いので、限られたメモリをいかに上手く使うかがプログラミングの肝にもなるので、複雑な処理になっていたのは間違いないでしょう。 > あと、2007年頃に発売されたパソコン版のシムシティ4でもそれなりには重くなっていました。 CPUやGPUの性能が今のモノに比べれば劣りますし、メモリの量も少なかった時代ですからディスクスワップは頻繁に起きていたでしょう。 > PS4などではもうほとんど影響が無くなっていそうですが、スマホのゲームなら今でも処理が重くなる可能性は高いですか? スマホの場合は利用できるメモリ量にかなり制限が有るので、いかに細かい計算をさせないようにするかが大事でしょうね。 複雑な処理はサーバ側で行って、スマホ側は予め用意されているアニメーションを組み合わせてそれらしく見せる事でスムーズに動かすことが可能になります。 バカ正直に全てスマホ内で処理したら無茶苦茶重くなるでしょうし、場合によってはハングアップしちゃいます。
- t_ohta
- ベストアンサー率38% (5238/13705)
グラフィック処理が増えれば描画に時間が掛かりますが、最近はGPUの性能がいいので影響は軽微になってきています。 ディスプレイの解像度が高くて、広い表示領域があると重くなる傾向になります。 内部の計算量も最近はCPUの性能がいいので影響は軽微でしょう。 多分、一番影響が出るのはメインメモリの搭載量でしょう。 計算量が増えると言うことはデータ量が増えるのでメモリの使用量が増えます。 メインメモリの搭載量が少ないとディスクスワップが発生するため、ディスクの読み書き速度が処理時間に直結します。 また、ゲームの進行を自動保存する機能が有ると、データ保存とディスクスワップが同時に発生し、更に速度が低下する場合もあります。
お礼
ありがとうございます。 ということは、スーパーファミコンとかの時代は内部の計算量が多くて重くなっていたということでしょうか? スーパーファミコンのシムシティは極端に遅くなっていました。 あと、2007年頃に発売されたパソコン版のシムシティ4でもそれなりには重くなっていました。 PS4などではもうほとんど影響が無くなっていそうですが、スマホのゲームなら今でも処理が重くなる可能性は高いですか?