【プチコンmkII】アフターバーナーっぽいものを作ってみた

TINY野郎さんがDSi以降用プログラミングツール「プチコンmkII」で セガの名ゲーム「アフターバーナー」っぽいものを作って公開。 技術的に触れてる所もあるので、読みやすいようにまとめておきます。 2012/11/08 00:00追記 続きを読む
アフターバーナー ゲーム プチコン 神々の戯れ レトロゲーム プログラミング技術 セガ
39
TINY野郎 @tiny_yarou
P6もプチコンもそうだけど、「これくらいまでなら作れるよね」っていう予想を超えるものが出来たときは、本当に気持ちいい。
TINY野郎 @tiny_yarou
ハードウェアの限界って、そう簡単に決めちゃいけないと思う。開発環境とか、技術の進歩とかで、限界だと思っていたところが、限界じゃなくなることだってあるわけで。
TINY野郎 @tiny_yarou
【プチコンmkII】アフターバーナーっぽいものを作ってみた (3:00) #sm19244046 http://t.co/IenNUSs5 プチコンmkIIは、まだまだ本気を出していないと思う。
拡大
TINY野郎 @tiny_yarou
元にしたのはMD版/タイトルで動く「II」の部分はスプライト64枚。拡大してるっぽく見えるのはパターンチェンジ/ゲーム中はプライオリティーの関係で0~31までの32枚のスプライトのみ使用。敵が弾を撃たないのはスプライトがないから。
TINY野郎 @tiny_yarou
ローリングはなんとLINE&PAINT!これぞローテク!でもプチコンは超高速なのでこんなことができるのでした。
TINY野郎 @tiny_yarou
【プチコンあふたばなメモ】空はGRP面のプライオリティをBG1(海)より手前に設定してLINE&PAINT。高速化のために水平のときはGFILL◆メインループは30fpsだけどSPOFS/SCALE/ANGなど描画のほとんどを2フレで自動補間しているので見た目は60fpsっぽく。
TINY野郎 @tiny_yarou
【プチコンあふたばなメモ】プチコンはスプライトの描画が増えるとGRP面(空)が消える仕様なので、敵機は64x32、32x16、16x8のデータを用意して距離によってリアルタイム切り替え。LODというか手動MIPMAPというか。あとアルゴリズム側で早めに画面外に逃げたりw
TINY野郎 @tiny_yarou
【プチコンあふたばなメモ】ミサイルの煙は実は動いていない。初期位置のまま、消えるまでのアニメーションを自動でさせているだけ。次から次へと連続して出すことで動いてる風に見せている。処理負荷的にも、最初にスプライトをセットするときにしかかからないので、あれだけ出しても軽い。
TINY野郎 @tiny_yarou
【プチコンあふたばなメモ】実はスピードを変えられる。動画1:55あたりで遅くしたり速くしたりしてる。地面しか変えていないので気づかない◆ステージ変更はパレットを変えてるだけ。ただし、海の面のみ波を出している◆敵は弾を撃たないので、絶対に自機は死なない。つまりゲームではない。おわり
TINY野郎 @tiny_yarou
スプライト管理ID:0~2…予備◆3~5…自機(32x32を3枚)◆6…バルカン◆7~10…ミサイル1の煙◆11…ミサイル1◆12~15…ミサイル2の煙◆16…ミサイル2◆17~20…ロックオンカーソル◆21~24…敵1~敵4◆26~31…波や木◆32…照準◆33…右上レーダー用
TINY野郎 @tiny_yarou
敵は4機までしか出ない。ミサイルは2発までしか出ない。ミサイルの煙は4枚をリングバッファ的に使いつつ縮小しながらダダダっと。だからプライオリティがおかしいはずだけどたぶん気づかない。あと、バルカンは1枚のスプライトをアニメーションさせてあたかも飛んでいくように見せてるだけ。
TINY野郎 @tiny_yarou
自機は32x32のスプライトを3枚横並びで使ってるけど、SPHOME 48,16とSPHOME 16,16とSPHOME-16,16ってやってるので、3枚とも全部同じ座標にSPOFSすればOK。SPANGLEやSPSCALEもきちんとやってくれるので初代プチコンより格段に楽。
TINY野郎 @tiny_yarou
空は懐かしのLINE&PAINT。プチコンは画面外の座標でも(ある程度)正しく計算してくれるようなので、シンプルに書けた。塗りつぶし中が見えてチラつくのは、描画ページと表示ページをダブルバッファ的に切り替えて隠した。サンプルつけてみたり。 http://t.co/bqu4x2NW
拡大

コメント

まかべひろし @sinpen 2012年11月1日
まったくこいつはいい化け物だぜ
Lindberg1999 @Lindberg1999 2012年11月1日
11月1日22時58分~23時10分までのスプライトに関するツイートを追加しました。
片手剣ケプ之助/,'3 `ァ @kazutscho 2012年11月2日
すっげぇぇぇぇぇぇぇぇぇぇ
Lindberg1999 @Lindberg1999 2012年11月2日
11月2日0時7分のツイートを追加しました。 #petitcom
Takayuki Akiyama @Tank_Tank_Tank_ 2012年11月6日
もはや売り物レベル!凄すぎる~
Lindberg1999 @Lindberg1999 2012年11月8日
紹介文でKotaku様に動画が紹介された事を追記しました。
ログインして広告を非表示にする
ログインして広告を非表示にする