CEDEC 2014 & C86


CEDEC 2014 で "Live Coding in C++" と題して講演を行いました。以前の予告の通り、この blog に書いてきたことをまとめた内容になっています。上はその発表資料です。

予想に反して聴講しに来てくれた方は多く、この領域の情報を求めていた人まだこんなにいたんだ!と勇気づけられました。講演後も鋭い質問があったり (後にその方は web 上で面識があった方だと判明)、「"C++ は動的言語" で胸が熱くなりました!」とアツい声援を受けたり、楽しい一時でした。
正直話についてこれなかった方も数多くいるんじゃないかと思いますが、そういう方にも何かしらアイデアは示せたんじゃないかと思います。

内容に関して、State Save が最後まで満足行くレベルに到達できなくて、ここらへんはとても悔いが残る結果になってしまいました。ビデオカードのドライバやサウンド系のスレッドでたまにクラッシュするのがどうしても対応しきれず、今回のデモではそれらは一切保存も復元もしていません。
講演内では触れませんでしたが、信頼性の高い State Save を実現するにはもう一段深いレベルの実装が必要な気がしています。具体的には、簡易 VM 的なものを実装して exe を実行する処理まで自力で行い、WinAPI や DirectX もアプリケーションに見せるレイヤーは自力で実装して全てコントロールする感じです。丁度 wine がやってることをそのまま Windows 上でやるイメージです。当然それを実現するには巨大な労力とやる気が必要で、実際にやるかどうかは不明です…。
古い環境限定とはいえ State Save を実現した Hourglass は偉大だと思います。

また、この講演の実現はスクエニの元同僚の多大な助力に支えられました。この場を借りてお礼を申し上げます。


もう一件。


(リアルタイムレンダリング版。是非こちらも御覧ください)

C86 で公開された ユニティちゃんステージ の製作に携わりました。
具体的には床のシェーダは私が書いています。この床、私の趣味によりテクスチャ素材は一切使わず distance function を用いてシェーダだけでパターンを生成しています。(GLSL による実装例) また、反射は Y 方向反転したカメラで描いた結果を使って実現しています。

デザイン画や素材レベルでは用意が行われていたものはあったものの、Unity 上でそれらを組み立てる作業が行われたのは本当に直前で、公開直前 3 日間で超突貫で制作されました。金曜日に公開なのに月曜の時点では Unity 上にステージは影も形もなかったという無茶っぷりです。
私は「床を綺麗にしてくれ!」というオーダーが突然降ってきてすごい勢いで巻き込まれました。

その無計画っぷりはさておき、こんなスピーディーな作業工程は過去の仕事では経験したことがなかったもので、ゲームエンジンが当たり前に使える時代だとその場のノリと勢いだけで結構なものが作れてしまうんだ、という新鮮な感覚がありました。

ちなみに、この Unity ちゃんステージは近い先に誰でも自由に使えるアセットとして公開される予定です。

追記:2014/10/06
小林さん (@nyaa_toraneko) による上記デモの Unity ちゃんのセットアップ解説