前回の続き。セッションを行ったおふたりを含めた、スクリプトに縁のある開発者によるパネルディスカッションについて。
司会者の質問にマル・バツのパネルを出し、その理由についてコメントする…という段取りになってました。実を言うとどんな質問があったかあんまり覚えてないので超ダイジェストで書きます。
「プロダクトにオープンソースなスクリプトを組み込むのに社内の抵抗はなかったか?」という質問では以外にも「スムーズだった」という意見が多かったです。ただ、大手かつ、オープンソース実装(Squirrel)の導入経験ありなのはスクエニの方だけだったので日本のゲーム業界全体でどうかって言う点に関しては未知な感じです。
「スクリプトを導入すると安上がりか?」という問いに元スクエアの方曰く、「(RPG 制作において)プランナーが自身で次々イベントを作成できるようになった結果、ゲームのボリュームが増えたがバグチェックが大変で"安上がり"にはならなかった」。バグチェック云々はプログラマとして耳の痛いところですが、メンバーのやる気がダイレクトに内容の充実につながるのは素晴らしい成果のように思います。
あと「ぶっちゃけスクリプトの導入はプログラマの趣味ですか?」という質問でハッカー気質の人(というのは勝手な印象ですが)ほど「そうです」というニュアンスの返答だったのが面白かったです。実際、新しいことにチャレンジするのは楽しいですからねー。
時間が押してたせいで最後の方に用意されていた割かしディープな質問が省かれてしまったのが残念でした。早回しされたスライドを見る限り「それ聞いて欲しかった!」というものがあったので次回以降にまたやってもらえると嬉しいですね。
2009年1月24日土曜日
2009年1月20日火曜日
IGDA セミナー
IGDA の「ゲームにおけるスクリプト言語の現状」というセミナーに行ってきました。定員 150 名で満員の大盛況。主催の方も「3人くらいしか来ないかもなあ」と思ってたみたいなことを行っておられましたが、実際は結構大きい教室にびっしり聴衆がいるという状況で、是非次回もまた開催したいとのことでした(全3回~5回らしい?)。
最初のコマは Lua 解説本の著者の方で、ぶっちゃけこの方のブログは以前仕事で Lua を使っていたときに相当参考にしてたりします。ありがたやありがたや。内容はスクリプトと Lua の入門編という性格が強く、個人的にはおさらい、という感じでした。
次は CRI 米国法人の方(日本人です)のセッションで CRIScript という、乱暴に言えばゲーム用 Java script をオープンで開発している方です。苦労話から構文解析までかなり濃いものでした。
これまたセッションされた方のブログは読んでたので CRIScript 自体は知ってたんですが Java script かぁ…という感じで若干スルー気味でした。
実装の解説を聞いての感想は、コルーチンとクロージャが未実装なのが(ToDo には入ってましたが)辛すぎるなと。
このふたつがあればゲーム場面の遷移なんかをかなり楽に書けるのですが、逆に無い場合、僕のスクリプト導入の主なモチベーションである「C++ 的に書くとダルい部分を補う」が失われてしまうのです。
ただ、これまでは会社の看板を掲げてるスクリプトが存在しなかった訳で、メーカー側としては導入の敷居が下がって良いんではないでしょうか。国内ではスクリプトというもの自体が胡散臭く見られかねないので、この点は以外に重要です。まだベータですしこれからの展開が楽しみです。
このあとパネルディスカッションがあったのですが、エントリーが長くなったので別途書いていきたいと思います。
最初のコマは Lua 解説本の著者の方で、ぶっちゃけこの方のブログは以前仕事で Lua を使っていたときに相当参考にしてたりします。ありがたやありがたや。内容はスクリプトと Lua の入門編という性格が強く、個人的にはおさらい、という感じでした。
次は CRI 米国法人の方(日本人です)のセッションで CRIScript という、乱暴に言えばゲーム用 Java script をオープンで開発している方です。苦労話から構文解析までかなり濃いものでした。
これまたセッションされた方のブログは読んでたので CRIScript 自体は知ってたんですが Java script かぁ…という感じで若干スルー気味でした。
実装の解説を聞いての感想は、コルーチンとクロージャが未実装なのが(ToDo には入ってましたが)辛すぎるなと。
このふたつがあればゲーム場面の遷移なんかをかなり楽に書けるのですが、逆に無い場合、僕のスクリプト導入の主なモチベーションである「C++ 的に書くとダルい部分を補う」が失われてしまうのです。
ただ、これまでは会社の看板を掲げてるスクリプトが存在しなかった訳で、メーカー側としては導入の敷居が下がって良いんではないでしょうか。国内ではスクリプトというもの自体が胡散臭く見られかねないので、この点は以外に重要です。まだベータですしこれからの展開が楽しみです。
このあとパネルディスカッションがあったのですが、エントリーが長くなったので別途書いていきたいと思います。
2008年12月23日火曜日
生身FPS
先週末にサバゲーしてきました。
人生初サバゲー。
平林にそれ専用の場所を提供してくれるお店があって、
貸し切りで夜中から明け方まで遊んでました。
お店は場所を貸して終わりって訳ではなくて、
「ロビーでは弾(玉?)を装てんしちゃイカん」とか
「ゲームスペースから完全に出るまで保護マスクを
絶対取っちゃダメ」とか、安全面に関してかなり神経質に
指導してました。
レンタルの拳銃でやってたんですが、こっちの弾は全然
当たらんくて、バシバシ撃たれました。
使ってよい銃の制限があり強すぎるのは持ち込み禁止なん
ですが(レンタル銃も当然制限内)、当たると服の上からでも
地味に痛え。
最初は徹夜とか無理だろと思ったんですが、実際やると
あっという間に時間が過ぎてしまいました。
いやー、楽しかった。
人生初サバゲー。
平林にそれ専用の場所を提供してくれるお店があって、
貸し切りで夜中から明け方まで遊んでました。
お店は場所を貸して終わりって訳ではなくて、
「ロビーでは弾(玉?)を装てんしちゃイカん」とか
「ゲームスペースから完全に出るまで保護マスクを
絶対取っちゃダメ」とか、安全面に関してかなり神経質に
指導してました。
レンタルの拳銃でやってたんですが、こっちの弾は全然
当たらんくて、バシバシ撃たれました。
使ってよい銃の制限があり強すぎるのは持ち込み禁止なん
ですが(レンタル銃も当然制限内)、当たると服の上からでも
地味に痛え。
最初は徹夜とか無理だろと思ったんですが、実際やると
あっという間に時間が過ぎてしまいました。
いやー、楽しかった。
2008年11月5日水曜日
久しぶりに運動しました
某社のフットサルクラブに参加してきました。
ジムもさっぱり行ってなかったし、そもそもボールを
蹴るなんて何年ぶり?みたいな感じです。
どうなることかとドキドキしましたが、まあそれなりに
動けたようなそうでないような…。
楽しかったので今度のためにちゃんとした靴を
買おうかなとか思っています。ちなみに今、ふとももが
パンパンに張って痛いです。
ジムもさっぱり行ってなかったし、そもそもボールを
蹴るなんて何年ぶり?みたいな感じです。
どうなることかとドキドキしましたが、まあそれなりに
動けたようなそうでないような…。
楽しかったので今度のためにちゃんとした靴を
買おうかなとか思っています。ちなみに今、ふとももが
パンパンに張って痛いです。
2008年7月5日土曜日
ブレイブルーのロケテを見た。
かなり前なのに今頃感想。
ギルティーにおいても感じたのだが、キャラが何をしているのか
よくわからない。今作ではそれよりも解像度・アニメーションの
枚数が増えているにもかかわらず。
少なくとも自分の動体視力では、絵が切り替わったなーという
くらいしか分からない。攻撃判定がどういう軌道で出現するか、
とか、体重が乗っているかどうか(→隙の大きい技か)が情報
として得られない。
でも、ゲームデザイン的にそんな細かいことどうでもいいという
スタンスかもしれない。もしくは直感で技の性能を感じるのでは
なくて、絵そのもの(≠ 挙動・モーション)と性能を結びつけて
暗記しましょう…ということかもしれない。
--------------------------------------------
あとひとつ、技コマンドにも気になる点がある。
あのゲームは [弱・中・強・特殊] というボタン配置になって
いる。そして必殺技は例えば [何かレバーコマンド+弱中強] に
よって、段階(より速いとか、遠くに届くとか)が変化するのを
直感的には期待するのだが、実際は [+弱のみ] [+中のみ] …
という感じにボタンが違うと何も技が出ないというのが多い。
そんなの覚えればよしというのは確かだが、まず基本となる
コマンドの法則みたいなものを覚えたら他のまだ知らない技の
出し方も大体想像がつくようにしておいた方が、導入としては
親切な気がする。
初めて格ゲーをやるようなひとにとっては、技が出ないとき
レバーコマンドが違ったのか、またはボタン違いなのかという
ふたつの失敗原因を探すのは大変だろう。
そういった点を踏まえると、このゲームは新規のプレイヤーや
他の格ゲータイトルからの乗り換えをあまり意識していないの
かもしれない。
ビジュアルのキャッチーさなどはかなりあるように思えるので
今回挙げたようなゲーム文法に反する点がすごく勿体無い。
ギルティーにおいても感じたのだが、キャラが何をしているのか
よくわからない。今作ではそれよりも解像度・アニメーションの
枚数が増えているにもかかわらず。
少なくとも自分の動体視力では、絵が切り替わったなーという
くらいしか分からない。攻撃判定がどういう軌道で出現するか、
とか、体重が乗っているかどうか(→隙の大きい技か)が情報
として得られない。
でも、ゲームデザイン的にそんな細かいことどうでもいいという
スタンスかもしれない。もしくは直感で技の性能を感じるのでは
なくて、絵そのもの(≠ 挙動・モーション)と性能を結びつけて
暗記しましょう…ということかもしれない。
--------------------------------------------
あとひとつ、技コマンドにも気になる点がある。
あのゲームは [弱・中・強・特殊] というボタン配置になって
いる。そして必殺技は例えば [何かレバーコマンド+弱中強] に
よって、段階(より速いとか、遠くに届くとか)が変化するのを
直感的には期待するのだが、実際は [+弱のみ] [+中のみ] …
という感じにボタンが違うと何も技が出ないというのが多い。
そんなの覚えればよしというのは確かだが、まず基本となる
コマンドの法則みたいなものを覚えたら他のまだ知らない技の
出し方も大体想像がつくようにしておいた方が、導入としては
親切な気がする。
初めて格ゲーをやるようなひとにとっては、技が出ないとき
レバーコマンドが違ったのか、またはボタン違いなのかという
ふたつの失敗原因を探すのは大変だろう。
そういった点を踏まえると、このゲームは新規のプレイヤーや
他の格ゲータイトルからの乗り換えをあまり意識していないの
かもしれない。
ビジュアルのキャッチーさなどはかなりあるように思えるので
今回挙げたようなゲーム文法に反する点がすごく勿体無い。
2008年6月26日木曜日
Battlefield Bad Company
フライングゲッツしました。
しかし、たしか Halo3 か何かで発売日前のゲーム起動を
察知すると Live! のアカウントがバンされたとか言う話を
どっかで見たことあるので遊ぶのは躊躇してしまう。
それにしても洋ゲーは戦争ものゲームばっかりですな。
あまりにも神経質に「暴力ゲームは諸悪の根源!」とばかり
言うのは思考停止だとは思いますが、ゲームという媒体を
考えるとき、もっと幅があってもいいと思うのです。
いやゲームプレイとしての FPS は大変楽しいのですが。
もっとジャンル判定不能なゲームがじゃんじゃん出ないと
尻すぼみになってしまいそうで恐怖を感じます。
* 判定不能っても「世界を救う RPG」とかじゃないよ
しかし、たしか Halo3 か何かで発売日前のゲーム起動を
察知すると Live! のアカウントがバンされたとか言う話を
どっかで見たことあるので遊ぶのは躊躇してしまう。
それにしても洋ゲーは戦争ものゲームばっかりですな。
あまりにも神経質に「暴力ゲームは諸悪の根源!」とばかり
言うのは思考停止だとは思いますが、ゲームという媒体を
考えるとき、もっと幅があってもいいと思うのです。
いやゲームプレイとしての FPS は大変楽しいのですが。
もっとジャンル判定不能なゲームがじゃんじゃん出ないと
尻すぼみになってしまいそうで恐怖を感じます。
* 判定不能っても「世界を救う RPG」とかじゃないよ
2008年6月7日土曜日
Gamefest 資料のメモ
DirectX SDK の新しいのが出ていたので落としに行ったら
Developer Center に Gamefest のプレゼン資料があったので
気になる部分をメモしておく。
気になるところを抜き出しただけ AND 誤りもあるかも…
なので直接資料を観るのがベター。
[ Sublime C++ For Games ]
-----------------------------------------------
o VC 2005 は可変長引数マクロが使用可 (知らんかった)
o RAIIを使え(例外を利用するかどうかによる)
* RAII = リソース獲得は初期化である [参考リンク]
o 例外の性能ペナルティーは 1-5%
o コンソールでは無効にすることを考える
o デバッグモードだけで利用することを考える
o unordered_set/map は set/map より早い
o 最悪のケースにおいてだけ遅い
o node-based なコンテナ(list,map,set,multi_xx)はやめよう
o unordered_xx の方がマシ
o 関数の引数に、コンテナでなくてイタレータをとる
o インデックスの代わりにイタレータ
o shared_ptr の利用を考える
o ポインタのエイリアシング
o "p" が "dst" を指すかも → ループ毎にリロード → :-(
o 仮想関数は便利だが、コストはかかる(360では特に)
o いかついコード内では使わない
o プラットフォームの区別に利用しない
o アロケーションはコスト高
o 経験則: ゲームループ内でアロケート禁止
o カスタムアロケータ導入を考えてみる
o ベクトルを struct vec { float x,y,z,w; }; ってするのはダメ
o ネイティブな型を使え
o Xbox 360 : __vector4 / XMVECTOR
o Windows : __m128 (D3DVECTOR をコアなコードに使うな)
Developer Center に Gamefest のプレゼン資料があったので
気になる部分をメモしておく。
気になるところを抜き出しただけ AND 誤りもあるかも…
なので直接資料を観るのがベター。
[ Sublime C++ For Games ]
-----------------------------------------------
o VC 2005 は可変長引数マクロが使用可 (知らんかった)
o RAIIを使え(例外を利用するかどうかによる)
* RAII = リソース獲得は初期化である [参考リンク]
o 例外の性能ペナルティーは 1-5%
o コンソールでは無効にすることを考える
o デバッグモードだけで利用することを考える
o unordered_set/map は set/map より早い
o 最悪のケースにおいてだけ遅い
o node-based なコンテナ(list,map,set,multi_xx)はやめよう
o unordered_xx の方がマシ
o 関数の引数に、コンテナでなくてイタレータをとる
o インデックスの代わりにイタレータ
o shared_ptr の利用を考える
o ポインタのエイリアシング
void Add( float* dst, const float* p ) for ( int i=0; i < n; ++i ) dst = *p + 1.0;o 上記のような関数はコンパイラの最適化を阻害する
o "p" が "dst" を指すかも → ループ毎にリロード → :-(
o 仮想関数は便利だが、コストはかかる(360では特に)
o いかついコード内では使わない
o プラットフォームの区別に利用しない
o アロケーションはコスト高
o 経験則: ゲームループ内でアロケート禁止
o カスタムアロケータ導入を考えてみる
o ベクトルを struct vec { float x,y,z,w; }; ってするのはダメ
o ネイティブな型を使え
o Xbox 360 : __vector4 / XMVECTOR
o Windows : __m128 (D3DVECTOR をコアなコードに使うな)
登録:
投稿 (Atom)