黒曜(@kokuyouwind)
黒曜
@kokuyouwind
株式会社Misoca
Rails/SREエンジニア
カードを使ってプログラム仕様を決定し、プログラミングするゲーム
毎回違う仕様が生成される
設計力・瞬発力・仕様の読解力
相互レビューして良いコードに投票
コミュニケーションゲームの側面
GitHubを使った脱出ゲーム(Web謎)
コマンドラインでコマンドを打って
謎解きをすすめる
「歴史を書き換えて謎を解く」体験
エンジニアの知識を使った謎解き
原作ものの謎解きに似た文脈共有
(技術の話はほとんどない)
FizzBuzzはいろんなアレンジが加えられる
割り切れる条件に使う数を変える
出力する文字列を変える
条件の種類を増やす
入力値を負の値に拡張する
etc...
ゲーム自体のルールが変わっていくことをゲームにしたら面白そう?
e.g. : ルール追加大富豪
単純な基本仕様に追加仕様が積み重なる
Programming Party
Gitの「歴史改変」自体がゲームっぽい
コミットを組み替えて正しい歴史にする
「間違った歴史に閉じ込められる」のは
脱出ゲームの設定にありそう
GitHubでWeb謎が配布できそう
あるリポジトリからの脱出
どういった層をターゲットにするか
そもそもニッチなので、絞りすぎると
誰にも遊んでもらえない
ターゲットを広くするほど
使えるネタに制約がかかる
言語を絞らず初級者想定くらいが無難?
適切な難易度の小さな課題を作る
小さな成功体験による動機づけ
知識を活かせると楽しい
いろいろなネタを使う
中高レベルの数学、パズル
エンジニアの基礎知識
マクロヒープモックフラグ
コンパイラマージクロージャ
クイックテクノロジーアセンブラ
インタプリタバブルクラス
整列の次を読め
マクロヒープモックフラグ
コンパイラマージクロージャ
クイックテクノロジーアセンブラ
インタプリタバブルクラス
整列の次を読め
「正答」を入れたときだけ出力を得られる
謎解きではよくあるやつ
単なる暗号化・復号化でよさそう
複数の「正答」に別の出力を出したい
同じ謎を複数回解くのもよくある
どうやる?
$ cat key
invalid
$ ./run.sh
error: invalid key
$ echo 'key1' > key
$ ./run.sh
これは正しいkeyです
$ echo 'key2' > key
$ ./run.sh
これは別の正しいkeyです
#!/bin/sh
cd `dirname $0`
file=$(md5sum key | cut -c 1)
openssl aes-256-cbc -d -in data/$file \
-pass file:key
(シェル芸感)
身近なものをテーマにして掘り下げる
想定層に合った小さな課題で肉付けする
ニッチなゲーム考えるのも楽しいよ
Programming Party Replay Book頒布中
BOOTHで売ってます(宣伝)