Starbound moddingメモ

starboundのマルチプレイ対応moddingのあれこれについての備忘録

カスタムアイテムで出来る事

今回は家具を使ったオリジナルゲームを紹介します。jsonだけでもこんな事もできるよって感じの記事です。

 

 

プレイ動画はこちら

www.youtube.com

 

大体は動画の内容の通りですが、一応ルールを書いていきます。

 

■ゲームルール


ゲーム開始と同時に部屋の中央にピンクのポップトップがスポーンします。

このポップトップはプレイヤーが近くにいる場合、『成長』スキルを使用します。

成長』スキルは長い詠唱時間を持ち、発動するとポップトップの成長段階を1進めます。

 

このゲームはこのポップトップの成長段階を定められた制限時間内に最終段階のマザーポップトップまで成長させることが目的です。


また、部屋の四隅からはウェーブレベルによって定められたモンスターが出現し続け、部屋の床には時間に応じて発動する即死レーザートラップの仕掛けがあります。


制限時間内までにポップトップの成長が終わらなかった場合、部屋の壁に設置されている即死レーザートラップが全て作動し、強制的にゲームオーバーになります。


見事モンスターやトラップの攻撃からポップトップを守りつつ、最終段階まで成長させた際には全4種の中からランダムなカスタム武器と確定ドロップのポップトップの帽子がお礼として貰えます。

 

推奨プレイ人数は1~4人

 

(ILBサーバーの宇宙ステーションにて稼働中なのでぜひ遊んでみて下さい)

 

 

 ここからはゲームの内部について書いていくので文章量がぶわっとふえます

■ゲームの仕組みについて

 

このゲームは9種類のカスタム家具「ancientbouldertrap」をワイヤーツールでタイマーとスイッチに繋ぎ合わせて動作させています。各トラップの内容は

 

  • wave1用のモンスター定期出現用
  • wave2用のモンスター定期出現用
  • wave3用のモンスター定期出現用
  • 開始時のポップトップ出現用
  • ゲーム開始準備中のタイトル表示用(MISSION : FEED THE POPTOP ! )
  • wave1開始を知らせるテキスト用
  • wave2開始を知らせるテキストとBGM1再生用
  • wave3開始を知らせるテキストとBGM2再生用
  • 残り時間5秒前からのカウントダウンのテキスト表示用

 

と、それぞれの挙動に合わせて分かれています。

 

それぞれのトラップのprojectileには大体0秒のtimeToLiveが設定されたinvisibleprojectileが指定されており、actionOnReapからparticleやmonsterのアクションを発生させています。これらに加え、5秒タイマーを大量に横に繋げたタイムラインを作り、各トラップを発生させたいタイミングにワイヤーで紐付けする事で任意のタイミングで各トラップのON/OFFを切り替えているといった感じです。

 

初めはひとつのトラップにすべての機能を入れてprojectileのコントロールでタイミングを合わせるように作っていたのですが、単純にデータの容量がかなり大きくなってしまうのに加え、ゲーム開始までにかかる時間が増えてしまう(projectileの内容が複雑化しすぎてラグが発生している状態)という現象が発生した事からこのような形になりました。

 

ひとつにまとめていた時は配線はかなり楽だったのですが、不安定すぎたので…

 

 

このようにスターバウンドにおけるprojectileのコントロールは、任意のタイミングでparticle,projectile,monster,itemなどを発生させることが出来るためjson moddingの中でもかなり自由度が高く、これはもはやパラメータの格納というよりもプログラミングしている状態に近いと言えるのではないでしょうか。

イデア次第ではこのゲームの他にも様々なものが作れる可能性を秘めている為、日本でもカスタムアイテムを作る遊び方が流行ればいいな…と思ってます。

 

 

とりあえずスターバウンドのアクティブな日本鯖、ください。