好き勝手に・げーあにん?

ファミコンと同い年の社会人ヌルオタの日記

ゲーム開発現場の未来とか現在とか

テスト駆動開発とかしてるー?」と聞かれて、「すいません、しません」と答えたら、「えー」って言われて、ソフトウェア業界とゲーム業界の一番の違いだなあと思ったんですよね。

KONAMI、スクエニ、セガ、バンナム、コーエーの大手5社がゲーム開発現場の未来を再び討議

日頃どうしたものかと考えてるんだけど、やっぱりやってないところがほとんどなんだなぁ。

テスト書いてないいい訳とか、その他もろもろ、いろいろと思うところがありすぎたので以下、引用多用で殴り書き。

内容的にはきわめて専門性が高く、綺麗な結論も出ていないが、ゲームメーカーで技術を司る責任者たちがいま何を考えているのかがよくわかる好資料として、あえてそのままの形で掲載してみたい。

まずはこの掲載方法をとった記者の方、GJ!! といわざるを得ない。

やっぱりあれを一度見てしまうと、携帯ゲーム機と同列にしてほしくないなと思います。ユーザーもさすがにそこは感じ取ってくれてると楽観的にとらえています。

感じ取ってくれ続けて欲しいなぁ‥‥(遠い目)。2Dゲーに関してはもうPSPで十分なんじゃないかと思っている俺がいる。ムービーにしちゃうと容量的な意味でつらくなっちゃうけど。Mさんが本当に携帯ゲーム機だしてきたら、バリバリの3Dゲーを売りにしたものになるだろうしなー。Mさんが来なくても、PSPの次のハードになったら、据え置き機との区別ってなんなの? 計算量の違いだけなの? という感じになりかねない。楽観的で大丈夫なのかな‥‥とりあえずはいいのかな‥‥。

もうそろそろ先の見えない開発に対して計算パワーとか、試行錯誤を支援するような、ゲームを作りやすくするところを考えないといけないんじゃないかなと。

もうそろそろ‥‥じゃねぇよ! 遅いよ!!(笑) 正直、ゲーム作ってる人たちはこの辺のことへの興味値が低いんだろうな。で、体力がある間にいろいろ楽しかったり辛かったりをやり通して、体力的にキツくなってきた人たちがようやく「そろそろ効率化しようよ?」と言い出しているここ数年の流れなんですね。わかります。

今、Maya、Max、XSIとあるわけですけど、5年前からどう進化してきたかというと実は(本質的に)何も変わっていないんですよね。いろんな機能がついて便利になっていますけど、でもゲーム業界にとって何か便利になったかというと何も変わっていませんし、これは5年後も変わらないでしょう。ゲーム業界のためのツールを作ってくれる人がいないかということをずっと待ち続けているところですね。

PS、SS、N64の時代からゲームが3Dになってから10年以上経ってるというのにこの有様なのは、改めて客観的に見ると苦笑するしかないな‥‥。待ち続けているというよりは、みんながみんなが同じようなことをやって、それが会社単位のクローズドな環境でそれなりに使えるレベルになってて、そこからの発展がしにくかったりするんだろうなー。

私が注目しているのは、これはTim Sweeneyさんから教わったことのパクリなんですけど、「関数系言語」が復活してくるであろうと思っています。

さっき(コメントに)出ていたHaskellがその中のひとつですね。そういう言語も研究対象にしたほうがいいでしょう。ただそれをシステム全体の中で、どのレイヤーでどういう目的で使うのかということは、かなり慎重に考えないといけないと思います。

どういう目的で使うのかマジ重要! どういう目的で使うのがマジ重要!! 重要すぎるから2回言ったよ!!! もしも関数型言語をゲーム開発に使うとしたら、どういう部分に向いているのか、また実際に使ったらどんな事が起こるのかとかの議論は、各社、人柱を立てた上で存分にやっていただきたい。そして、私はそのおこぼれに預かりたい(えー)。

今どう思ってるのかとを書き出すと眠れなくなりそうなので省略。

JavaスクリプトLua(ルア)、Squirrel(スクワール)などがほぼ確定路線としてあるわけです。プログラマが書くスクリプト言語と、ゲームデザイナーが書くスクリプト言語は分かれていきそうな気もしているんですが

すでに分かれてると思ってたけど、意外とそうじゃないんだな。そんな私も、デザイナーにRuby書かせてますが。DSL的な意味で。‥‥ダメじゃん。

C++でやばいなと思うのはプログラマのスキルの違いをやたら増幅しちゃうんですよね。単純に構造体の中に関数を含める程度の使い方から、STLをガンガン使って書く人もいる。それぐらいの幅を許容する言語になってしまっている。各開発会社はコーディング規約レベルで一定の枠は作っているんでしょうけど、それでは手に負えないので、その上にフレームを作ってやらないとあまりにコードの質が増幅され過ぎちゃって問題かなと思いますね。

コーディング規約マジ重要!! ‥‥今さら感、漂いすぎですが。コードレビューとかまったくしてないことがもろバレですよね(苦笑)。‥‥自戒も込めてorz

そうなってくると一番手っ取り早いのは.net Frameworkを“S”と“N”(編中:SCE任天堂)にも移植してくれないかなという話も出てくんじゃないかと思います(笑)。

Mさんがゲームハード出してる限りはないだろうなぁ(苦笑)。ここで無いだろうなぁとか思ってしまう空気があたりまえすぎるのが問題なのかなぁ。

スクリプターにこれで書いてくださいていって何が問題になるかというと英語がよくわかりませんって言われるんですよね。だから日本語で書けるんですよ、フラグも全部日本語で書けますよ、「何何したいフラグって書けばいいんだからね」って言うと、みんな使ってくれたりします(笑)。

スクリプターには日本語で書けたほうが良いっていうのには激しく納得。やっぱそうなんだなー。送り仮名の違いとかが地味にめんどくさいのはご愛嬌。日本語使えるなら、静的型付け必須(笑)。

オープンソースとか立ち上がればおもしろいんですけどね(笑)。

立ち上げてください><

ゲーム業界はオレオレ言語が多すぎると世界だと思うんだ‥‥

これも最近クリティカルになりつつあるプログラムの開発手法についてですが、これまでは根性で作っていたという側面があります。この間、大学の先輩と話したときに、「30人とかプログラム集めて根性で作ってますよ」って話をしたら、「テスト駆動開発とかしてるー?」と聞かれて、「すいません、しません」と答えたら、「えー」って言われて、ソフトウェア業界とゲーム業界の一番の違いだなあと思ったんですよね。

冒頭に引用した文を再び引用。重要だから2回引用したよ! さっきから丸々引用してばかりでごめんなさい。重要な部分が多すぎて全然絞れん。

音とか画像とかやろうとすると難しいんですけど、システムですらやっていないでしょう? やってるメーカーってそんなに聞かないですよね。ここ数年でプログラム業界でやってきたトレンドを、ゲーム業界はやっていないんじゃないかなあという危惧を持っているんですよね。

少なくともシステムではやろうとして、途中からテスト書かなくなった経験のある人、挙手!! ノシ

いやもうね。ホントごめんなさい。誰に謝ってるかよくわからないけどごめんなさい。正直、ゲームと既存のTDDはあわないとおもってしまってるとです。それでも、システムでは書くべきだとは思うんだけど、音とかグラフィック以外にも、実際にフレームまわして動かさないとどうしようも無い部分とか、ローディングとの兼ね合いとか、その辺りのテストをどうするのかとか、その辺りは妥協するとしたら、妥協する部分としない部分との境界線はどこにあるのかとか考えてると、結局は根性と、デバッガさんに何とかしてもらう! みたいなノリになってきて‥‥ホントごめんなさい。

とりあえず、危ういところには片っ端から assert しかけておいて、デバッガさんがひっかかってくれるのに期待しようというのが、ダメな私の現時点での妥協点なのでした。助けてエライ人!!(他力本願)

えー、たぶん5年後も根性だと思います(場内爆笑)。

ですよねー(場外でも爆笑)。‥‥助けてエライ人orz

これまでのようにテスターを何十人導入するみたいなやりかたは通用しないでしょうと。(「デバッグを客にやらせる」というコメントに対して)お客様に対してなんてことを(笑)。

デバッグが大変だろうということですね。

Javaしか知らないとか結構多いんですよね。それで何かが起こってデバッグしようと思ってもちんぷんかんぷんで

さっきから馬鹿のひとつ覚えで申し訳ないですけど、製品を作る側からするとデバッグが気になるんですね。

開発手法としては、根性ばかりではどうにもならないので、静的管理ツールや動的管理ツールを入れて、デバッグの時間を少しでも減らせればなと試行錯誤しているところです。

まだデバッグの話に繋がるんですけど(笑)、やっぱりテストの問題は大きくて、正直言うとバンダイナムコゲームスって、今までその部分にあまり積極的ではなかったので、さすがにしっかりやらないといけないかなと思っています。

デバッグ関連。今までデバッガーを何十人単位で導入するやり方が当たり前になっていたわけですが、これって他の業界から見たら異様だったりする‥‥んだろうな、たぶん。

さっきと同じこと書いちゃうけど、既存のTDDでは根本的な解決にはならないと思ってるんだけどどうなんだろう。うまく活用してるところもあると思うので、その辺りの事例には非常に興味がある。もしくはゲームならではのTDD手法をすでにやってる所とかないのかなー。根性駆動開発はマジ勘弁w

ぶっちゃけですね、日本のゲーム業界の新人の質が下がっているのは間違いない。ひょっとしたら、今、ゲーム業界がほしがっている人材と、来る人材がマッチしてないところがあるのではないか。

欲しがられている人材じゃなくてごめんなさいorz

新人教育はコードをしっかり見る、これしかないと僕は思っています。その上でしっかりレビューする。

ハードウェアをやるというのは僕は賛成です。ヤスリがけでいいと思います。まっすぐヤスリがけをするのは大変なんです。何が言いたいかというと、若いウチに完璧な仕事をする経験を積むチャンスをぜひ作っていただきたいなと。

新人教育の話しは非常に興味深いが、教育を受けた記憶も、した記憶もほとんどない私にはモヤモヤと感じる部分はあるんだけど、言語化できない。気づけば、バイト時代から数えるともう丸5年経っていることに恐怖を感じてしまった今日この頃。つか、新人教育しないといけない立場なんだけど、されたことないから何していいものやら‥‥。

というわけで、ゲーム開発現場の未来は「みんながんばろう!」ということで(場内爆笑)

根性以外でなんとかできるようにがんばろう!ということで(苦笑)