キャンプのサイトに、日本列島を育てるゲームを置いた
ブラウザで開くだけで遊べる街づくりゲームを、一人で作って公開した。
縄文から現代まで、実際の日本列島の上で街を育てていく。
日本進化シミュレーション第1回 / 全16回目次
キャンプ場を紹介しているサイトの片隅に、日本列島を育てるゲームを置いた。
ブラウザで開くだけで遊べる。
インストールも会員登録もいらない。
なぜこんなものを作ったのか、という話は最後にする。
先に、何を作ったのかを見てもらったほうが早いと思う。
何を作ったのか
画面を開くと、日本列島が出てくる。
北海道から九州まで、実際の海岸線のデータをもとにした形だ。
その上に道路を敷いて、区画を決めて、建物を建てていく。
よくある街づくりゲームと、遊び方そのものは変わらない。
違うのは、時代が進むところだ。
最初は縄文時代から始まる。
竪穴住居が数軒あるだけの、小さな集落だ。
人口が増えて、建物が揃って、条件を満たすと次の時代へ進める。
縄文、弥生、古墳、平安、戦国、江戸、明治・近代、現代。
八つの時代を、ひとつの地図の上で通していく。
時代が変わると、建物の見た目も変わる。
竪穴住居が高床倉庫になり、町家になり、洋館になり、高層マンションになる。
道路も、荷車が通るだけの土の道から、馬車の道へ、自動車の道へ、高速道路へと変わっていく。
住んでいる人に、名前がある
街を大きくしていくと、道に人が歩きはじめる。
カメラを寄せると、豆粒くらいの大きさで見える。
その一人をクリックすると、名前と性格と、今どのくらい満足しているかが出てくる。
どこに住んでいて、どこへ通っているかも分かる。
上水が届いていない家に住んでいる人は、それだけ不満を持っている。
設定を入れると、歴史上の人物が住民として紛れ込むようにもした。
平安時代なら平安時代の、江戸時代なら江戸時代の人が出てくる。
関東大震災のような実際に起きた災害も、その時代が来ると起こる。
このあたりは人によって好みが分かれると思ったので、まるごとオフにできるようにしてある。
政治もある。
時代に応じて、長老だったり、将軍だったり、総理大臣だったりが街の代表になる。
世襲で代替わりする時代と、選挙で決まる時代がある。
歴代の一覧が残っていくので、そのプレイの歴史が積み上がっていく。
AIが勝手に街を育てる
自分で道を敷くのが面倒になったら、AIに任せることもできる。
スイッチをひとつ入れると、AIが自分で判断して街を広げていく。
道路が足りないと思えば道を延ばす。
住宅が足りないと思えばゾーンを広げる。
火事が起きれば消防を建てる。
ひとつの町が十分に育つと、少し離れた土地に次の町を興しはじめる。
これがなかなか思いどおりに動いてくれなくて、僕がいちばん時間を使っている部分でもある。
碁盤の目のような道ばかり作りはじめたり、資源を使い切って永久に止まったりした。
その話は、この連載の後半でまとめて書くつもりだ。
なぜ日本列島の形にこだわったか
架空の島を適当に生成するほうが、作るのはずっと簡単だった。
実際の海岸線データを読み込んで、標高を反映して、川と湖を置いて、という作業は手間がかかる。
それでも実際の日本にしたのは、「ここは知っている場所だ」と思える瞬間がほしかったからだ。
画面の左下には、今カメラが向いている場所の地名が出る。
ただし、時代によって呼び方が変わる。
平安時代に茨城のあたりを映すと「常陸国」と出て、明治以降になると「茨城県」に変わる。
自分の住んでいる場所を探して、そこに最初の集落を置いてみてほしい。
たぶん、それが一番おもしろい遊び方だと思う。
PC専用にした
ひとつだけ、先に断っておきたいことがある。
このゲームはPC専用だ。
マウスで視点を回して、クリックで道を敷いて、という操作を前提に作っている。
スマートフォンでも画面は出るが、まともに操作できない。
タッチ操作に対応させるかどうかは、正直まだ決めかねている。
ゲームを作るのは、これが初めてではない
昔、CGIで「罪と罰」というゲームを作ったことがある。
あれが、僕がプログラムというものに関わった最初だった。
ちゃんと設計を勉強してから書いたわけではない。
動くものが見たくて、動かないところを直しているうちに、いつのまにか動いていた、という作り方だった。
そこから今日まで、仕事でコードに触ることはあっても、ゲームを作ることはなかった。
だからこれは、ずいぶん久しぶりの二度目になる。
AIでどこまで行けるのか
もうひとつ、これを作っている理由がある。
このブログでは、AIを使いながら個人でサイトを運営していく話をずっと書いてきた。
書きながら、いつも同じところで引っかかっていた。
で、結局どこまでできるんだろう、と。
記事の下書きや、設定ファイルを一つ直すくらいなら、もう十分に使える。
それは何度も書いた。
でも、何ヶ月も動かし続ける、ある程度の大きさのものはどうなのか。
そこは試したことがなかった。
ゲームは、それを試すのにちょうどよかった。
動くか動かないかがその場で分かるし、遅ければ遅いと画面が教えてくれる。
言い訳のしようがない。
結果として、うまくいったこともあれば、そうでないこともあった。
この連載で書くのは、たぶんその両方だ。
これから何を書くか
ここから連載として、このゲームをどう作ったかを書いていく。
うまくいった話より、詰まった話のほうが多くなると思う。
人口が十万人を超えたところで、画面が毎秒二コマまで落ちた話。
配列の並びを変えただけで、セーブしておいた街が別のものに化けた話。
AIが木材を使い切って、そのまま永久に動かなくなった話。
どれも、直ったあとに振り返れば理屈は単純だ。
ただ、詰まっている最中は何が起きているのか分からなかった。
そのときに何を見て、何を疑って、どう切り分けたかを残しておきたいと思っている。
同じところで詰まっている人が、検索でここに辿り着いてくれたらいい。
次回は、そのなかでもいちばん派手に失敗した速度の話から書く。
※運営者が個人で書いているnoteです。