OmegaCrafterのコード管理テクニック
Omega Crafter の早期アクセス版がリリースされました
丁度パルワールドをやりきってアプデ待ちだった所に、PFNがプログラミングできるゲームをリリースしたという情報を見たのでものは試しと思って買ってみました。
2日くらいで現在用意されているコンテンツは消化してしまったのでもう少しボリュームがほしい所ですが、ゲーム自体はなかなか楽しかったです。
コードをいい感じに管理する必要がある
ちいかわのパジャマパーティーズとLOVOTの間の子みたいなグラミーちゃんの行動をプログラミングできるのがこのゲームの特色なんですけど、ものすごくたくさんのグラミーを扱うので、どのグラミーの上でどんなプログラムが動いているのかわかりづらいです。
例えば複数体に同じプログラムを書いたあと、それを修正したくなった時に、どの子がいつのコードなのかわからなくて大変です。
カスタムテンプレートを活用する
1体1体のグラミーにせっせとコードを書くのもいいですが、同じ事をさせるのであればコピペしたいですよね。
自分が書いたコードを保存できるカスタムテンプレートという仕組みがあるのでこれを活用しましょう。
以下はプログラミング画面を開いた時に左にでてくるウインドウですが、カスタムの文字部分をクリックすると以下ようなカスタムテンプレート一覧画面になります。
ここで、Newボタンをクリックすると登録できるスロットがでてくるので、
・Saveを押すと現在のグラミーのコードがテンプレートに
・Loadを押すとテンプレートの内容がグラミーに
・鉛筆マークで名前変更(変更を確定させるには鉛筆マークを再度クリック)
のような感じで使います。SaveとLoad間違えてコードが消滅したり、違うスロットにSaveする事故が多発するので注意です。
複数のグラミーで使いそうなものや、今は使わなくなったけどまた後で使いそう。みたいなものはカスタムテンプレートに入れておくと便利です。
役割に応じてグラミーの名前と見た目を変える
グラミーの名前は1体1体命名することができます。自分の場合は
・[役割名][その役割を持つ何番目のグラミーか]v[コードのバージョン番号]
というフォーマットで運用していました。
名前だけだとカーソルをあわせないと役割がわからないので役割事に見た目を変更していました。以下の画面の赤丸で囲ったボタンを押すとからだの色と装飾を変更する事ができます。同じ役割のグラミーは同じ格好にしておくとわかりやすいです。
コード上でバージョン番号をしゃべらせる
グラミーの名前にバージョン番号を入れても、コードの方が本当にそのバージョンなのかわかりづらいです。
そこで、コード上にバージョン番号を記入しておいて、コード変更のたびにインクリメントする運用にする事で、複数体のバージョン把握をやりやすくします。
コメントがかけるブロックはないようなので、言うブロックを使いました。(ログ出力とか使うとうるさいのでおすすめしません)
手順をまとめると
まずコードを書く時の手順は以下
・いい感じのコードを書く
・バージョン番号を言うコードを付加する
・カスタムテンプレートに登録
そしてこれを適用するときは
・適用させたいグラミーをつかまえてきてカスタムテンプレートからコードをロード
・コード上にあるバージョン番号を見ながら名前と見栄えを変更
という形になります。
コードを書き換えたら言うブロックのバージョンをあげて、カスタムテンプレートに登録。古いバージョンで動いているグラミーを名前から探して更新していけばOK
最後に
現在のバージョンだとそれほど複雑なものを要求される事もないので適当で全然良いと思いますが、シングルコンテナからあふれるものを捨てる係を作るケースだと、対象となるコンテナが増えるたびにコード書き換えが必要で、捨てる係が複数体いたのでこういう運用をしてみました。
余談ですけど、コード上でエラー処理を丁寧に書いてエラーが起きないようにすると爆速で処理が走るようになって面白いです。デフォルトテンプレートは意図的に高速化の余地を残しているように感じました。
Omega Crafter面白いのでみなさんもぜひ遊びましょう。
Discussion