2010-09-01 :-)
_ CEDEC 2010 - CESA Developers Conference 2 日目
ゲームの知能と小説の感覚 ヒトの宇宙の究極(?)問題を考える
- 瀬名秀明(作家)
パラサイト・イヴと SF のひと、という程度にしか知らない。SF 方面でよく名前を見るよなあ、と考えていたら Yonai から速達が飛んできた。SF のひとらしく重力とか 2001 年宇宙の旅とか人工知能とかそーいう方面の話題。
大きく分けて重力と知能について。たぶん
重力は、既存の重力を利用したゲーム( だるま落とし、パチンコ、not テトリス )について紹介し、有り得ない重力を表現したもの(滞空時間が長すぎるアレとか、ルパン三世カリオストロの城の冒頭とか))、重力を無視したものを考えると思考の幅が広がるかもしれないよ、というもの。
2001年 宇宙の旅の HAL から始まり、人工知能の話題。「機械が人間と同じように動作し、人間と同じに見えるならば、それは人間である」といった話題。つまり duch typing ですね。自身の著書「デカルトの密室」でも触れたという「逆チューリングテスト」について紹介されてた。
not テトリス はこーいうの → http://zoome.jp/thika/zpdia/p/25/87 重力ぽい動きをする。
社内の技術教育、どうしていますか? ~ コーエーテクモの研修事例
- 金井新一(コーエーテクモゲームス)
技術支援部のひと。ここではおもにトップダウンによる新人への教育の話題。
社内教育に片足を突っ込んだことがあるので[ 20100318#p02 ] 気になって話を聞いてみた。新入社員にたいする教育は強制的に実行すればいいわけだけど、それ以降 新入社員以外の経験者についての教育はどうしてるのか、というのが知りたかった。結論: 任意で参加。まあそうだろう。
ねらい
- 教育が重要なのは分かっているが優先度が上がらない
- そういうひとのためになれば幸い
- レポートに「考えさせられた」「刺激になった」で終了したら勿体ない
- 具体案を作り実践するのだ
新入社員教育事例
- 4月
- 一般研修
- 人事部による
- ビジネスマナーとか
- コンプライアンスとか
- 一般研修
- 5月
- プログラム研修
- プログラマと非プログラマ(プランナー、デザイナー...)に分ける
- 座学 + プログラミング
- Microsoft Visual Studio Express を使う
- 非プログラマ向け
- コンピューターの基礎知識
- C言語の文法
- プログラムに触れさせておくことでプログラマの気持ちが分かるようになる
- 今後スクリプトを書くこともあるだろうからそのとき拒否反応しないようにする
- プログラマ向け
- アルゴリズムとデータ構造
- スタック、再帰、配列
- マインスイーパー作成
- デバッグ
- バグ回避
- ASSERT
- C++ の const
- 職業プログラマとしての心構え
- 大学や個人ではやらない領域をケア
- プログラム研修
勉強会事例
- 3Dグラフィックス講習
- 新人 + 社内希望者向け
- 1コマ2 時間 x 6くらい
- 用語に馴染ませる
- ワークフローを知る
- 社内独自のデータ形式を説明
- ツールの存在やデータの存在を教える
- 社内ツール研修
- 新人 + 社内希望者向け
- 半日 x ツール 6 種類
- シェーダー講習
- プログラマ + 社内希望者向け
- 1 コマ 2 時間 x 8
- DCCツール講習
- プランナー + 社内希望者向け
- Autodesk Softimage を使う
- 2 日間
- リソースの受け渡しを円滑化する
- そのうちプラグイン書けるようになってくれると嬉しい
- 技術連絡会
- 全社向け
- 2, 3 ヶ月に 1 度
- 開発したライブラリ、ツール、技術調査を連絡
- 他者の注目タイトルを上映
- 数学、物理、グラフィックス輪講
- 講師役の負担減らす
- 専門書を読む習慣をつける
- 英語にも慣らす
- ITパスポート試験の参考書
- 新人向け
- 試験目的ではない
- PCに慣れてないひとをケア
- テーブルマナー研修
- 新人向け
- 懇親会のときにやる
- ビジネスマナーとして
- 結婚式のマナーとか
準備のコスト
- 講習
- 1 コマ 2 時間で 2 週間くらい
- スライド + 資料 + 課題 + リハーサル
- 自社に合わせた内容に出来る
- 参考書 + 輪講
- 1 コマ 2 時間で 1 週間くらい
- 適した本があるかどうか
- PC機材確保
- 会議室に設置
- ノートPCを用意
- たいてい 1, 2 台故障する
これからの課題
- 個人のフィードバックはムラが出来る
- 講師の人数確保
- チームワーク開発
- 1つゲームを通して作成させたい
- ゲームデザイン
- 正解が無いので教えるのが難しい
まとめ
- 自分たちが動く
- 小さな勉強会から始める
- 教えたいことを持ってるひとは割といる
新人以降
- 各部署に配属されたら各部署の方針に任せる
- 「こういう講習がある」とアナウンスはしておく
- 参加は任意
ユニットテスト導入の技術的課題とその解決例
- 益弘和(Ubisoft Osaka)
ところで組み込み機器開発でユニットテストは使えるかなあ、無理だよなあ、と思っていたが、ライブラリなど下層には適用できるらしい。まあそりゃそうだよなあ。
- C++ でターゲット(実機)ごとにビルドシステムを動作させる
- C++ のテスティングフレームワークはたくさんあるけど結局 Boost::unittest を選んだ。ただし標準出力を開発環境ごとに実装する必要がある( streambuf を実装 )
- ビルドシステムは make のラッパー
- ユニットテストの設計
- コードは小さく
- 継承よりもコンポジション
- NVIイディオム
- NVI イディオム - Code++
- DbC/PbC と NVI
- vNull Development Blog: NVIイディオムとは
- interface 内で事前条件と事後条件をチェック
- 契約による設計
- ref. オブジェクト指向入門
- ビルドシステムはターゲットごとにオプションで切り替える
- automake の configure とは異なるアプローチ
- ターゲットを切り替えるたびに configure するのが面倒くさい
- 参考 CEDEC 2009 - バグを限りなくゼロにする方法 (PDF)
- ユニットテストはゲーム開発に有効か?
- ライブラリ、ミドルウェアには有効
- コンテンツには難しい
並列動作しているサーバー間におけるスクリプトの協調動作
増永哲也(スクウェア・エニックス)
FF11 での以下の機能での協調動作についての話題
- コンクェスト
- デュミナス
- ビシージ
- カンパニエ
FF11 の基本構成。これ x ワールドぶんあるらしい。ワールドが siren 等なのかは分からん。

- 協調動作とは
- サーバープロセス間のデータやりとり
- 敵が倒される
- アイテムを入手する
- イベントが発生する
- ....
- サーバーAデータ更新
- ストレージへ保存
- サーバーA死亡
- 復旧
- ストレージからデータ復旧
みたいな流れは基本
コンクェスト
- ベータ版時の実装
- NFS
- ストレージ経由でファイルやりとり
- ファイル 1 のみ
- fcntl(2) で排他制御
- →ストレージが高負荷になる
- 正式サービス時の実装
- ファイルは共有しない。排他しない
- ストレージに保存
- (たぶんここで何かの DB を使うようにしたんだろう)
- 15分ごとにデータをサーバーへブロードキャスト
デュミナス
- 実装
- 排他制御の情報のみやりとり
- ( mutex か?)
- ストレージに保存
- ブロードキャストなど
ビシージ
進行データのみやりとり 実装はコンクェストと同じ
カンパニエ
戦争なのでデータ大量
- 初期実装
- コンクェストとだいたい同じ
- ピーク時にログイン出来なくなる
- ストレージ高負荷
- 新実装
- 必要最小限のデータのみやりとり
- データを圧縮
- 約 4 分でデータ更新
教訓
- ストレージ負荷 > ネットワーク負荷
- ボトルネックは IO
- ( DB の読み書き )
- スクリプト間負荷特性はつまりストレージ負荷特性と同じ
- サーバー間通信するたびにストレージにアクセスするため
新実装案
※ただし動作未確認
- これまで
- エリアサーバーがみんなストレージへアクセス
- 改良案
- ストレージにアクセスするのはスクリプト間サーバーのみにする
- エリアサーバー ⇔ スクリプト間サーバー ⇔ ストレージ
- スクリプト間サーバーには揮発性データを持たせる
- ストレージには不揮発性データを持たせる
- つまりスクリプト間サーバーをキャッシュにする
教科書に載らない光学 ~魅力ある絵作りのために知っておきたい色光学豆知識~
- 川瀬正樹(シリコンスタジオ)
カメラやレンズの原理をちゃんと理解してそれをシミュレートするくらい気合いを入れれば自然な絵が出来上がるよ。という話題なんだが、カメラやレンズの原理の説明が細かすぎて伝わらない。いや理解出来るんだけどね
2010-08-31 :-)
_ CEDEC 2010 - CESA Developers Conference 1日目
オープニングと基調講演は CEDEC の存在意義を確認するものだった。
オープニングスピーチ
- 和田洋一(CESA会長)
- 日本ヤバいとよく聞かれるけど日,米,欧,アジアと比較するとそれほどでもない
- でも違いはある
- ディスカッションする場があるか無いか
- 日本には無い
- 情報や知恵は自分から与えたぶんだけ返ってくる
- 「このひとに話しておけばもっと教えてくれそう」
- クリエイターは 0 から 1 を創りだす、と思われている
- そうじゃない
- まったく 0 というものはもはや無い
- 知恵の積み重ねだ
- なにを what どうやって how 作るのか
- what は自分の中にだけあるもの
- how をみんなで共有すればいい
CEDECとは? −そのもたらす価値の追求−
- 松原健二(CEDECフェロー)
「CEDEC を身近に感じてほしい」
- 元エンジニア
- 1980 - 1990
- IT 業界にいた
- ( マイクロプロセッサを作ってたということだから {N, F, T, H}か )
- 当時 日本はメインプレイヤーに成り損ねた
- もともとメインプレイヤーじゃなかったけど
- 欠けていたもの 3 つ
- 危機感の欠如
- 「日本はこれまでうまくやってきたから大丈夫!」大丈夫じゃない
- 戦略の欠如
- 全体が「トップを追え」という姿勢だった
- トップ = IBM
- みんな IBM を追いかけていた
- そんなではトップになれるわけがない
- 課題共有の欠如
- 持ってる課題はみんなだいたい同じ
- でも顕在化できてなかった
- 海外は課題共有が盛ん
- そーいうのは全部 hp から学んだ
- 危機感の欠如
- 開発者がやること
- 進化の確認
- 危機感の共有
- 進むべき方向性の確認
- 自分を高めるのは自分だけ
- CEDEC とはなんぞや
- ゲームに関わるひとたちのためのイベント
- プログラマがプログラミングスキルを上げるだけではない
- ゲームは開発者のマスターベーションではない
- ビジネスとして考えよう
- 売れなきゃ話にならない
ゲームサウンドにおける理想的なサラウンド体験提供への挑戦~技術交流の取り組み事例~
- 藤澤森茂(ヤマハ)
- 大橋紀幸(ヤマハ)
- 矢島友宏(スクウェア・エニックス)
- 土田善紀(スクウェア・エニックス)
スクウェアのひとからの「RPG の音楽は上下の音を削りまくって圧縮してるんだが FF13 を作るときにそれが不満だった、どうにか出来ないかヤマハさん」という愚痴により始まった技術交流。ソフトウェア担当とハードウェア担当のひとが実現したいことを実現するために妥協点を探す、という取り組みの紹介だった。家庭用の環境向けにチューニングしてイイ感じに出力できるアンプを作ってみました。ということで FF13 をプレイしながらその効果を紹介していた。んだが、違いがあまりよく分からなかった。
抽象化すると:
入力→処理(アンプ)→出力
こんだけっていう
Dub the future of game sound! ~ゲームサウンドの歴史と将来ビジョン~
- 田中宏和(クリーチャーズ)( 田中宏和 - Wikipedia )
- 近藤広明(Dolby Japan)
田中宏和さんに近藤広明さんがインタビューしていく、という形式で進んでいった。途中は会話が途切れそうになったりしてハラハラしたんだがそれでもやはり伝説的なひとの話題なのでけっこう盛り上がった。
田中「横井軍平からの遺言『初対面のひとと ラブテスター すること』ということなのでラブテスターやりましょう近藤さん」
- 田中宏和の歴史
- 最初は任天堂でプログラマやってた
- 音源を設計したり
- そのうち作曲するようになった
- 2000 年にクリーチャーズ作った
- よく「ゲーム音楽のひと」とか「音楽のひと」と言われるけど「サービス業」なんです
- エンターテイメント、娯楽、サービス業。そーいったことをやってるんです
- Dub
- レゲエの Dub
- 完成させずに音を 1 つ 2 つ抽出して音楽を作る(?)
- ゲーム音楽専門なわけじゃない
- ゲームがあっての音楽
- ゲームすべてを 1 人で作ってたころからの人間なので、まずゲームありきで考えている
- ネタ帳
- つねに(エンターテイメントの)ネタを考えている
- 1 曲作るために 20 曲をボツにするくらい
- パッと 1 曲だけ作れる、というわけじゃない
- 背景にたくさんの曲があり、それらを積み重ねて 1 曲を作る
- こういう姿勢を続けていきたい
- 自分が変化していないと見えないものがある
- 走ってるときの風景と止まっているときの風景が異なるように
- 自分がエンターテイメント、娯楽、サービス業をやるために自分は右往左往しておく
質疑応答
- 任天堂時代の印象的なひとは誰?
- 「宮本さん」( 宮本茂 - Wikipedia )
- とにかく徹底している
- 四六時中ゲームのことを考えている。あのひとはおかしい :-)
- 横井軍平との仕事
- 「仕事は遊び」について
- ムダと思えることでも省かなかった
- 仕事のうち 2, 3 割りはムダなことをやっていた
- でもそれがよかった
- ( デマルコの「ゆとりの法則」か )
- それが維持できてるときはうまくいっている
- BGMとSEの作り方
- BGM
- 最初にテーマを 3 つ決める。それから着手する
- 例: めざせポケモンマスター の場合
- 好きなコード進行
- 「アニソンは自分にとって初めての仕事。初めて好きになったコード進行をここで使ってみた」
- 転調
- あともう 1 つ。言葉で表現できない
- 好きなコード進行
- SE
- ユーモアを持たせる
- 場面と音楽があってる、ぐっときた音楽は?
- 初期のナムコ作品。ディグダグ等
- ゲームと音楽とのバランスが絶妙だった
- 20 歳のころ仕事始めたときの環境は印象に残るものだ
- 宮本さんも一目置いていた、と思う
- MOTHER2 の音楽ではメモリなど開発者とモメたか?
- モメてない
- 自分が偉そうにしてたので文句言われなかった :-)
- 自分は自分のイヤな部分から出来ている
- 任天堂は任天堂のイヤな部分から出来ている
- ガンコとか、強さとか。そーいうのが特徴を作る
- どうなるか分からない状況に飛び込め
- 未知のことが起きるときはチャンス
- これまでの経験がまったく役立たない状況を楽しめ
- それは岐路だ。重要な岐路に差し掛かっている
セガ社も認めた静的解析 − ゲーム開発からバグを取り除く方法
- 節政暁生(セガ)
- 内田洋一(セガ)
- 安竹由起夫(コベリティ)
PR トラックなので Coverity のひとが最初に製品紹介。そのあとにセガのひとが事例紹介。静的解析は私も以前客先でやってたんだが、お客によるとやはり最初はみんなあまり乗り気じゃなく、しかしそれでも解析しておくとそれなりに効果あったらしい。
- Coverity紹介
- よくある警告
- バッファオーバーラン
- 変数の未初期化
- 未到達コード。論理演算を誤っている
- 単純ミスはコード流用時に多い
- セガ事例
- 2006 - 2007 開発が大規模化。静的解析やろうぜ
- 携帯、自動車、組み込み業界では割りと使われている
- PSU( ファンタシースターユニバース )で実践してみた
- すでに運営してるのである程度動的解析は出来ている
- 再現性が低いバグがある
- 静的解析してみたら発見できた
- 自動化のメリット
- 人に言われるとムカつくけど機械に言われるとムカつかない :-)
- 毎日実行
- チェックチームは機能チェックに時間を割けるようになった
- 社外開発にも適用
- 最初は「面倒くさい」「ほんとに効果あんの?」と懐疑的だったが実際にやってみせると納得してもらえる
- ライブラリ、ミドルウェアにはよくバグがある
- 運用実績
- PC, Xbox360, PS3, PSP....
- アミューズメントにも使い始めた
社外事例としてファンタシースターポータブルでのアルファシステムとの開発事例。こんな感じだった。アルファシステムからセガへソースコードをコミットして、セガ社内で解析して解析結果を保存しておく。アルファシステムからセガ社内の解析結果をブラウズする。

It's a showtime!! -DISSIDIA FINAL FANTASYのAI設計-
- 下田翔大(スクウェア・エニックス)
AI と言っても学習させていくようなもんじゃなくて、条件 => アクションの組み合わせなのね( awk のように )
- AIの要件
- 短時間のバトルで特徴、味を出す
- 対 AI 戦はショーである
- FF キャラらしさを醸しだす
- 性格とスキル
- 性格
- 時間、場面ごとにアピールすることを明確にする
- 朝、昼、晩など。デートを想定してみよう
- スキル
- スキル発動の要因は単純にしておく
- いろいろな要素をからめると分かりづらくなる
- 性格とスキルをタイムラインに当てはめる
- 弱いAIはこういうアルゴリズムを適用させない
- 性格
移動(性格) ↓ 攻防(スキル) ↓ 反撃(性格) ↓ 移動(性格) ↓ 攻防(スキル)
- データとプログラム
- キャラにはデータ 4 つのみ持たせる
- 射程距離
- 避け方
- 攻撃の間合い
- あとなにか
- プログラム
- 移動の仕方は共通
- 相手のベクトルの手前に向かう
- 曲線を描く
- タイミングによってはエアダッシュ
- これによりプレイヤーと AI が様子をうかがいあうということが出来るようになった
- 人間くささを演出する
- キャラにはデータ 4 つのみ持たせる
- アルゴリズム実例
- 全体構成
- 自分と相手の HP などの組み合わせごとの行動を決める
- 基本アルゴリズムを組み合わせて行動セットを作る
- 攻撃の基本は移動して攻防するだけ
- 他はエラー、例外処理
- 反応型にはバグがあった
- 学習させることにした
- プレイヤーの攻撃を回避 or ガードの成功率によって行動させる
- バトル開始後から学習させる
- (ファイルに保存させずメモリに持つのみということか。そりゃそうか)
- 全体構成
質疑応答
- 参考にしたものは何?
- スマッシュブラザーズ
- プレイヤーキャラをまったく動かさずに AI の動きを観察するなど
- 他に参考にできるゲームがあまり無いのでみんなどんどん発表しようず
- ワークフロー
- プログラマの隣で作業
- AI の仕様( Excel で組み合わせの表を作る )をひたすら作る
- 実装
- ゲーム中での強さの設定
- ゲーム中に設定画面はあるけど、設定させるために仕様を作ったわけじゃない
- せっかくの仕様があるからプレイヤーに見せよう、ということになった
2010-08-30 :-)
_ 朝ッ
0520 起床
_ 仕事
0830 出勤
_ ,
「USBのメモリ」が「ブルースリーのメモリ」に聞こえた。聴くのではない、感じるのだ。
_ 生放送
さくまあきらアワー ~帰ってきたジャンプ放送局~ - ニコニコ生放送 を見始めたあとに日記巡回したら DETUNE LIVE on USTREAM: DETUNEがお送りする、トーク&ライブ番組。出演はTrio The DS-10(佐野信義/光田康典/岡宮道生) をハッケソしたので見るなどしていた。
_ ARC 2010 総合得点
B2 無双 ARC2010 - リッジレーサー7
_ photos
contact の写真を眺めてると、私の写真はまったく味わいが無いことを実感する http://www.flickr.com/photos/miwarin/friends/
_ 『題名のない音楽会』ゲーム音楽特集のアレ
helen さんが「感想投げるといいよ」と言っていた( 『題名のない音楽会』ゲーム音楽特集を見たレポート/ぜひ第二弾も・・・! )ので投げてみた。まあこの辺をもう少しキモくなるようにアピールしただけ。
植松伸夫もすぎやまこういちも佐渡裕もオーケストラをもっと親しみやすくしたいと考えてて、彼らが同じ舞台に立ったことは有意義だと思うなのよ (miwarin)
デカルトの密室(瀬名 秀明)

