本ページはプロモーションが含まれています

ギャラリー

リビモン|ブログに通って育てるリアルタイム育成ゲーム(進化34種)

CATEGORY
REV.
DRAWN BY
TOM
SHEETS
0枚
リビモン(ブログに通って育てるモンスター)

トム

SESで約8年、環境を変えられないもどかしさの中にいました。32歳で自社開発企業に転職し、今はClaude Codeと自動化で、仕事も時間も組み直している途中です。
・Javaバックエンドエンジニア(Java歴12年以上)
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎
詳細なプロフィール

𝕏

CODE GALLERY No.19

リビモン

このブログに通って育てる、リアルタイムの育成ゲーム。
寿命はおよそ1か月。育て方しだいで、34種類のどれかになります。

育成ゲームのおもしろさは、自分が見ていない間も、向こうの時間が進んでいることだと思います。目を離しているうちにうんちをして、おなかをすかせて待っている。その感じを、ブラウザで作ってみました。

リビモンの時間は、現実の時計と同じ速さで進みます。ページを閉じている間もおなかは減り、うんちはたまります。次にこのページを開いたとき、留守の間に起きたことをまとめて計算し、「おかえり」と一緒に知らせてくれます。

たまごは3分でかえります。そこから先は、あなたが様子を見に来る回数と、お世話のしかたで育ち方が変わります。

REBIMON
おなか
ごきげん

HOW TO PLAY遊び方

  • ごはん:おなかのハートが減ったらあげます。満腹のときは食べません
  • おやつ:ごきげんが上がります。あげすぎると太り、1時間に何度もあげると、おなかをこわすことがあります
  • あそぶ:左右どちらを向くか当てるゲームです。5回中3回当てると勝ちです
  • そうじ・くすり:うんちを放っておくと病気になりやすくなります。病気になったら、くすりで治します
  • しつけ:用もないのに呼ぶ「わがまま」のときに叱ると、しつけが身につきます。わがままでないときに叱ると傷つきます
  • ブログ:リビモンが気になっている記事を、いっしょに読みに行けます。読み終えて戻ってくると、感想を聞いてきます
  • モンスターをタップすると、なでられます。23時から7時までは眠っていて、おなかの減りもゆっくりになります

EVOLUTION育て方と進化

ベビー(1日目)→こども(2〜4日目)→おとな(5〜10日目)→かんぜんたい(11〜18日目)→きゅうきょくたい(19日目〜)と、5回すがたを変えます。進化先は、その段階で何をしてもらったかで決まります。

かわいいごはんを切らさず、たくさん遊んで、ほめて育てる
かっこいい遊びで勝ち、わがままはきちんと叱る
おかしいおやつをあげて、いっしょにブログを読む
きもちわるいうんちを放置し、おなかをすかせたままにする

途中で育て方を変えれば、かわいい子がきもちわるい大人になることも、その逆もあります。「ようす」画面の「いまのそだちかた」で、どの方向に伸びているかを確かめられます。最後の段階には、条件を満たしたときだけ会える特別な4体もいます。

LIFE寿命と、お別れ

しっかり世話をすると、寿命はおよそ30日です。お世話のミスが多かったり、病気をくり返したりすると短くなります。

何もしないまま4日を過ぎると、少しずつ命が危なくなります。1週間放っておくと、4割ほどの子が力尽きます。ただ、1日1回でも様子を見に来て、ごはんとそうじをしてあげれば、まず死ぬことはありません。

お別れしたあとは、新しいたまごを迎えられます。育てた子は「おもいで」に、出会ったすがたは「ずかん」に残ります。

SOURCE CODE閉じている間の時間の進め方

ページを閉じている間、プログラムは動いていません。そこで、最後に記録した時刻を保存しておき、次に開いたときに「今」までの時間を10分きざみで一気に進めます。1か月ぶりに開いても、4,000回あまりの計算で済むので一瞬です。

// 最後の記録から now まで、10分ずつ進める
function sim(s, now) {
if (now < s.t) s.t = now;                  // 時計が戻っていたら、そこから数え直す
while (s.t < now && !s.dead) {
  const dt = Math.min(STEP, now - s.t);    // STEP = 10分
  s.t += dt;
  step(s, s.t, dt / HOUR);                 // おなか・うんち・病気・進化・寿命を判定
}
}

// 最後のお世話から4日を過ぎると、日ごとに危なくなる
const days = (t - s.lastCare) / HOUR / 24;
if (days > 4) {
const daily = Math.min(0.85, 0.3 * ((days - 4) / 3) ** 2) * (1.5 - s.health / 200);
if (Math.random() < 1 - (1 - daily) ** (dt / 24)) die(s, t);
}

死ぬ確率は「1日あたりの確率」で決めておき、10分ぶんに割り直して判定しています。こうしておくと、きざみ幅を変えても結果が変わりません。公開前に、まったく世話をしない場合を400回試し、7日までに約4割、9日までにほぼ全員が力尽きることを確かめました。

モンスターの絵は、すべて SVG で描いています。目と口だけを表情ごとに描き分ける部品にしてあるので、34体それぞれに、ふつう・うれしい・かなしい・ねむい・びょうき・食事中の6つの顔があります。画像ファイルは使っていません。記録はこのブラウザの中だけに保存され、どこにも送られません。

※ 登場するモンスターはすべて架空です。読みに行く記事は、このブログでよく読まれている記事から選んでいます。

NEXT READ本棚から1本

AIで開発を組み直すなら、まずこの5冊から

入門・実践・設計まで、Claude Codeの本をレベル別に5冊選んで比べました。

→ おすすめ5冊を見る

  • この記事を書いた人
  • 最新記事

トム

SESで約8年、環境を変えられないもどかしさの中にいました。32歳で自社開発企業に転職し、今はClaude Codeと自動化で、仕事も時間も組み直している途中です。
・Javaバックエンドエンジニア(Java歴12年以上)
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎
詳細なプロフィール

𝕏

ギャラリー