レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
おちゃめくらぶ掲示板
-
久々にポケコンコーナーを更新
久々にポケコンコーナーに新作を追加したにょ。
名付けて「1画面版 100m走」にょ。
http://ww5.tiki.ne.jp/~ochame/E500/SOFT/SHORTP.HTM#100
100m走の類はこちらの方で書いているように少なく見積もっても過去に数百作品作って
いるにょ。
http://ww5.tiki.ne.jp/~ochame/E500/POCKE1.HTM#100m
これはかつて電器店の店頭で自由にパソコンやポケコンがさわれる状態(プログラムが
組める状態)になっていてその全機種で100m走の類を作ってきたためにょ。
店頭のパソコン(ポケコン)に100m走っぽいBASICプログラムが打ち込んであったらそれは
ほぼ100%の確率で私の仕業といっても過言ではなかったにょ(笑)
それくらい100m走のゲームをたくさん作ってきたわけだけどそれは上記のリンク先にも書いて
いるように手軽に作れて作った本人も遊べるからにょ。
100走に続いてドットよけゲームも定番だったけどこちらは機種によってグラフィックの
仕様が異なるためグラフィックを使わずテキストだけでもできる100m走と異なり今までに
作ってきた数は1桁落ちるにょ。(それでも数10〜100以上)
PC-E500でも100m走のゲームは大量に作ってきたにょ。
雑誌に掲載された分だけでも3種類あるにょ。(2行プログラム、2人対戦プログラムと
固定画面で2人対戦ができるプログラム)
バージョン違いを含めるとE500用だけでも100m走のプログラムは数10作品は作っているにょ。
というわけで、今回はせっかくなので今までに作ったことのないレギュレーションに挑戦して
みたにょ。
それが1画面プログラムというわけにょ。
プチコンにおいては1画面プログラムは改行コード別で1行29文字(編集画面において行の
折り返しがないため30文字以上の行があると画面からはみ出てしまい1画面プログラムでは
無くなる)の24行分ということで最大で696文字となるにょ。
600文字以上詰め込んだら見た目でそこそこ詰まっている状態になるけど私の最高は
PETIT RUN mkIIの690文字(空き6文字)にょ。
プチコンの場合は折り返しがないため処理順序に依存がない場合は並べ替えて少しでも
行末の空きを減らすことが重要になってくるけどそれでも600文字以上描けるならば様々な
ジャンルのプログラムを作ることができるにょ。
これは私のプチコン1画面プログラムコーナーを見たら分かるのではないかと思われるにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/1page.htm
E500シリーズでは1画面は40文字x4行となっているけど行番号が1桁の場合でも各行の左端の
2文字が使えないため行番号と改行コードを除いて152文字が最大で使える量となるにょ。
これは1行プログラムの約3分の2のサイズにょ。
E500においては1行は行番号と改行コードを込みで最大で255文字かつ255バイトとなるにょ。
普通に考えたら255文字も255バイトも変わらないのだけどE500は命令は中間コードで表される
ため長い命令でも2バイトとなるにょ。
しかし、文字数で言えば命令+スペースが必要になるにょ。(命令の後には自動的に
スペースが追加されるけどこれを削除することはできない)
つまり、PAUSEという命令だと6文字分となるにょ。
あとE500シリーズは数値は桁数に関係なく8バイトとなるにょ。(単精度の場合)
A=A+1と書いた場合には12バイトになるにょ。
これはA=A+&1と16進数を使って書くことで見た目通りの6バイトになるにょ。(ゼロの場合は
「&0」としなくても「&」だけでいい。
というわけで、プチコンではたくさん作ってきた1画面プログラムに今回ポケコンで初挑戦
したわけだけど何とかぴったり152文字に収めることができたにょ。
特に目新しいテクニックは使ってないので見たら分かると思うにょ。
デフォのテキストキャラで作れば1画面に収めるのは容易(プチコンの1行プログラムよりも
使える文字数が多いため)だけどせっかくだから今回はGPRINTを使っているにょ。(GPRINTで
簡単にオリジナルのグラフィックキャラが表示できるのはシャープのポケコンの特権)
ただし、このせいで1画面に収めるのがかなり難しくなってしまったにょ(笑)
キャラを表示するには少なくとも横3ドット分は欲しいのでデータは6文字になるし、2ドット
単位で移動するならばそれを消去するため0が4文字必要になるからね。
どう考えても0を4つ並べるのは無理だったためゼロを2つにしたにょ。(キャラ移動は1ドット
単位にするという方法もあるけどその場合は100回程度のキー入力だと画面半分しか移動でき
ないため却下した)
残像の残り方が気にならないようなキャラ(残像ではなく漫符のようなものだと思える
ようなキャラ)にすればいいということで自己解決にょ。
1画面に収まったもののサイズが小さいということを考えればやむを得ないけどこれでは
すでに公開済みの2行版(ハイパー100m走3)の単なるデチューンでしかないにょ。
というわけで差別化を行うためゲームバランスを変えてみたにょ。
2行版は処理速度重視で連射速度でタイムが完全に反比例するようなゲームであるため少し
連射が遅い人ならば20秒とかのタイムになってしまっていたにょ。(実際は連射速度に
2倍の差があったらタイムは2倍以上の差になる)
これが男子100m走の一般的なタイムになるようなバランスにしてみたにょ。
といってもやっていることはすごく単純でタイム加算値を調整して連射速度に反比例しない
ようなタイムにしているだけにょ。(タイムはゼロからスタートではなく5から少しずつ
増えている)
これはタイムを常時表示している場合には使えないけどそうではないためこれで問題はない
ということにょ。(というか、プチコンと比べて100倍くらい遅いポケコンでタイムの常時
表示を行ったら20fps以上出すのはほぼ不可能になるため連射ゲームには不向きになる)
シャープのポケコンはリスト短縮という面ではやはりプチコンと比べたら向上率が小さい
感じにょ。
プチコンではリスト短縮テクニックを駆使したら3割程度はサイズが小さくなるけどポケコン
ではそこまで短縮するのは無理で、いかに内容の無駄を省くかが重要になるにょ。
しかし、高速化という面ではプチコン以上に工夫できる部分が多いにょ。
特にBASICオンリーの場合は私の経験から雑誌掲載レベルのプログラムでさえ3倍程度の
高速化が可能であるためいかに高速化の効果が大きいことが分かると思うにょ。
プチコンの場合はすでに60fpsで動作しているプログラムを仮に3倍にできてもその差を
体感することはできない(というかVSYNC 1を挟む時点で高速化の恩恵が全くなくなる)
けれどポケコンの場合は普通に作ったら凝ったことをしなくても2〜5fps程度になるため
そこから3倍の高速化効果は極めて大きいにょ。
というわけで、ポケコンでは高速化、プチコンではリスト短縮を主な活動内容にしてきた
感じにょ。(ポケコンでそこまで高速化が容易なのは技術力が高い人はほとんどマシン語で
作っていたため「BASICで高速化技術力のある人」が居なかったせいもある)
更新した内容についてはこんな感じだけどそれ以外にも最近はこの掲示板でもポケコン関係が
賑わっているということと先日エミュを久々に起動した(ずっと実機派であったためエミュは
ほとんど使用してこなかった)というわけでせっかく簡単にキャプが撮れるエミュなんだから
それを有効活用しようと思ったにょ。
そこで今まで無かった画面のキャプを公開しているすべてのプログラムにおいて用意する
ことにしたにょ。
表示するためにはエミュへと転送して動作確認をすることになるのでこの画面のキャプがある
プログラムはリストに誤りが無くなったにょ。(実際試してみるとリストが間違っている
ものがいくつもあった)
まぁ結果オーライにょ(笑)
|
|
|
掲示板管理者へ連絡
無料レンタル掲示板