「ニャイス!コード」は、5個のプログラムダイスを振り、出目を組み合わせて「プログラムコード」を組み立て、ネコを金ぴか魚へ導くボードゲームです。ループ、ジャンプ、デバッグ、メタ、シフト——ダイスの名前は、すべてプログラミングの概念から取られています。
けれども、このゲームに込めた一番の仕掛けは、ダイスの中だけにあるのではありません。ルールそのものを、プレイヤーが書き換えられるところにあります。
ルールを「与える」のではなく、「いじれる」ようにする
説明書には、こんな趣旨の一節を載せています。
ニャイス!コードはプログラミングの楽しさを体験できるボードゲームを目指しています。ルールを追加するとよりスリリングで楽しくなったり、逆に様々な不具合が発生してゲームが成り立たなくなったりします。どうやったらより面白く、不具合がない状態を作れるでしょうか?ぜひ、ルール作りにチャレンジしてみてください。
これは、ただ「自由に遊んでね」という呼びかけではありません。ハウスルールを作るという行為そのものが、プログラミングの本質的な体験になるように設計しています。
ハウスルール作成は、コードを書くことに似ている
新しいルールを一つ思いついて、ゲームに足してみる。これは、プログラムに一行のコードを書き加えることと、驚くほどよく似ています。
| ゲームで起きること | プログラミングで起きること |
|---|---|
| ハウスルールを作る | コードを書く |
| ルール同士が矛盾する | バグが生まれる |
| ゲームのバランスが崩れる | 動作が遅くなる・使いにくくなる |
| ルールを直して整える | リファクタリング・デバッグ |
バグは「失敗」ではなく、設計の手がかり
たとえば「ダイスの無刻印面が出たら振り直す」というルールを足したとします。一見うまくいきそうでも、実際に回してみると、いつまでも手番が終わらない状況が生まれるかもしれません。
これは、れっきとしたバグです。そして、バグが見つかったということは、ルールという「システム」のどこに無理があるのかが見えたということでもあります。失敗ではなく、次の一手を教えてくれる手がかりなのです。
直すことが、設計を学ぶことになる
矛盾が見つかったら、条件を一つ足してみる。バランスが崩れていたら、数値を少しいじってみる。そうやってルールを少しずつ整えていく作業は、プログラマーが日々おこなうリファクタリングやデバッグと、思考のかたちがそっくりです。
「ルールを作る/壊れる/修復する」を自分の手で繰り返すうちに、プレイヤーは一つのシステム全体を見渡す視点を手に入れます。これは、命令を一つずつ実行する「プログラミング的思考」より、さらに一段高いところにある設計の思考です。
余白を残す、ということ
私たちは、完成されたゲームを「与える」だけのものづくりをしたいわけではありません。プレイヤー自身がゲームに参加し、設計者の側に回れる余白を残したいと考えています。
ハウスルールを作る余地は、その余白のひとつです。遊んでいた人が、いつのまにかルールをつくる人になっている。バグに悩み、直し方を考え、自分たちのルールに名前をつける。その体験のなかには、プログラミング教育が本当に届けたかったものが、教材という顔をせずに、静かに立ち上がっています。
楽しいくせに、思考力が育つ。本気で遊べるくせに、何かが残る。ハウスルールという小さな仕掛けは、私たちが大切にしているこの感覚を、もっとも素直に体現してくれる場所なのかもしれません。