CASIO pocket computer
PB-100の宇宙

タイニーRPG最終進化!!
トロネコの大冒険4
by PBロッキー

トロネコの大冒険 4 | CASIO PB-100
滝本飛沫、メビウス、たかじょゆうき。が挑んだタイニーRPGの最終進化!?

「桃色の吐息」の伝説

鬱蒼とした密林の奥深く、伝説の秘宝「桃色の吐息」の眠る洞窟はあるという.

邪教徒達がつくりあげた数々の罠を乗り越え、最深部の「白亜の扉」の前に立つ冒険家トロネコ.目指す宝はもうすぐそこ、 トロネコは長い道のりの末手に入れた「3つのオーブ」を取りだした.その時...!


気付くとトロネコは妖精の隠れ家で介抱を受けていた.

そうだ!扉を開けようとしたトロネコは、洞窟に巣くうモンスター達に襲われ意識を失ったのであった.オーブはモンスター達によって持ち去られていた.

「危なくなったらいつでも帰って来て」という妖精をあとに、再び出発するトロネコ.

その胸中にあるのは神秘への憧れか?富への野心か?

冒険のダイジェスト

12桁液晶の向こうで繰り広げられるめくるめく大冒険!

迷宮の奥でトロネコを待ち受けるものとは!?

RUN DEG
0 > ' ( 2 8

スタート地点、妖精さん'の隠れ家.HPが最大値まで回復する.

RUN DEG
0 > ( 2 8

46で左右を向き、5で前進だ.

RUN DEG
0 s 2 8

ガラガラ蛇sが現れた!!EXEで戦闘開始!

RUN DEG
2 1 8 3 0

戦闘はオートで行われる.危なくなったら0を押し続けよう.でも、すぐに逃げられるとは限らないぞ.

RUN STOP DEG
1 7 - 2

やった!!ひとつ目のオーブを取り返したぞ!!

RUN DEG
1 ) ( 3 6

白亜の扉.3つのオーブを揃えると宝物庫への道が開く.

RUN DEG
1 > ' ( 4 0

たくましくなったトロネコ.冒険はまだまだ続く.

冒険の心得

探検開始!

初めて遊ぶ

1. 変数リセットVACEXE
2. 初期設定完了!SHIFT1
3. ゲーム開始SHIFT0

ゲームの中断

中断はいつでもできますが、移動シーンでするのがフェアです. 中断後は変数の内容を誤って破壊しないように注意しましょう.

ゲームの再開

shift0でゲーム再開です.再開はゲームを中断した場合の他、戦いに敗れた場合にも行います.

移動シーン

ワンポイント

括弧のキャラクタ) は半円をイメージ (半円の閉じ括弧の画像) しないで、 右に90°傾けた台形のような形をイメージ (右に90°傾けた台形のような閉じ括弧の画像) をします.

キー操作

左右を向く4 6
前進5

戦闘シーン

敵に遭遇するとstopがかかり、EXEで戦闘開始です.攻撃は自動で行われます. 0で逃げますが、いつも成功するとは限りません.逃げ切れるまで押し続けましょう.

敵のHPを0以下にすると勝利です. トロネコは少し強くなり、HPの上限が上がることもあります.まれにオーブが手に入ることがあり、その時は画面に が表示されます.

戦いに敗れた場合、shift 0で妖精の隠れ家からの再開です.手に入れたオーブは再びモンスターに持ち去られます.

オールキャスト

親切な妖精さん'隠れ家でトロネコの無事を祈っている.不思議な力でHPを全快してくれる.
3つ揃いのオーブ全て揃えると白亜の扉を開ける鍵となる.
白亜の扉扉を抜けることができれば、目指す秘宝はすぐそこだ!
桃色の吐息怪しく輝く桃色のダイア.手にした者は至福のため息が止まらないという...
ガラガラ蛇sHP:30 獰猛な毒蛇.
大さそりyHP:35 硬い甲羅をもつ毒さそり.
コボルトπHP:40 残忍な亜人.
ガイコツΩHP:45 呪いによって彷徨うかつての冒険者.
アナコンダSHP:50 コボルトをひと飲みにする巨大な蛇.
トロール&HP:55 迷宮をのし歩く大鬼.
エスカルゴン@秘宝への道を阻む最大の試練.数百年の時を生き魔力を得た巨大カタツムリ.
邪神像¥裏面のみに現れる最強のモンスター.邪教の秘術で命を得たという石像.

攻略法

現れるモンスターは、スタート地点の妖精の隠れ家を離れるほど強くなります.

最初はあまり遠出をしないでレベルをあげましょう.マップの辺りでは強力なモンスターに遭遇することはないでしょう.

スタート地点から(上)を向いたとき、右上の方向に「白亜の扉」があります.左下にはオーブを奪った強力なモンスター達が棲息します.

さらにこのゲームには、裏面が存在します(Tiny RPG初!).エンディングを迎えたのち再開すると、新たな洞窟と強力なボスキャラがあなたを待っています!!

スタート地点周辺のマップ

Sマークはスタート地点、妖精さんの隠れ家. トロネコの大冒険4スタート地点周辺の地図

プログラムリスト

P0
    1 E=B:F=G*90:H=SIN F-COS F*9:I=SIN F*9+COS F:FOR J=0 TO 2:K=J*6-1
    2 FOR L=1 TO 2:IF FRAC (1ₑ3*SQR (E+H*L<.5;K=K+L:L(J*ABS O)=2
    3 NEXT L:E=B-H+I:I=-I:O(J)=K:NEXT J:PRINT
    4 PRINT A;MID(P,1);MID(10-O,1);MID(Q,1);MID(G+1,1);R;CSR 3;
    5 IF B≦13+D*43;C=362:D=7:PRINT "♥( Fin":GOTO #1
    6 IF B+H=51+D*46;PRINT "□";:IF A=3;O=4:PRINT CSR 3;" ";
    7 W=X+7:IF B=C+99;R=INT W*4:PRINT "'";
    8 IF RAN#<.1 THEN 13
    9 IF KEY="4";G=G-3+4*SGN (3-G:GOTO 1
   10 IF KEY="6";G=G+3-4*SGN G:GOTO 1
   11 IF KEY≠"5" THEN 9
   12 B=B+H*SQR ABS O:IF O≠4 THEN 1
   13 V=O+7+INT ABS (COS B*4:S=V*5:PRINT CSR 3;MID(V+9,1)
   14 R(J)=R(J)-INT (RAN#*V(J):PRINT :PRINT R;S;:IF R<1 THEN #1
   15 J=RAN#↑RAN#↑RAN#+FRAC π:IF KEY="0";IF J≧1 THEN 1
   16 IF S>0 THEN 14
   17 IF V(J)=A+9;A=A+1:PRINT "♦"
   18 X=X+SQR V/W:GOTO 1
P1
    1 A=0:B=C+99:$="↑←↓→ )○>・○ (○<syπΩS& @¥"

移動画面がもたつきますがバグではありません.なるべく高速な機種、PB-100等の(いわゆる)Ver.1 BASIC機でのプレイを推奨します.

PB-100 の初期出荷バージョンの一部で正しく動作しないケースがあります.その際はPB-100初期出荷バージョンの異常動作についてを参照してリストを変更してください.

技術情報

変数表

Aオーブ
B座標
C,D裏面用
E座標計算用
F向き計算用
G向き
H
I
JFOR~NEXT、攻撃側+ウェイト
K視界計算用
LFOR~NEXT
O視界前・前進処理用
P,Q視界左、右
RトロネコのHP
S敵のHP
V敵の種類(強さ)
Wトロネコの強さ
Xトロネコの経験値
M,N,U未使用(破壊)
T,Y,Z未使用

行番号マップ

1視界計算準備
2~3視界計算
3~4迷宮移動画面表示
5エンディング
6白亜の扉
7妖精さんによるHP回復他
8敵の出現
9左を向く
10右を向く
11~12前進
12扉通過チェック
13敵設定、敵キャラクタ表示
14ダメージ、戦闘画面、ゲームオーバー
15攻撃側決定+ウェイト、逃げる判定
16勝利判定
17オーブ入手
18経験値獲得
P1-1初期設定他

今作で解説すべきは1~3行の視界計算だけでしょう.

迷路データは数式から

まず、壁や通路の情報の入った迷路データの見当たらないないことに驚かれることでしょう.実は数式から迷路をつくっているのです. これは昔の雑誌の PB-100 用投稿ゲームでは、よく見かけたテクニックです.

IF FRAC (1ₑ3*SQR (E+H*L<.5;K=K+L:L(J*ABS O)=2

2行目の FRAC(1000 × √座標) が0.5より小さければその座標は壁、0.5以上なら通路となっています.

しかしそれだけで、迷路の形が決まるのではありません. 座標(B)は、X 方向に1歩進む時は+1または-1、そして Y 方向には+9または-9しています.この Y 方向の値が変わることでも迷路の形が変わります.

1つの変数で2つのデータを扱う

X・Y 座標の2つの値を1つの変数で扱うのは、これもよく見かけたテクニックです.

その理由はマップは2次元ですがメモリの都合から1次元的にデータ化することが多く、それとの相性を考えてのことでしょう. 30文字まで入る $ はしばしば迷路データの格納に使われました.16進数を応用してデータを処理し、1フロアにつき最大 6×5 マスの迷路を PB-100 の中に出現させたのです.

本作では省メモリ以上に、広大で不定形な迷路をつくるのに一役かっているのですが、簡潔に説明するうまい言葉が見つかりません…

3歩進んで2歩下がる

F=G*90:H=SIN F-COS F*9:I=SIN F*9+COS F

1行目で求めている前(H)と左(I)のとる値は、 それぞれ -9,1,9,-1(H)、1,9,-1,-9(I)となります.

これは、トロネコの向き(F)から求めた前方と左方の値になります.(なんかこの辺り、うまい表現じゃありませんね...) 例えば、現在位置(B)に対して左斜め前の座標は B+H+I に、右隣は B-I に、 2マス前は B+2*H になります.

これだけわかれば2~3行や6行、12行の解析は容易でしょう.ちなみに前進は B=B+H でできますね.

コラム
ひとつの命令に複数の意味を込める

J=RAN#^RAN#^RAN#+FRAC π

ここでは、15行目の J=RAN#↑RAN#↑RAN#+FRAC π について解説します. この命令では、戦闘中の表示用ウェイトと敵もしくは自分の攻守の決定をしています.

まずウェイトについては、π↑π↑π を実行すると0.5秒程度のウェイトになることは、ポケコンジャーナル誌上でも紹介されています. BASIC でウェイトといえば FORNEXT が真っ先にあがりますが、こういった負荷の高い計算が有効なウェイトになる場合があります.

今作ではこの πRAN# に置き換えることで、さらに攻守を決する乱数の働きをさせています.


R(J)=R(J)-INT(RAN#*V(J))

ここで14行目のダメージ処理の R(J)=R(J)-INT(RAN#*V(J)) の変数をずらせば FRAC を外せるんじゃあ、と思われた方はさすが!であります. しかし今作では他の処理との絡みで FRAC を外せないわけがあります.

敵に遭遇し戦闘ルーチンに突入するとすぐに R(J)=R(J)-INT (RAN#*V(J)) が実行されます. このときに J の値が敵のターン(0≦J<1)または自分のターン(1≦J<2)のどちらでもないことを示す値(2≦J)でないと、どちらかが不当にダメージを負うことになってしまいます.

しかし :J=2 などとしていては 4steps を消費してしまいそれは可能な限り避けたいところです.

敵の出現時 HP をばらつかせるために、敵がダメージを負うぶんにはアリか?とも考えましたが、トロネコの攻撃力が上がるとどうしようもなくなる、と断念しました.

そこで今作では、移動画面表示時点で必ず一定の値をとる視界計算用のループの FOR J=0 TO 2NEXT J を利用することにしました. 視界表示の終了時点では常に J は3になっているので、これを戦闘開始前のターン用変数の初期化と兼ねることができるのです. 戦闘が連続で発生することが無く必ず一度は視界表示を挟むのも、このようなことができた一因です.

~ということで、J は3で戦闘ルーチンに入ってくるので、14行目の FRAC を外すと具合が悪いことはお分かりいただけるでしょう.

敵のターン(3≦J<4)・自分のターン(4≦J<5)になってしまい戦闘突入の度に敵が攻撃してきます.


以上の例のように PB-100 作品では、リストの各部が入り組んだモザイクのように影響しあうことがしばしばです. PB-100 プログラミングがパズルのような魅力を持つと言われる所以でもあります.

ひとつの作品が誕生する過程では推敲を重ねる毎にダイナミックに各命令の位置と意図が変化していきます. その様はまるでソレ本来の姿に辿り着くべく胎動しているようでもあり、プログラマーはもはやそのエネルギーに惹きずられるに任せるほかないのです.

もはや末期です、ハイ.

12桁の向こうに遥かな宇宙はひろがっている!?

反省会~

いや~、思ったより詰め込めませんでした!最終進化なんて書いてるわりに、そこそこの内容になってしまいました...(その割に裏面なんて変な機能を付けたりしてママナラナイものです.)

実は今回の擬似3D表示の原型も5年前に完成していたのです.さらには大型RPGの構想があったのですが、何度かの挫折を経て今回このような形の発表になりました.

私の作品は今のところ全てこのパターンですが、その中では割合に安産な作品だったように思います.

というのも、ほぼ完成していた移動部分と最小限の戦闘部分を入力し、残りstepからストーリーと入れるイベントを決めるという消極的な姿勢が功を奏したのです!

なんとなくフラクタル

そもそも PB-100 に迷路の 3D 表示をさせようと思ったきっかけは、滝本飛沫氏の『ポケコン使い』に紹介されていた迷路ゲームでした.触発されてすぐにバージョンアップ版をつくったのを憶えています.

それからはダンジョンデータを数式からつくりリストを圧縮する研究、中でも一方通行によって閉じ込められてしまうのを解消する研究に没頭しました.

結局はダンジョンの構造を今作のようにするとその問題は初めから無く、さらにダンジョンの端っこを壁にするルーチンが不要!

その上そこそこ矛盾無く2マス先まで表示できることが分かったのでした.(ふぅーっ!)

それからも父の PC-9801UV の大画面を使いフラクタルな画像を表示させては、迷路に使えそうなパターンを探して、というようなことをしておりました.

マニアック↑9な話題、失礼しました.『ZOX4』あたりを解析した人にしか分からない話です.

ヴァージョンアップ履歴

03/06/08
トロネコの大冒険4 を発表.
03/08/09
トロネコの大冒険4 Ver.2.0 を発表.宝珠入手・扉通過の処理を見直した結果、ボスの強さが調整された.
04/02/15
トロネコの大冒険4 Ver.3.0 を発表.敵キャラを変更し世界観を修正.方向表示を見直し洞窟の上下を逆に.
04/04/21
トロネコの大冒険4 Ver.3.1 を発表.HP 0 でも戦えたバグを修正.
04/10/09
トロネコの大冒険4 Ver.3.1 特別版(PBsim用)を発表.
05/09/18
【アレンジ版】トロネコの大冒険4(PBsim用)を発表.
06/05/16
【アレンジ版】トロネコの大冒険4 ver1.1 (PBsim用)を発表.

参考文献

たかじょゆうき。
“BATTLE GIRL”,ポケコンジャーナル 1992年 10月号,工学社
滝本 飛沫
“TINY RPG 炎影魔”,ポケコンジャーナル 1990年 3月号,工学社
滝本 飛沫
“ポケコン使い ~PB指向~ バイナリ・デジットの迷路”,ポケコンジャーナル 1993年 9月号,工学社
メガロードK
“ZOX4”,ポケコンジャーナル 1991年 9月号,工学社

PBロッキーの冒険 その1

「てゆーかぁ、“3つのオーブ”の辺りぃ滝本氏の『TINY RPG 炎影魔』の“五鍵門”のパクリじゃん!」などとツッコまれる前に公言しちゃいます.

「そう、俺はあの日、残りメモリの余りの少なさに絶句した.そしてつい魔がさしたのさ...俺はPBプログラマーとして最低のことを...」

「まぁ、そう自分を責めるな.」

「5つの鍵を集めるというシステムは僅かなメモリでボリュームのあるストーリーを創り出すナイスなアイデアだ.これをパクらない手はないさ.」

「ありがとう!でもパクルパクルって言わないでください.クレーム来ちゃいますから.」

「そいつは失礼!じゃぁ、こう言い直そう.PBロッキーはPBの3D迷路表現を開拓し、“3つのオーブ”でオマージュを奉げた!!」

「それ頂き!」


「実は戦闘部分なんですけどぉ、たかじょゆうき。氏の『BATTLE GIRL』の影響をかなり...」

「えー、どれどれ...」

どうやら変数 J 絡みのことのようだ.攻撃側を決める J により、連続攻撃があったりと変化のある戦闘になる割にメモリをあまり食わないクールなアイデア!

「......パクリだらけじゃん!!!」(ちゃんちゃん♪)