したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

おちゃめくらぶ掲示板

943御茶目菜子:2012/04/07(土) 15:29:42
私のゲーム作りの集大成
先日液晶破損をしてしまった私のポケコン(PC-E650)だけどまだ無事だった頃に撮影して
未発表の動画があったので公開してみるにょ。
http://www.youtube.com/watch?v=qGXir_CI6B0

このゲームは「ピーチバレー2」にょ。
15年前にべーマガに投稿した作品のバージョンアップ版にょ。
このゲームのウリはOPASを使い(ポケコンBASICのゲームとしては)それなりに高速と
いうのと2人対戦・コンピュータ対戦が選べるということにょ。
詳しいゲームの内容、このゲームに使っている技術解説、このゲームの攻略法などは
すでに途中まで作っていたのでそれを参照して欲しいにょ。
http://ww5.tiki.ne.jp/~ochame/test/peach.txt
ここまで作って1年以上放置していたのはプログラムリストを転記する必要があるからにょ。
ポケコンの周辺機器(?)になっていたPC-98を使えるように整備しなおせばそんな
必要はないけどHDD故障で放置状態になっている(交換用のHDDは部屋のどこかにあるはず)
ということでリストはPCで手打ちしないといけないので億劫になっていたためにょ。

OPASとは何かというとポケコンユーザーとしておちゃめくらぶに来ている人ならば
知っている人が大半だと思うけど最近は(ポケコンは使用経験がなく)プチコンユーザー
として来ている人の割合の方が多いと思われるので詳しくはこちらの解説を読んで
もらえたらいいと思うにょ。
http://ww5.tiki.ne.jp/~ochame/E500/TECH/opas_1.htm
これは私が考案したポケコン(PC-E500シリーズ)でグラフィックを高速に表示するための
システムにょ。(もちろんOPASそのものもBASICで動作している)
プチコンで言えばBG画面に相当するものといえば分かりやすいかもしれないにょ。(動作の
仕組みからいえばPCG機能をBG画面風に使えるといった方がいいのだけど)
機能面では横スクロールのみのサポートということでBG画面よりは劣るけどその代わり
非常に高い柔軟性を持っているにょ。

OPASはPRINTで制御可能なのでBG画面のように矩形領域に止まらず画面の好きな場所に
対して有効になるにょ。
ポケコンの仕様上の上限では4つの領域を表示できる(BG画面4面分に相当)ために
多重スクロールのゲームがBASICで簡単にできてしまうというメリットを持つにょ。
ただし1つの領域は64キャラ分となるため広い領域を表示する場合には複数の領域を使用
する必要があるにょ。
またプチコンのBG画面は1つあたり64x64キャラ分という制限があるけどOPASはポケコンの
メモリの範囲だと自由に選べるため(メモリさえ十分にあれば)広大なマップ表示も
可能になっているし、それらを順番に表示していけば全画面を使ったアニメーション
表示も可能になっているにょ。
ただし、プチコンのBGPUTのようにリアルタイムでデータそのものを書き換えるのは
速度面の問題で難しいため必要なデータをすべてメモリ上に展開しておかなくては
ならないため(プチコンに例えるならばGRPをBG風に使えるようにしているだけなので)
そんな広大なデータたとメモリをバカ食いするにょ。

OPASはスクロールやデカキャラを表示するといった用途にかなり有効活用できるにょ。
http://www.youtube.com/watch?v=TNTkpnJbVn0
そのためこのピーチバレーのように小さいキャラを多数動かすという用途にはあまり向いて
いるものではないにょ。(背景としてコートを常時表示することでボールが通過した後も
コートやネットが消えることがないというメリットがあるのでそれを防ぐためには
再描画が必要になるGPRINTと比べると圧倒的に有利にはなるけど)
とはいえ、PC-E500シリーズ標準のグラフィック命令であるGPRINTはお世辞にも速いとは
言い難い(何せ8x8ドットの1キャラを4方向に動かすだけで10fps程度の速度しか出ない)
ということで明らかにOPASが実力を発揮できないこのゲームにおいてもGPRINT比で
5倍の表示速度を得ることができているにょ。
表示だけ速くなっても後の処理がボトルネックになっていては意味がないためそれらも
高速化することで普通に作れば2fpsしか出ないようなこのゲームは最大8fpsもの高速(?)
動作が可能になっているにょ。
まぁこれはコンピュータの思考ルーチンのない2人対戦時のものなので上記の動画の
ようにコンピュータ対戦時は6fps程度まで落ちてしまうため少々重いけどそれでも
GPRINTで作ったら2fps程度になり、実用レベルには全く達しないためそれと比べたら
格段に快適にょ。

冒頭にも書いているようにこのゲームは15年前にべーマガに掲載された同名のゲームの
バージョンアップ版となっているにょ。
Dr.Dにも絶賛されたこのゲームだけどべーマガに投稿した初期バージョンはプレイ
するためのハードルがかなり高かったにょ。
というのもこのゲームはブロック崩しのパドルのようにボールをレシーブする場所で
ボールのレシーブ角度が決まるためかなり難易度が高いにょ。(とはいえ、それでは
ゲームとして成立させるのが難しいためボールの飛距離を「近く」「遠く」「中くらい」
というのをレシーブやスパイクをするときに方向ボタンとの同時押しで選べるように
なっている)
ブロック崩しの場合はパドルとのあたり判定は常に有効だけどこのゲームの場合は
レシーブボタンを押した瞬間のみ有効になっているにょ。
こうすることであたり判定を大幅に減らせるため高速化には非常に有用だけど難易度を
跳ね上げている原因にもなっていたにょ。
何せ標準では落下の予測地点が一瞬表示されているだけであってプレイヤーはそれ
だけを頼りにレシーブしたりスパイクしたりしなくてはならなかったにょ。

したがって、「2」では「1」からあったコンピュータの強さ(5段階)以外にもプレイ
補助機能を選択できるようにしてプレイのためのハードルを下げたにょ。
プレイヤーとボールの当たり判定を常時行うことでレシーブ難易度を下げたりといった
ありがちなものなのだけどそれによる難易度の変化などがあるためプレイモードを
ビギナーモード、アマチュアモード、プロモードに分けたにょ。
「1」ではゲームクリア後に選べた「プロモード」だけど落下予測地点も無いため目算で
プレイしなくてはならず縦方向に画面が小さいポケコンでは高いボールは完全に見失う
ために難易度が劇的に高くなってしまったにょ。
しかし、「2」では一般的な球技ゲームにあるような現在座標を示したもの(要するに
ボールの陰)を表示しているためプロモードでもそれなりにプレイできるようになって
いるにょ。(表示オブジェクトが増えれば速度低下を招いてしまうけど上記動画では
ビギナーモードということでフルオプション時の動きや実行速度はこれで分かると思う)
プレイのハードルが下げられたためクイックプレイ(上記動画の3分30秒くらい)の
ようなものもそれなりに簡単に出せるようになったにょ。

あと「2」ではコンピュータの思考ルーチンにも手が加えられてより強くより人間らしく
なっていると思われるにょ。
べーマガでおなじみの「砦の攻防」のようなゲームの場合はコンピュータに厳密な計算を
やらせてしまえばミスをしなくなるため人間は絶対に勝てなくなってしまうにょ。
そのためにコンピュータはいかにして手を抜くかが必要になってくるにょ。
乱数の影響を大きくしてしまえばわざとミスをしているように見えてしまうため
「頑張っているけどミスをしている感」を出すためにピーチバレーでは厳密な計算は
一切しておらず、プレイヤーも得られるような情報を元に思考しているにょ。
これはピーチバレーの場合はフレームごとの動きが大きいため厳密な計算を行うためには
かなりの補正が必要になるため処理が重くなってしまうというのが本当の要因では
あるけどね。
それとOMPによる音階演奏なども加わっているにょ。

ポケコンだとOPASを駆使しても最高8fpsの速度だけどプチコンだったら容易に60fpsの
速度が出せそうにょ。
表示オブジェクトはプレイヤー2人×2、ボールとその陰の6つだし、それにプレイヤーの
陰を表示してもキャラ数は10だからね。
プチコンmkではのスプライトは1フレームで50個くらい動かせていたけどmkIIでは70個
くらい動かせるようになったからね。(1キャラでさえ10fpsで動かすのがやっとである
ポケコンと比べると標準グラフィックキャラ表示速度は400倍くらいの差があるため
ポケコンで8fpsを出すというのはプチコンで3200fpsを出すくらいの難しさといえる)
ただ、ポケコンの画面サイズだからこの程度でも問題ないけどプチコンだと画面が
スカスカになるため画面レイアウトや演出も変える必要があるかもしれないけどね。
1画面ゲームならばその妥協が許されると思うけどこのゲームを1画面で作ることは
無理にょ。
まぁ「シュプール」を「プチコンスキー」として、「3D DRIVING」を「PETIT RUN」
として基本的な考え方のみ使って別物のゲームとして作れば十分可能だけどこの
「ピーチバレー」を簡素化するとただの2人対戦のテニスゲーム(地面についたら負けに
なるので羽根突きのようなゲーム)になってしまうにょ(笑)

というわけで、私が最後に発表したポケコンゲームが3月14日の「ホワイトデーゲーム」
ではあまりに嫌すぎるためこの「ピーチバレー2」を最後に発表したポケコンゲームと
しておいて欲しいにょ(誰に向けて言ってるのやら・・・)
まぁポケコンが壊れてしまったから即終了というわけではなくポケコンを再入手したら
また復活できる可能性もあるけど生憎PC-E500シリーズの最終モデルとなったPC-E650も
すでに生産終了して時間が経つだけにどんどん入手が難しくなっているためいつ復帰
できるか分からないからね。
それに唯一新品でも入手可能なPC-G850VSはPC-E650よりは高速とはいえそれをPC-E500
シリーズで蓄積された知識のほとんどが生かせないのが厄介にょ。
G800シリーズで使える知識もあるけど私の場合はE500シリーズに特化したものばかりを
使用しているからね。

特定機種のみに通用する専用テクニックは100%の性能を使い切るには当然のことにょ。
BASICレベルであっても100%の性能を使い切るというのはかなり大変であることは私が
長年1機種(PC-E500シリーズ)を使い続けることで身をもって体験したからね。
たからこそ、雑誌掲載のレベルのゲームでも3倍とか5倍の高速化というものが可能に
なっているにょ。
私がプチコンにおいてはどの程度使いこなしているかはまだ不明(未だに使ったことの
ない命令さえある)だけど1つだけ言えるのは潜在能力の上限までは全く使ってない
ということだけは確かにょ。
上限にかなり近いくらい使いこなしている人ならば何人もいるにょ。
ただし、それらの人も100%使いこなすというのは無理だと思うにょ。(ここで言う
100%というのはプログラムリストを見ただけでこの実行には何フレームかかるというのを
把握しているようなレベル)

私はプチコンはマイペースでプログラムを作っていこうと思うにょ。
もはや、若い頃のように上限まで使いこなしてやろうという気力はないからね。
1画面プログラムを作って「1バイト縮まった」とかいう些細な喜びで十分にょ。
昔はポケコンでも大作主義でメモリがあればあるだけ使っていた(PC-E500にドラクエ
移植をしていたけどメモリ不足で途中で断念したこともあった)けど雑誌投稿を
始めた90年代からはいかにリストパフォーマンスを向上させるかに焦点を絞って
いったからね。
ポケコンBASICで作られたアクション系のゲームの場合は実行速度がおもしろさを左右
することも多いため速度重視でなおかつリスト短縮にも拘ってきたにょ。
その点、プチコンはよほど凝った処理をしない限りは速度面が問題になることはポケコン
と比べると非常に少ないためリスト短縮のみに焦点を絞ったプログラミングができるにょ。
そういう意味ではやはり私にとっては1画面ゲームが最適っぽいにょ(笑)




掲示板管理者へ連絡 無料レンタル掲示板