Entries

ActionScript3でもたさられた10倍の処理速度をどこに使うか?補足

Adobe Maxの補足その3

というわけで、MAXにて会場マシンのプレイヤーバージョンの関係でお見せできなかったBulletMLのお話。

BulletMLというのは、シューティングゲーム個人製作者として有名なABA Gamesの長 健太さんが考案した、シューティングゲームの弾幕を、XMLで記述するためのフォーマットです。このBulletMLを使うと、シューティングゲームのボスキャラ等の弾幕をプログラムコードなしで記述できるというもの。

注:これらのサンプルはAdobe Labで公開されているFlashPlayer 9.0.60のベータ以降が必要です

弾幕1 XML
弾幕2 XML
弾幕3 XML


基本、BulletMLのパース解析エンジンさえあれば、↑のような弾幕をXMLだけで作成することができるわけです(サンプルではABA氏本人が公開していたAS3用エンジンの実装サンプルをカスタマイズして使用)。BulletMLを使えば、こういった弾幕が5分~15分とかでサクサクっと書けちゃったりするわけです。BulletMLは書いててメッチャおもしろいです。

でMAXで語ってた、AS3の高速な処理速度をリソースとしてどこに使うか?って話に戻ります。

エフェクト勝負になった場合、所詮FlashでPS3やX箱360に勝てるわけがないわけです。たとえコードの最適化や複雑な物理演算を行って超リッチなエフェクトを作っても、そんなものはPS4がでればさらに彼方の話だし、中途半端な実装なんて、半年・1年後にマシンパワーが上がっただけで過去の産物になっちゃうんじゃないかと。

そういうソースをジャバジャバかけた料理のようなモノはFlashで追求しても楽しくないなぁと。

だったらBulletMLのようなモノをパーティクルエンジンとして導入して、10分や15分でサクサクと色々なパーティクルの動きをスタディイするとか、そういう製作のスタディ面の強化に速度リソース(この場合リアルタイムのXMLパース)をつぎ込むってのも面白いのではないかと。

このアプローチではエフェクトから速度やマシンパワー的な凄さは失われるわけですが、その分動きの作りこみであったり、可能性の模索、スタディの深さといった部分が強化されるわけです。

「人の行く 裏に道あり 花の山」という格言のとおり、他人がやらないアプローチを低リスクで気軽に実行できる環境というのはブルーオーシャン(流行語)への近道だと思います。

「エフェクトをコーディングしなければいけない」という制限が「こういう動きはコード的に手間がかかるので無理」といった形で作り手の表現の幅を規定するならば、マシンリソースを単なる派手さの為でなく制限の破壊の為につぎ込むというのは、昨今の大艦巨砲主義へのアンチテーゼとしては面白いんじゃないかなと思うのです。

ここら辺はまだ自分でも答えがでてないのですが、最近はそんなことを思ってます。