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

おちゃめくらぶ掲示板

993御茶目菜子:2012/05/01(火) 20:47:06
疑似乱数を生かしたゲームは難しいにょ
先日書いた疑似乱数ルーチンを使った1画面ゲームを試しに作ってみたにょ。
といっても、まだ1画面化ができてないので「1画面ゲーム候補」と言った表現が正しいかも
しれないけどね。

タイトル名無し(開発コードA35)←mkIIを買ってから35番目のプログラムという意味
http://ww5.tiki.ne.jp/~ochame/petitcom/qr/a35.png

十字ボタンで左右移動、[A]ボタンでジャンプというオーソドックスなジャンプアクション
ゲームとなっているにょ。
穴に落ちたり障害物に当たらないようにしてひたすら先に進むというゲームだけどジャンプ中
でも左右移動できるためかなりトリッキーなジャンプができるし、当たり判定は中央部分
のみなのでかなり強引に障害物を避けることが可能にょ。

1/2画面に収めるために限界までシンプル化した「CAVE」ほどではないけど極力シンプルに
してみたにょ。
私は1画面ゲームを作る際にはとりあえず普通に遊べる状態のものを作ってから1画面化に
とりかかるのだけどそれは特に制限なく普通に作るだけの方が圧倒的に簡単だからにょ。
この「A35」はゲーム自体は1画面(にする予定)としてはそれなりに遊べるレベルだけど
プレイすればするほど問題点が出てきたにょ。
それは疑似乱数を使う意味があまりないということにょ。

プチコンのRND関数はシードを与えることができず再現性がないため疑似乱数ルーチンは
非常に有用になってくるにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/rnd.htm
疑似乱数を使うのは再現性があるということは何度も同じことができるということにょ。
今回はステージデータ生成に疑似乱数を使っているため何度プレイしても同じステージが
できるにょ。
これはステージデータを事前に用意しておけば良いだけのことだけど30fpsで動作している
このゲームの場合には(データ圧縮を行った状態でも)1分当たり1800バイトのデータ量に
なってしまうにょ。
それが、疑似乱数を使えば乱数からステージデータを生成する部分さえあればいいので
大幅なリスト短縮が可能にょ。

しかし、このゲームのようなエンドレス(といってもループ回数を設定している以上は
エンドレスではないのだけど)の場合は再現性のある疑似乱数がネックとなるにょ。
確かにちゃんと計算式が分かっている疑似乱数を使えば他の機種(言語)に移植する際にも
まったく同様の動作が可能になるというメリットはあるものの毎回同じステージデータでは
プレイにすぐに飽きが出てしまうにょ。
したがって、ステージクリア制にしないとそのメリットはあまりないにょ。

あと再現性があるということは攻略法が生まれるということに繋がるにょ。
そのためにはステージを覚えてもらう必要があるためこのゲームでは障害物以外にも背景
(山らしきもの)を描いて覚えやすくしているにょ。
しかし、乱数による自動生成の場合はどうしても攻略性の薄いステージになりがちにょ。
実際このゲームもステージを覚えて攻略ではなくいかに障害物を穴を見てそれを元にプレイ
することが多くなってしまっているにょ。
初見ではクリア不能にみえても攻略方法が分かればクリアできるという難易度のステージを
自動生成するのは至難の業にょ。(乱数の初期値を変えながら何度も試していけばいいけど
エンドレスのゲームではそれも難しい)
このゲームの場合はジャンプはただの放物運動ではなく不規則な軌道を得ることが可能で
あるためあらゆるパターンを検証していたらとてもプチコンではリアルタイム処理は
不可能になってしまうからね。

それと自動生成のゲームの場合はクリア不能なステージができてしまう場合があるという
ことにょ。
このゲームもエンドレスにしているため徐々に穴の間隔が広くなっておりそのうちクリア
不能の状態になってしまうにょ。
ジャンプ可能な幅よりも狭い間隔であってもそのジャンプの軌道上に障害物があったらどう
しようもないにょ。
それを自動的に起きないようにするのは自動生成よりも遙かに難しいし、このプログラム
サイズでは実現が不可能にょ。

というわけで、ゲームとしてはそれなりに遊べるものの疑似乱数をあえて使う意味がない
ために一端没にして次のゲームを作ることにしたにょ。
ぶっちゃけ、新しいネタを思いついたのでこのゲームの1画面化を行う時間があったら
そっちの方の時間に費やしたいというだけのことなんだけどね。
今度はステージクリア制の縦スクロールゲームにょ。
作るのはすぐにできそうだけど果たして1画面化はできるのか・・・?
うまく完成すれば次の講座のネタはこれにするにょ。


さて、明日いよいよプチコンmkIIが最初のバージョンアップを行うみたいにょ。
http://smileboom.com/special/ptcm2/html_bug.php
バグ修正がメインだけどQRコード読み取り時にハードウェアボタンに対応したのはうれしい
限りにょ。
これで片手でマウス、片手でボタンを押すことができ1枚ごとに手を持ち替えて読み取らせる
必要がなくなったにょ。




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