今週で3週間目になりました。
現在私が携わっている仕事は
人間的に問題のある人とか、技術面で問題のある人とかはいません。
みんなある程度の開発経験のある方です。
プロジェクトは私の会社の上の方が仕切っていて技術面や人間性に問題のある人は基本的にプロジェクトに関われません。
なのでプロジェクトは円滑に進みます。
会議も打ち合わせもばっちり。
プログラムの土台もしっかり作られているのでメモリーリークやフラグメンテーションの心配もありません。
まぁでも常にそんな仕事になるか、と言ったらそうでもないようで、
私の同僚がやっている別のプロジェクトでは人間的な問題で作業が一向に進まないなんてことが起こっているようです。
まず土台が作られていないそうです。
通常、ゲーム開発を行う際はヒープからの確保はできる限り最低限に抑えます。
動的なメモリ割り当てなんてもってのほかで、
あらかじめプログラマー側が確保したワークスペース内からメモリの管理を行うようにするものです。
このようにすることで、リソースを破棄するべきタイミングのときは確保しただけが勝手に開放されるようになり、
リークや断片化の発生を防ぐことができます。
私の上司曰く、このやりかたは30年前から変わっていないらしく、ゲーム作りの考え方の土台は基本的にみんな同じなのだそうですが、
どうもそうではないケースもあるそうですね。
シーン毎にリソースをその場その場で確保して、各自で開放を呼ぶような作り。
当然メモリリークもガンガン発生します。
そしてそのプロジェクトのチーフプログラマーは仕様と素材が来なければ何もやらないのだとか。
もちろん仕様がないと組めない部分も、素材がないと確認できない部分もあることは確かですが、なくても作れる部分もあります。
そういったものをやらないのだそうですね。ツール化や自動化や効率化をしようとしない、ということなのでしょう。
スケジュールは圧迫されているようで、激修羅場とのこと。
私はよく愚痴を聞かされますが、「お前がそうなったら…俺はそのときのお前にこういってやるぜ!」
と同僚は別の世界線の僕に対して罵詈雑言を投げかけます。
ストレスが溜まってるのはわかるけど僕にぶつけないで欲しいものです(;´д`)
そもそも私は一番最初に一通りの環境は整えるタイプです。
素材と仕様をあとは投げれば動くよ!ってレベルまで作ります。
その上で仕様書を求めたり素材を求めたりはしますが、
くだらないことに時間を費やしたくないので後で手入れするのが面倒な作り方は避けるタイプです。
というよりも個人的にはプログラマーという人種はすべてそういう人種だと思っているので、
できればそう言った方々をプログラマーの代表例だとは思わないで欲しいもんではありますが…
プログラムを書かない人にとってはどんな人もいい加減な仕事をする人種だと思われてしまうのが悲しいところです。
ではでは…(o・・o)/
せんちゃの修行日記~出来ないとは、こういうことさ。~
Re: せんちゃの修行日記~出来ないとは、こういうことさ。~
立派なメモリ管理機能の付いたOSで動かすソフトなら無駄遣いしてもメモリが確保できなくなる状況は基本的に無いわけですが、ゲームは仕様上メモリ(プール)が足りなくなったときは足りなくなったとはっきり分かるように作っておかないと、いつメモリが足りなくなるか分からないのではリリース後にバグる確率も大きく(且つゼロにならず)デバッグ担当が責任負い切れないですね。
仮想メモリがあってもディスクアクセスで遅くなってはゲームにならないですし。
時間がなくてベタに配列で確保してしまうことは少なくないですが、影響を考えれば動的確保するよりはるかにマシです。
フレームワークで管理されるとしても、基本的には確保した順と逆に解放とか、コード書いたりリソースをまとめるときに意識する場面は多いですね。
仮想メモリがあってもディスクアクセスで遅くなってはゲームにならないですし。
時間がなくてベタに配列で確保してしまうことは少なくないですが、影響を考えれば動的確保するよりはるかにマシです。
フレームワークで管理されるとしても、基本的には確保した順と逆に解放とか、コード書いたりリソースをまとめるときに意識する場面は多いですね。
Re: せんちゃの修行日記~出来ないとは、こういうことさ。~
ISLeさん
そうなんですよね、コンシューマーはOSとは違って勝手にシステムがダウンしたりもしないから厄介です。
リリース後にバグるようなことはなかったようですが(まぁまだわからないのですが…)
かなり切羽詰っていたようです。
メモリ管理は本当に大事な部分だなぁとハードに近い環境で仕事をして気づいたような気がします
そうなんですよね、コンシューマーはOSとは違って勝手にシステムがダウンしたりもしないから厄介です。
リリース後にバグるようなことはなかったようですが(まぁまだわからないのですが…)
かなり切羽詰っていたようです。
メモリ管理は本当に大事な部分だなぁとハードに近い環境で仕事をして気づいたような気がします