見出し画像

プログラム言語神経衰弱デザイナーズノート

はじめに

2018/10/08に開催された技術書典5にて、プログラム言語神経衰弱というカードゲームを頒布しました。このゲームをデザインするにあたってのプロセスをここに記したいと思います。

初期のアイデア

最初に神経衰弱の案を作ったのは7/7でした。当時は技術書典に出すためのゲーム案をいくつも出していたのですが、これもその一つでした。

自分がインスパイアされたのは「渡る世間はナベばかり」というボードゲームです。ワタナベのナベの漢字が微妙な違いでたくさんの種類があることを着目しそれで神経衰弱を作ったゲームで市販化もされています。

プログラムでもいろんな言語がありますが、よくある命令に関しては似ていて、でも部分的に違っているのがあります。代表的なものがif文とfor文だと思います。だいたいの言語にはこの命令がありますが、かなり似ていると思います。でもよくみると違う。

この似たプログラム達が書かれたカードを取り札にすると、面白い神経衰弱ができるのではないかと思いました。イメージしたのは「うわぁ、この言語のfor文とこの言語のfor文似てるから記憶が混ざったよ!」と言いながらプレイする風景です。

そこで各言語のif文とfor文を2枚ずつ計4枚入れたサンプルを作りました。採用した言語は最近の人気言語TOP10からといくつか自分の好みで12言語を選びました。

困ったのはCとC++とC#とjavaがほぼ同じだったことです。仕方がないのでifやforの間に書く部分で差をつけました。ここは基本的には変数を出力することで統一してみました。

また自分でサンプルを作っていても、自分が詳しくないswiftやgo、rubyなどは合わせるのが大変でした。そこですべてのカードの右下に言語名を入れることにしました。一致しているかどうかはそこを見てもらうことにしました。

テストプレイと改良

いったんサンプルを持ち込み、サークルのメンバーでテストプレイをしてみることにしました。遊んでみると意外と面白い神経衰弱。結構盛り上がって1プレイ終わりました。これはいけそうな手ごたえを感じました。

しかし一番カードを取ったメンバーから「実は右下の言語名を記憶してとっていた。」と言われました。よく見ないと見えないくらい小さくしたつもりだったのですが、若いそのメンバーは目がよく記憶力も抜群です。

テストプレイ用のカードはトレカ用のスリーブにいれていたので中のカードを右下の数字をみえないように折り曲げ、再度テストプレイをしてみました。すると今度はコードだけで記憶せざるを得なく、苦戦しながらも盛り上がりました。

しかしプレイヤー4人で、計48枚のカードが取り終わるまで30分以上がかかってしまいました。言語数が多すぎるのではないかということになり、みんなで考えた結果、3言語を取り除き36枚でプレイしてみました。今回はかなり時間も短縮され良い感じになりました。

最終的にはこの言語もほしい、などみんなで意見を交わし、10言語にすることにしました。またforとifだけではつまらないので4枚とも異なったプログラムにしたほうが面白いのではないかということになり、メンバーで何言語かずつ分担して記載するプログラム案を担当することになりました。

その後持ち寄ったプログラム案を並べてみましたが、それぞれの方針などに個性が出てしまっていました。それをとりまとめていきました。また、ifとfor以外の2枚はそれぞれの担当に何にするか任せていましたが、1つは関数宣言、もう1つはその言語特有のもの(見たらすぐあの言語だ!とわかる、思わず笑っちゃうもの)、というガイダンスを決めました。これを決めることにより難航していた表面のプログラム部分もすっきり決めることができました。

最後の問題

まだ1つ問題が残っていました。それは詳しい言語やわかりやすい言語はいいのですがなじみのない言語については言語が一致しているのかがわかりにくいことでした。実際第3者のテストプレイもはじめていたのですが、取った後に違っていたことが判明してそういう場合どうすればいいのか、という質問が来ていました。

これを防ぐために最初言語名をいれていたのですが、これを覚えてしまうのでダメ、というのはわかっていたのでランダムでユニークな数字をカードごとに記載し、その数字が何の言語か別紙に書くというのをやってみました。例えば1,8,15,28はPHPみたいな感じです。

これはこれで機能したのですが、数字をいちいち確認する感じがいまいちでした。この件についてメンバーで会議をしていたときに、ふと「バーコードを上下に印刷して2枚を上下に重ねて一致したらOKというようにしたらどうか」というアイデアが出ました。

すぐにみんな「これだ」と手をたたきました。すぐにサンプルを作成し次の日にまたテストプレイをしました。実際にバーコードを作り印刷したサンプルを作りました。

しかし普通のバーコードだとあわせるのに一苦労です。もう少しさっと合わせられ、さらに記憶しにくいようにする必要があります。バーコードを部分を0と1の数字にしてみたり、〇や△の記号にしてみたり、様々なパターンを試しました。

結果黒い帯にいくつか白い四角い抜きの部分があるようなものになりました。この部分がサンプル作成の工数が一番かかりました。

完成

やっとこれで完成しました。上下のバーコード部分は機能美でもあるし、デザインとしても良い感じです。表面が出来上がるずっと前に裏面のデザインはできていたのですが、それともいい感じにマッチしました。

これがプログラム言語神経衰弱が出来上がるまでのプロセスです。版下の完成まで2か月半くらいでしたが、良いものが出来たと満足しています。

ちなみにルールについても現在は通常の神経衰弱のルールですが、一時は1枚めくって1枚は残したままにする、とか1回だけ3枚めくれる特殊カードを各自最初もってる、とかいろんなルールを加えようとしてテストプレイもしました。結論として神経衰弱のルール自体は動かさないほうがいいだろうということになりました。シンプルイズベスト!

プログラム言語神経衰弱はBOOTHで購入できます

https://booth.pm/ja/items/1117078


この記事が気に入ったらサポートをしてみませんか?