プログラミングの備忘録

プログラムをつくる過程を残すもの

「Stone Story RPG」で遊んでみる

こんにちは。
今回は「Stone Story RPG」というゲームを遊んでみます。


ちょっと長めのイントロが入ります。

友人と Steam の無料ゲームを発掘することがままあるのですが、そこで「Super Auto Pets」というゲームを見つけました。
これがなかなかおもしろく、友人が見つけてくれたんですが、以前にも「Muck」という良ゲーを見つけてくれたので見る目あるなと思っていました。

「Super Auto Pets」ですが、アプリ版もあるようだということでせっかくなので入れることにしました。
アプリを入れるときは、おすすめのゲームみたいなものがいくつか表示されると思うのですが、その中に自分の好きな雰囲気のゲームを見つけ、それが「Stone Story RPG」でした。
実際に遊んでみても自分の好きなタイプのゲームで、これまたいいもの見つけちゃったなと思っていたところ、自分でコードを書いて周回させるという要素が解放されました。
思わぬところでプログラミングに出会ってしまったのでこれは記事にしておこうということで、この記事を書くに至りました。


思い返してみると、確か「INDIE Live Expo」という配信で紹介されていて、そこで周回のためのコードを書くというシステムがおもしろいなと気になっていたものかもしれないと、謎の運命を感じてしまいました。
(全然関係ないですが、この配信に出演されているわいわいさんは私の推しYouTuberなのでぜひ見てみてください。)


Stone Story RPG 自体は Steam にもあり、3400円で販売されています。アプリ版は無料です。


一応「プログラミングの備忘録」という名前なので、コードが関わる部分だけ紹介するに留めます。
加えてネタバレを含むと思われますので、問題ない方のみ読み進めていただければと思います。


目次


Stone Story RPG におけるプログラミング

大前提として、「神殿」のボス「ナーガラージャ」を倒して「明瞭の石」を手に入れる必要があります。
実際のコーディング画面はこんな感じです。

言語は「Stonescript」という、おそらく独自の言語です。
リファレンス等はこちらのサイトにあります。

stonestoryrpg.com


デフォルトでは以下のように書かれています。

?hp < 7
  activate potion
?loc = caves
  equipL sword
  equipR shield
  ?foe = boss
    equip crossbow


「HPが7より少なくなったらポーションを使う」と「ステージが恐怖の洞窟のとき、左手に剣、右手に盾を装備し、ボス戦ではクロスボウを装備する」という内容が書かれています。

この Stonescript という言語は、if文を「?」で書くことに特徴があると思います。
他の言語でも三項演算子で「?」を使いますが、それとはまた違った文法です。


実際にやってみる

レファレンスは先程示したサイトにあるので、軽くですが書きながら勉強してみました。


例えば、普段は氷の大剣と丈夫な盾で戦うけど、体力が減ったら活力の大剣で回復する、というようにすると、

equipL big ice sword // 氷の大剣を装備
equipR compound // 丈夫な盾を装備

? hp < maxhp // 体力が1でも減ったら
  equipL big vigor sword // 活力の大剣に切り替える


ボス戦ではヘビーハンマーを使い、適宜アビリティも発動させる、なら、

? foe = boss // ボス戦のとき
  equip hammer // ヘビーハンマーを装備
  ? item.CanActivate() & // アビリティが発動できて
  ^foe.distance < 5 // 敵との距離が5より小さいとき
    activate right // 発動


装備品の名前については日本語で書くこともできます。

また、1行に書ける文字数は限られているようなので、長くなりそうなときは ^ を使って前の行とつながっていることを示した上で改行して書くと良いです。

他、素材の近くになったら「星の石」で集める、ただの移動の時は「トリスケルの石」で加速する、攻撃されたときは「明瞭の石」で避けるなど、いろいろとできることがあると思います。


APDE や pydroid を使ったときも思いましたが、やはりスマホでコードを書くのは大変ですね。
なぜかアローキーで入力位置の移動もできなかったので、難易度が上がりました。


まとめ

以上、あっさりとですが Stone Story RPG における Stonescript を使った周回の自動化を試してみました。

ただの自動周回では装備が同じであったりポーションや特殊攻撃を使ってくれないなどの、自分で周回すればクリアできるのに…という悩みを解決してくれる素晴らしいシステムだと思います。

「Stone Story RPG」みなさんもぜひ遊んでみてください。


最後まで読んでいただいてありがとうございました。また次回。