作りたいもの: 1歩ずつミッションをクリアすることでGitの使い方を覚えられるゲーム

増井さんの作りたいものリストを作ろうというスライドを見て「確かに『いつかやる』リストに入れてるだけじゃ発展しないから、公開しても問題ないものは公開したらいいなぁ」と思ったので早速やってみました。2つ目。

1歩ずつミッションをクリアすることでGitの使い方を覚えられるゲーム

なんちゃらVille系のゲームはどうして人の心をとらえるのか?


「小さい粒度のミッションが提示されて、それを達成すると次のミッションが表示される仕組み」は、頻繁に「達成感」という報酬を与えることで人の心をとらえるのだろうか?


そういえば僕が昔書いた、対話的インタプリタで1歩ずつ操作しながらPythonを覚えるコンテンツも評判が良かったなぁ。だったらgitの使い方も、1歩ずつ対話的にミッションをクリアしながら学べるようにしたら面白いんじゃないか?

学習ユーザのユースケース

実は既にgithubにおいてあったりする。一応遊べる。 https://github.com/nishio/academy/blob/master/README_ja.rst

  • 1: gitを学びたいユーザはこのリポジトリをクローンする
  • 2: git/test.pyを実行する。これが実行できたら「クローンする」っていう最初のミッションはクリアしたってこと
  • 3: test.pyが次のミッションを提示する。それを解く、を繰り返す。
  • 4: やったー、ミッションを全部クリアした!gitを理解できたよー

何が不足か?

  • 外見がかなりひどい
  • 達成したミッションの一覧が見られると幸せ?
  • 各環境で正しく動くことを確認するのは面倒(特にWindows)
  • ユーザが何を入力したか、を確認する手段がない(historyをチェックするとか?)
  • 現状、途中でつまずいた人を救済する方法が存在しない、というか何につまずいているかを僕が知る方法がない
  • いっそPythonでシェルを乗っ取ってしまえばいいのか?termios?
  • いま、ミッションを達成した時にCONGRATULATION!って出るだけで、すぐに次の問題が出ちゃう。ここではおめでとうメッセージと簡単な解説を出すだけにして、次のミッションを表示するのにもう1アクション挟んだほうがよさそう。
  • ミッションの案は色々あるんだけど、まだ作ってない https://github.com/nishio/academy/blob/master/git/README.rst