未来を形作るテクノロジーの深掘り記事。

NIMBYをシミュレートする:敵対的シムとサンドボックスシム

都市が反撃するシティビルダーは、NIMBYの反対運動をメカニクスとして再現します。敵対的シムとサンドボックスシムの得意分野と使い分けを解説。

夕暮れの都市にいる小さな建設クレーンが、巨大な紙の束と絡まった赤いリボンに圧倒されている様子。
敵対的な都市シムでは、書類の山こそが地形そのものです。

サンフランシスコで住宅デベロッパーを演じるシティビルダーが作られました。そこでは都市そのものがボス戦になります。アパートを建てようとすると、ゾーニング規則、都市計画委員会、近隣住民、そして不服申し立ての手続きがあなたを止めにかかります。あるプレイヤーは16年分のシミュレーションで4,147戸の住宅を建て、16回の公聴会、3件の審査請求、4件の訴訟を切り抜けて「Builder of Some Things」の評価を得ました。一方で都市に必要だった住宅は8万2,000戸以上です。政治風刺としてはとても面白い。でもシミュレーション設計としても本当に興味深いところがあります。SimCity以来のシティビルダーすべてに組み込まれてきた前提、つまりプレイヤーは全能の市長で、シミュレーションは最適化されるためにある、という考えをひっくり返しているからです。ここではシミュレーションがあなたの敵なのです。

全能の市長モデル:SimCityとその系譜

クラシックなシティビルダーはサンドボックス型シムです。ゾーニングし、税率を設定し、道路を敷くと、小さなシムの市民がその決定に反応します。興味深いのは、このジャンルの40年間を通じて内部のモデルが驚くほど一貫していることです。地価、公害、交通の流れ、サービスの網羅範囲はグリッド上の場であり、エージェント(シム)はそれらの場に基づいて単純な判断をします。現在の主役であるCities: Skylines IIは、個々の世帯のライフサイクル、職場、通勤をシミュレートしますが、あなたを訴えることはありません。できないのです。システムの中での彼らの役割は影響を受けることであって、行動することではありません。

この設計の選択は、静かに一つの政治哲学を埋め込んでいます。SimCityでは、住宅街の真ん中に高速道路を通したければ、ただ通せばいい。そこに住む住民は、せいぜい幸福度メーターの小さな落ち込みとして表現されるだけです。ゲームのフィードバックループはスループットを評価します。ゾーンが増え、人口が増え、税収基盤が広がる。何百時間もこのゲームをプレイした人は、都市計画の障害とはプレイヤー自身の先見性の欠如だ、という世界観を無意識に身につけています。それはまさに、現実の都市政策の論争が何についてのものかという、その世界観そのものです。ゲームはあなたにロバート・モーゼスのように考えることを教え、そして現実の都市は、今ある規制がなぜ存在するのかをロバート・モーゼスが思い出させてくれます。

このジャンルをこき下ろしたいわけではありません。サンドボックス型シムは本来の目的においては優れています。インフラ、土地利用、ゾーニングの二次的な影響についての直感を養ってくれます。工業地帯を住宅地の隣に置くと地価が下がる。渋滞は道路の幅ではなく道路の階層構造から生まれる。こうした教訓は本物です。ただし、サンドボックスモデルには計画部門ほど大きな死角があります。統治上の摩擦をシステムそのものではなくノイズとして扱ってしまうのです。

敵対的モデル:都市を相手にする

NIMBY型のシティビルダーはこれをひっくり返します。あなたは資金、時間、投資家の忍耐を資源として持つデベロッパーです。相手は手続き主義の官僚機構です。裁量的な審査の公聴会、環境審査、近隣住民による不服申し立て、そしていつでも付きまとう訴訟の脅威。あなたの仕事は都市の幸福度を最大化することではなく、資金か投資家の信頼が尽きる前に、住戸の許認可を得て建設することです。承認の各ゲートは、建設予定地の政治的な性格によって重みづけされたサイコロ振りなのです。

メカニクス的には、これはシティビルダーというよりローグライクに近いです。1回のランがあり、資金か忍耐が尽きるとそのランは終わります。手続きのコンテンツは地形ではなく、プロセスそのものです。ここで取り入れる価値のある洞察があります。官僚機構は、読み解けて機械的に扱えるシステムであるということです。公聴会には待ち行列があり、不服申し立てにはタイマーがあります。各ゲートにはスループットと失敗率があります。目を細めて見ると、許認可のパイプラインは、過負荷のサービス群を通るリクエストそのものに見えてきます。リトライ、バックプレッシャー、そして時折落ちるパケットが、あなたの11か月を奪っていく。この記事を読んでいるバックエンドエンジニアなら、きっと仕事でこうしたシステムをすでに作っているはずです。ただし、もっと善意に満ちた動機で。

Factorioには、事務処理を生産レシピのツリーとして追加するMODがあり、人々はそれを冗談の種にしています。官僚的な滞留を片付けないとアセンブラが止まり、バイターが苦情フォームを手渡すために列を作る、というものです。冗談として成立するのは、ほとんど冗談になっていないからです。敵対的なプロセス型シムの遊び心地がまったく違うのは、待つことを中心的なリソースの問題にしているからです。サンドボックス型のシムでは時間はほぼ無料です。早送りすればいい。敵対的なシムでは、時間こそが相手側が奪おうとしているものです。拒否権ポイントにとって、遅延こそが最も確実な殺傷手段だからです。これはゲームの抽象化ではありません。住宅政治が実際にどう機能するかそのものです。プロジェクトを真正面から打ち負かすことはまれで、ただ待たせて、力尽きるのを待つのです。

各モデルが実際に捉えているもの

正直な比較をしましょう。どちらのモデルも都市についての「真実」ではありません。それぞれ異なる因果関係の層を捉えており、失敗のしかたも正反対です。

  • サンドボックス型シムは物理システムをよく捉える。交通、公害、地価、サービスの網羅範囲、密度がもたらすネットワーク効果。これらは連続した場や流れであり、グリッド上のエージェントベースモデルは、渋滞の崩壊やジェントリフィケーション圧力といった創発的な現象を本当に再現できます。
  • サンドボックス型シムは政治システムをひどく捉える。反対派を幸福度の数値に還元しても、権力のモデルにはなりません。少数の、組織化されて長く住み続けている人々が、拡散した多忙な多数派を支配しうるということを表現できないのです。これは地域の土地利用政治における最も重要な事実なのに。
  • 敵対的シムは拒否権ポイントをよく捉える。裁量的審査、不服申し立て、訴訟リスク、遅延という武器は、離散的で状態を持ち、攻略可能であり、メカニクスにぴったりです。このゲームは経験的な結果を正しく再現しています。すべてのプロジェクトが交渉になると、生き残るのは弁護士を抱える大手デベロッパーだけになり、住宅は減り、プロジェクトは大きくなります。
  • 敵対的シムは物理システムをひどく捉える。住戸を建ててしまえば、シムはその地区が実際に機能しているかどうかを気にしません。交通、学校、下水道は抽象化されるか無視されます。ゲームには勝てるけれど、機能不全の何かを建ててしまうこともできるのです。
  • どちらのモデルも反事実で失敗する。異なるルールのもとで存在しうる都市を見せることはできません。それこそが、政策に携わる人々が実際に議論している問いなのに。

最後の点は強調する価値があります。ここが、この比較がゲームの話から離れていく地点だからです。アップゾーニング法を巡って議論する人々、たとえば最近カリフォルニアで相次いでいる、交通の近くで地方の裁量を取り払う州レベルの優先法案について論じる人々は、反事実のシミュレーションについて議論しています。双方とも頭の中でモデルを走らせています。一方は、拒否権ポイントを取り除けば供給が解き放たれる都市を想定し、もう一方は、取り除けば価格を全く下げずに近隣の性格を壊してしまう都市を想定しています。拒否権ポイントの層を遊べるものにしたゲームは、その議論に実質的な貢献をします。雰囲気ではなく、仕組みそのものに向き合わせてくれるからです。プレイヤーが必要な8万2,000戸のうち4,000戸しか建てられずにランを終えたとき、得られる教訓は「デベロッパーは強欲だ」とか「近隣住民は利己的だ」といったことではありません。スループットはプロセスの性質であって、誰かの意図の性質ではないということです。

分割された場面:上では巨大な手がミニチュアの都市を並べ、下では人が果てしないゲートや回転式改札に向き合っている。
同じ都市、2つのモデル:上空には全能の手、地上には果てしなく続くゲート。

反対運動をモデル化するエンジニアリング

シミュレーション・エンジニアリングの観点から見ると、敵対的モデルが面白いのは、反対運動が異質なエージェンシーだからです。近隣住民は場ではありません。記憶、注目度、非対称な動機を持つアクターです。彼らをうまくモデル化するには、シティビルダーが通常使う道具箱とは別の部分からAIの手法を借りる必要があります。よく登場するパターンをいくつか挙げます。

  • ヒステリシスを伴う活性化閾値。ほとんどの住民は許認可の申請に関わりません。反対運動は、知覚された影響が閾値を超えたときに活性化し、一度活性化すると状況が改善しても非活性化しません。この非対称性はモデル化が容易で、現実のダイナミクスを再現する作業の大部分を担います。
  • キューに基づくプロセスゲート。各審査段階は、処理速度を持つキューです。遅延は悪意ではなく負荷から生まれます。これは現実に即しているだけでなく、このゲームの中心的な緊張感の源でもあります。計画部門全体を、いくつかのM/M/1キューとして表現でき、驚くほど正確に感じられる振る舞いが得られます。
  • 継続ダメージとしての遅延。維持費は毎月発生します。この一つのメカニクスが、手続き上の遅延をプレイヤーが目で見える圧力に変え、正しい戦略的適応を生み出します。デベロッパーは「当然認められる」用地に割高な金を払い、裁量審査の地区を完全に避けるようになります。
  • 記憶を持つランダムなショック。訴訟はお金を失わせるだけではありません。その地区の政治的な状態を変えます。永続的な地区の状態が、一回限りの出来事を経路依存に変えるのです。

中核となるループの最小限のスケッチは、次のようになるかもしれません。

class Project:
def __init__(self, units, district):
self.units = units
self.district = district      # has: opposition_level, backlog, discretion
self.stage = "application"
self.months_in_process = 0
def tick(self, month):
self.months_in_process += 1
# carrying costs: land, loans, staff. delay is the killer.
burn = self.units * 900  # $/unit/month while entitled is pending
if self.stage == "application":
if self.district.backlog < self.district.staff_capacity:
self.stage = "hearing"
self.district.backlog += 1
elif self.stage == "hearing":
self.district.backlog -= 1
p_appeal = min(0.85, self.district.opposition_level
* (1 + self.district.past_appeals * 0.2))
self.stage = "appeal" if random.random() < p_appeal else "entitled"
elif self.stage == "appeal":
if self.months_in_process % 6 == 0:  # appeals resolve slowly
self.stage = "entitled" if random.random() < 0.5 else "lawsuit"
return burn

このくらい小さなループでも、このジャンル特有の結果が再現されます。需要に関係なく反対の強い地区には何も建たない、デベロッパーは摩擦の少ない地区に集中する、許認可までの時間がプロジェクトの経済性を支配する、などです。仕様と創発的な振る舞いの間にあるギャップは、まさに仕様と実装のギャップで私たちが探ったものと同じです。誰もゾーニング規則に「住宅不足を生み出せ」とは書きませんが、ルールに従うだけで不足は自然に生まれてしまうのです。

創発的な振る舞い vs 台本化された難易度

ここで非常に重要な設計上の分岐点があります。反対運動を台本化するか、それとも創発させるか。台本化された難易度、つまりステージが進むにつれて都市が恣意的により妨害的になる方式は、バランス調整は簡単ですが、誤った教訓を教えてしまいます。システムは意図によって不正に操作されている、とプレイヤーに伝えてしまうのです。一方、キュー、閾値、維持費から創発する反対運動は、より真実に近く、ずっと居心地の悪い教訓を伝えます。個々のアクターがそれぞれ合理的に振る舞っていても、システムはこうした結果を生み出してしまう、ということです。9か月の滞留を抱える担当者は悪役ではなく、人手が足りないだけです。あなたの案件に異議を申し立てる近隣住民は漫画的なNIMBYではありません。彼は家が一軒あり、それが彼の純資産のすべてで、ゲームが彼にレバーを与えているから、そのレバーを引くのです。防御的エンジニアリングについての記事で論じたように、システムが得るのは設計者が期待した振る舞いではなく、インセンティブが許容する振る舞いです。

創発はまた、ゲームを議論の反対側の人にも分かりやすくします。YIMBYがこのゲームをプレイすると、なぜ個々のプロジェクトよりもプロセス改革が重要なのかを身をもって学びます。保存派がプレイすると、拒否権ポイントは悪いプロジェクトを選択的に止めるのではなく、十分に長いスケジュールを持つ全てのものを止めるのであり、それは無差別だと分かります。これはオピニオン記事で伝えるよりずっと難しいことですが、ランベースのゲームなら、40ターン目に維持費が血のように流れ出ていく様子を見るだけで伝わります。

遅延は、拒否権ポイントにとって最も確実な殺傷手段です。プロジェクトを真正面から打ち負かすことはまれで、ただ待たせて、力尽きるのを待つのです。

シリアスゲーム vs 風刺:どちらが勝つ場面か

このジャンルが私たちに突きつける本当の比較は、サンドボックス vs 敵対的ではなく、風刺 vs 本格的なモデリングです。NIMBYゲームは風刺です。パラメータはコメディと絶望のために調整されていて、実際の許認可のタイムラインに合わせて校正されているわけではありません。本格的なバージョン、つまりある市議会議員が練習ツールとして欲しいと言ったものは、ゲートのスループット、不服申し立ての確率、維持費を実際の許認可データに合わせて校正するでしょう。実際、一部の計画部門や研究者は、まさにこの目的で参加型シミュレーションやシリアスゲームを運用しています。ただし、たいていはプレゼン資料レベルの見栄えですが。

目的が注目と直感であるとき、風刺が勝ちます。校正された計画モデルをソーシャルネットワークで共有する人はいません。サンフランシスコがプロセスの山であなたを埋め尽くすブラウザゲームは、誇張が主張を運ぶからこそ共有されるのです。風刺は正確さのハードルも低いです。風刺が主張するのは大きさではなく方向性だからです。しかし、問いが「何を変えるべきか」になると、風刺は負けます。そのためには、退屈な方のバージョンが必要です。切り替え可能なパラメータ化されたルールです。モデルから裁量的審査を取り除き、スループットの変化を観察する。計画スタッフを倍にし、バックログが減っていくのを見る。この切り替えと観察のループこそが、ゲームが論評であることをやめて、政策の道具になる地点です。このジャンルの最良のバージョンは、両方のモードを出荷して、プレイヤーが二つを切り替えられるようにするでしょう。絶望を感じ、それから機械を直すのです。

ゲームが議論で論説に勝る理由

説明のためのシステムを作る人すべてにとって、より広い教訓がここにあります。論説は一つのメカニズムを主張しますが、遊べるモデルはそれを実演し、ユーザーに反証させます。住宅政治についての心的モデルが「誰かがもっと建てればいい」というものだとしても、敵対的シムを30分プレイすれば、年間の許可件数のグラフをいくつ見るよりも効果的にその考えを組み替えます。これは、シェルを自作することがmanページを読むより多くのUnixを教えてくれるのと同じ理由です。たとえおもちゃのシステムであっても、動かしてみると抽象概念が具体的になります。このゲームについてのHacker Newsのコメントは示唆に富んでいます。人々はすぐに、自分の街向けのバージョンを提案し始めました。義務的な野生動物の緩和措置を伴う高速鉄道向け、データセンター向けです。このパターンが一般化できるのは、拒否権ポイントの構造が一般化できるからです。順次的な承認ゲート、非対称な動機、コストとしての遅延があるところには、どこにでもこのゲームがあるのです。

さらに言えば、敵対的シムは工学的コミュニケーション全般で十分に活用されていないジャンルだと思います。エンジニアをこれで遊ばせて、組織の変更管理プロセスに慣れさせることを想像してください。変更をデプロイすると、CABレビュー、セキュリティ承認、凍結されたリリース期間の列に並ぶのを見ることになります。あなたの熱意が、人々がなぜシャドーITに手を伸ばすのかという理解に変わっていくのを感じるでしょう。聞き覚えがあるなら、それはレビューの層が増えるほどチームは遅くなるという私たちの主張と同じ直感です。その摩擦は、誰かがそれを押し通さなければならなくなるまで見えないのです。

おすすめ

では、サンドボックス型シムか、敵対的シムか。両方遊んでください。でももし何かを作るなら、敵対的な方を作りましょう。サンドボックスのジャンルは成熟していて、商用タイトルで十分に満たされており、その教訓(密度、ネットワーク、外部性)はすでに文化に浸透しています。敵対的ジャンルには、まだ開拓されていない設計空間と、本当の説明力が眠っています。もしあなたが手応えのあるサイドプロジェクトを探している開発者なら、よく知っている何かのプロセス層をモデル化してみてください。都市の許認可パイプライン、社内の調達の関門、ビザ制度などです。キュー、ヒステリシス付きの閾値、維持費を使い、遅延を敵役にし、結果は台本化せずに創発させましょう。数値は調整可能にして、懐疑的な人が自分の前提を検証できるようにします。おもちゃ版を作ることで、何年も議論を続けるより多くシステムについて学べるでしょう。そして、あなたのバージョンを遊んだ人もまた同じです。この小さなゲームがやってのけているのは、それです。通常は熱を生む議論を、いじれる機械に変えるのです。私たちの議論ももっと機械になるべきです。