今回はメカAGさんのブログからご寄稿いただきました。
■綺麗なコード、汚いコード
「CES三日目 enchantMOONの秘密 そして驚きの展開に」 2013年01月11日 『UEI shi3zの日記』
http://d.hatena.ne.jp/shi3z/20130111/1357915582デバイスドライバーレベルでアプリケーションに近いコードが走っている。デバイスドライバーが完全にenchantMOONのUI、MOON Phaseのためだけに作り込まれている。VRAMが書き変わるのはペンの周囲わずか9ドットのみ。データは全てベクトルで保持し、非同期にアプリへ通達されるがそれよりも速く画面が描きかわる。
なんかこういうのワクワクするな。8bitパソコンのプログラミングとかって、こういう工夫(Hack)の塊だったんだよな。あの頃はむしろ「こういうアルゴリズムを思いついた」→「それを活かすゲームを考えよう」って順序だったような。
美しくモジュール化する設計も大事。しかしここぞというケースでは、思いっきり泥臭いテクニックを使うのも重要。俺は綺麗な設計も好きだが、ハードウェアの性能を限界まで使い尽くすようなコードも好きだ(というかこっちは大好きだw)。
Windowsだってもともとは「Windowsでリアルタイムゲームはできない」というのがセオリーだったのを、その常識をWinG(いまのDirectX)でひっくり返したから、今日の繁栄があるわけだし。
* * *
むかし俺が書いたコードで、性能はいいのだけどメンテしにくいというものがあった。そんなことはわかってるんだが、そのハードで必要なパフォーマンスを出すには、そういうコードを書くしかなかった。だから文句を言われても弁解すらせずに無視していたw
で、そのうちゼロから設計し直そうというプロジェクトが俺の知らないところで始まった。一応俺にも声がかかったのだが、丁重にお断りしたし、むこうも断られるのは織り込み済みの様子だった。
で、2年ぐらいかけて開発したようだが、速度もコードのサイズもまったく実用に耐えないものしか出来上がらなかった。一応完成したが誰も使う人はいなかった。
あ た り ま え な ん だ よ !
必要だからぐちゃぐちゃのアクロバティックなコードを書いたのであって、必要もないのにあんなコード、誰が好き好んで書くか!(本当は好きなのはナイショだw)
* * *
ちょっと心が傷んだのは、そのプロジェクトの中心人物が傷心のうちに辞めてしまったこと。彼のせいではない。彼は入社まもない右も左も分からないうちに「このコードをきれいに作りなおしてくれ」と言われて、素直にそれをやっただけだ。
いま思えば彼と一緒に戦うなり、彼に協力するなり、すればよかった。あの時は(俺も若かったし)「俺様が全力で書いたコードを作りなおす?!」「できるものなら、やってもらおーじゃん!」という気持ちが先にたって、そんなこと考える余裕がなかった… orz
●追記
考えてみたらタイトルがちょっとアレだな。enchantMOONが汚いコードだって話じゃないので、念のため。むかし自分が書いたコードを思い出したという話。
執筆: この記事はメカAGさんのブログからご寄稿いただきました。
■関連記事
Adobe が『Photoshop CS2』や『Illustrator CS2』などを無償提供? Adobeは否定
マクドナルド「Twitter・LINE・2ちゃんねるで発言規制」と全国店舗通達にクルー困惑 「チキンタツタ美味しい!」は発言可 能
またまた元AKB48からAV女優が誕生 ファンは複雑な心境
マクドナルド“60秒キャンペーン”について店員が評判や裏技を大胆激白! バイト「やめて」「無理!」の悲鳴
プレイステーション4に導入の可能性がある「1ハード・1ソフト」プロテクションは本当にゲーム業界を救うのか?