プログラミングとゲーム
tl; dr
プログラミングはそれ自体が面白い
初手から「世の中に存在しないものを作らせる」のはやめろ
プログラミングを組み込んだゲームをプレイさせることで,「何をすればいいのか」という疑問に対して課題を与えることができる
前書き
プログラミング単体では何もできるようにならないので,モチベーションがわかずに挫折するケースが存在する
基礎的な構文は理解したが「で,何ができるの?」となって終了するやつ
世の「プログラミング教育」はWebフレームワーク,ゲームエンジンの使い方と一緒に教えることでこの問題を回避しようとしている?
「プログラミングをやるとゲームが作れるようになるよ!」という方向でモチベーションを作るアプローチ
しかし「どんなゲームを作ればいいのかわからん」となってしまうという点ではあまり改善がない
学ぶべきことが増えるだけ→逆効果?
提案
ゲームの中にプログラミングを組み込むことで「で,何ができるの?」という問題を解決できるのではないか
「ゲームを作らせる」ではなく「ゲームをプレイさせる」
ゲームをプレイするという明確な目的を与えることで「で,何ができるの?」という問に対して課題を与えられる
課題の解決自体が世の中の役に立つ必要はない.無意味なことでも良い.
どのようなゲームを作るのか?
まず面白いことが大事
面白くないと遊ばない
面白さがプログラミングをすることから生まれていることが大事
ゲームプレイ10分ごとにプログラミングの課題が出てくるとかは最悪
自動化を楽しむゲーム
自動化はプログラミングの醍醐味の1つ
「手動でもできる課題」を与えておき,マウスのクリックとかで操作できるようにしておく
プログラムを書くことで部分的に自動化できるような仕組みを入れる
全部自動化しないと上手くいかないような組み込み方は初心者に対するハードルを挙げてしまうのでダメ
自動化を進めると利益が生まれるようにする
自動化要素のある既存ゲーム
資源を採掘して加工して機械を作り,作った機械でさらに効率よく資源を採掘し... というループをひたすら回すゲーム
一番最初は手動で採掘・加工を行うが,徐々に自動化を進めることで最終的には完全な自動化が可能になる
厳密には資源は枯渇しうるので採掘場を変える必要が出てくるし,モンスターの退治とかはある程度手動でやる必要がある(自動化もできる)
しかし
プログラミングはそもそも創造的な活動である
創造の余地をなくしたプログラミングが面白いかというと…
そもそも創造の余地をなくしたプログラミングって実現可能なのか?
程度問題であるという話かもしれないが…