マイナー・マイナー

隠れた名作の発掘が生きがい。

『ペンギンの島』効率を考えた施設のレベルアップ


スポンサードリンク

モバイルアプリ『ペンギンの島』にはまっていました。ペンギンとそのペンギンが住む島を育てるシミュレーションゲームです。ゆったりと楽しめることもできるゲームですが、どちらかというと島を効率的に育てることに注力していました。


島を発展させるためにはゴールドとハートを稼ぐ必要があります。ゴールドを効率的に稼ぐためには施設をレベルアップさせていくことが重要になってきます。1回のレベルアップでゴールド収入が200%から1000%増加するため、レベルアップを繰り返すと収入が激増します。


ゴールド収入の発生間隔は施設によって違います。ゴールドを3秒毎に得られる施設もあれば、10秒毎に得られる施設もあります。一見すると稼ぐ効率は3秒毎の方が良さそうに見えますが、ゴールドの発生間隔が長い施設ほど初期レベルで得られるゴールドの量が多いため、どちらが良いかは判断がつきにくいです。


(A) 3秒毎にゴールド収入が得られる施設
(B) 10秒毎にゴールド収入が得られる施設


どちらをレベルアップしていけば効率良くゴールドを稼げるか検証しました。


f:id:yosinoo:20200114220520p:plain:w240

収入発生関数

「釣り場」であれば3秒毎、「遊園地」であれば10秒毎にゴールドを得ることができます。その発生を下記のように表します。tは時間、nは発生間隔です。

f_1(t)=
\begin{eqnarray}
  \begin{cases}
    1\quad(0 = t \bmod n) & \\
    0\quad(0 \neq t \bmod n) &
  \end{cases}
\end{eqnarray}

割合関数

施設のレベルがひとつ上がるとゴールド収入が200%から1000%上がります。簡単のため、レベルアップ時の収入の割合aは一定とし、一定周期mでレベルアップを繰り返すとします。時刻tにおけるゴールド収入の割合を下記の式で表しました。

f_2(t)=f_2(t-1)g(t)
f_2(0)=b(初期値)
g(t)=
\begin{eqnarray}
  \begin{cases}
    a\quad(0 = t \bmod m) & \\
    1\quad(0 \neq t \bmod m) &
  \end{cases}
\end{eqnarray}

収入関数

収入発生関数と割合関数の積が時刻tにおける収入となります。

f(t)=f_1(t)f_2(t)

シミュレーション結果

時刻tにおける総収益をグラフにしました。青が3秒毎にゴールド収入が得られる施設(A)、赤が10秒毎にゴールド収入が得られる施設です(B)。


f:id:yosinoo:20200114220550p:plain


(A)の初期値b=1、(B)の初期値b=1000、収入の割合a=2、レベルアップ間隔m=50とした結果、(A) < (B) という結果になりました。パラメータをゲーム内で取りうる値にいくつか変更してみても、この結果は変わらずでした。

まとめ

簡単な条件下では、ゴールド収入が3秒毎に得られる施設よりも10秒毎に得られる施設をレベルアップしていく方が効率的に稼げます。しかし、

  • レベルアップのためにはハートが必要であるが、その初期値が施設ごとに違う
  • 全体的にゴールド生産量を増やすための研究があるが、研究を進めるためには定期的に「釣り場」をレベルアップしていく必要がある

といった要因もあり、単純ではないです。施設を新設したらこの施設を優先的にレベルアップし、研究等で必要であれば「釣り場」をレベルアップするという戦略が効率的にゴールドを稼ぐ方法だと考えます。