気がついたらコミケから五日が経っていました。惚けるのもいい加減にしないとな。

今日は、コミケ前に作ったライフゲームっぽいゲームの製作秘話というかチラシの裏な話です。自己満足な内容なので興味のある方だけ読んでください。

まず始めに製作にあたって参考にしたサイトのご紹介。本当は前の記事に載せるつもりだったんですが、忘れていたのでここで紹介します。

Javaでゲーム作りますが何か?

Javaで作成した正真正銘のライフゲームを公開しているサイト。ライフゲーム?の雛形にさせていただきました。ボタンとかウィンドウサイズとか名残がいっぱいあります。コメントが丁寧で分かりやすいです。他にもJavaでゲームやら人工知能やら色々と参考になりそうなことが載っています。

はい。ここからは本当にチラシの裏。盤面をクリックすると見ることの出来るステータスとか細かい仕様の話です。

ライフゲーム?では名前を入力すると勝手にステータスが決定されますが、内部では入力された名前から、128bitのMD5ハッシュ値を作成し、それをバイト毎に区切ってステータスの計算に利用しています。これはMD5バトルとかから思いつきました。ステータスは全部で5種類あります。それぞれの役割は以下の通りです。

  • hp:体力
    無くなると死滅し、周囲の他の勢力のセルに置き換わる(体力が少し回復するが基本的にはそのままコピー)。
  • str:攻撃力
    これが高いと他勢力のセルのhpを大きく減らす。
  • def:防御力
    これが高いと他勢力の攻撃を軽減する。ちなみに攻撃範囲は周囲8セル。あんまり役に立たない。
  • vit:回復力
    セルは何もしてないとき自然回復する(めっちゃ遅い)。そのときの回復量。あとセルが置き換わったときの回復量が大きくなる(むしろこっちの方が重要かも)。
  • pot:潜在能力
    これが高いと突然変異しやすくなる(後述)

もっとも重要なのは体力と潜在能力。攻撃力と防御力は内部で平方根にして計算しているので、小さすぎない限り影響は少ないです。体力は2倍違えばそのまま2倍長持ちするので、影響力大です。vitによる自然回復は、雀の涙程度のモノなので戦力にはほとんど影響しません。セルが置き換わったときの回復量も体力に対するパーセントなので、これもやっぱり体力が高い方が有利です。

最後に潜在能力について。実際にゲームを起動してステータスを見てみた人は不思議に思ったかもしれませんが、ステータスが場所によって違っています。実はセルが生まれ変わるときに、低い確率で突然変異が起こります。具体的にはMD5で作成した128bitのうち1~3bitが反転します。初期ステータスが低くても、potが高くて突然変異が起こりやすければ逆転できるかもしれません。さらに、突然変異が起きると体力全快の状態で生まれるので生き残りやすくなります。

以下、細々としたこと

  • 盤面データは白黒のbmpファイルを使用している
  • 任意の画像ファイルを読み込ませて・・・とか考えたけど、セルの初期位置の設定とかが面倒くさいので放棄
  • 同じ名前、同じ配置なら何回やっても結果は変わらない
  • 128bitをバイト毎(8bit)に区切って管理しているが、突然変異の時に超低確率で1bit増える(超肉体登場の予感)
  • プレイヤー名をgaer、gae、dg、sgにすると、すげー時間掛かった。逆転に次ぐ逆転

以上、チラシの裏でした。

参加者および関係者の皆様お疲れ様でした。

去年のと続き3回目のコミケ参加になりました。私もこういうイベントになれた所為か、去年の夏と変わらない待ち時間だったのに、開場までの待機が全く苦になりませんでした。あっという間に10時開場の拍手。そして入場。まず、真っ先に向かったのが東方Projectの総本山。去年のペースで行けば10時40分頃には買えるはず・・・!3人一列でぐんぐんと進み、あの角で折り返したらもうすぐだ!と思っていたら、そこから更にくねくねと折り畳まれた行列が続いていた・・・

どうしてこうなった!

そして結局買えたのは12時頃。去年の2倍以上ってどういうことなの・・・。予定の所を全部回れそうに無くなってきたので、総本山を早々に諦めた賢明な友人に連絡を取り、いくつか追加で回って貰うことに(毎回ありがとうございます)。私も予定通りのルートで大手をいくつか回ってから、島のサークルを回り、最後に物量が多そうなサークルを回ってみましたが、やはり1時頃になると売り切れの所も多くありました。結局買えたのは予定の5割ぐらい。

友人と合流し、会場を出たのは午後3時頃。何故かコミケに来ていた他の友人とも合流して有明から離脱。このまま秋葉でも行こうかという話になったけど、体力が限界なので適当なところで食事して解散という形になりました。

今回の戦利品↓

コミケ2日目(東方Project)戦利品

そして今日、秋葉で手に入れてきたモノ↓

アキバよりコミケ戦利品

なんだかんだで結構な量に。よーし、気張ってチェックするぞ!

夏です。もうすぐコミケがありますが、それ以外はやることもないのでJAVAでゲームみたいモノを作ってみました。作ったと言っても完全にパクリゲーなんですが、ニコニコ動画でコレを見て以来、同じようなモノを作ってみたかったのです。

そんな訳で作ったのがこちら↓
ライフゲーム? version1.00 DL

※注意事項

・JAVAで作成してるのでJAVAの実行環境がインストールされている必要があります

・凄く重い
・特にNo waitモードはCore 2 Duo以上の環境を推奨します

動作画面

ライフゲームもどき動作画面

操作説明

Playerと書かれているボックスに適当な名前を2人以上入力してから、Setボタンを押して画面に配置して、スタートボタンで実行です。

後は画面を眺めるなり他のことでもしながら決着が付くのを待ちましょう。

その他説明
スクロールバーをいじると動作速度を変更できます。No waitにチェックを入れるとスクロールバーに関係なく高速で動作しますが、非常に重くなります。また、画面をクリックするとその場のステータスを確認できます。

続き→チラシの裏

東方の迷宮をクリアしました。

レミリア以外を強化しないという変な縛りを課してきた自分が言うのも変な話ですが、戦闘バランスも良く、テンポも良くて飽きずに最後までプレイすることが出来ました。総プレイ時間は75時間。普通にプレイすれば50時間もあればクリア出来たんじゃないかと。レミリアのみ強化の縛りプレイは、縛りプレイとしてはとても簡単でした。レミリアは元々ステータスの高いキャラクターなので、通常よりも少しレベルを上げていれば、ボス戦で無双できてしまいます。ただし、全体攻撃がないので雑魚戦で少し手こずります。

以下クリア直前のステータス(注意:画像サイズ大)

東方の迷宮20

クリア後もまだやり込む要素があるみたいなので、まだまだ東方の迷宮で遊べそうです。ただし、敵の能力がインフレしていくみたいなので、縛りプレイはココまでにします。

そう言えば夏コミで追加ディスクが出るみたいですね。追加キャラが8人が誰なのか楽しみだわ-。ミスチー出してくれんかのう。

東方の迷宮を伸び伸びと遊んでます。現在18Fまで進攻中。

18Fボスを撃破

東方の迷宮18-1

終盤のボスはレミリア無双だけだと厳しくなってきたけど、この階のボスもなんとかレミリアの活躍でなんとかなりました。装備を防御重視にして、防御上昇を60%以上を保った状態で、防御無視攻撃以外を1000以下のダメージで抑えられる程度までレベルを上げれば安定して勝てるっぽい。問題は回復役だけど、レミリアのHPが減ってきたら、防御重視+TPアップ装備にした永琳とか使い捨ての回復役を出して直ぐに交代すればなんとかなる。以下倒す直前のステータス(注意:画像サイズ大)

東方の迷宮18-2

もうそろそろラスボスか。このままレミリア無双でいけるかな。