【思考しよう】答えにたどり着く道は1つじゃない【常識を疑え】
こんにちは。継続の錬金術士なおキーヌです。
ブログ毎日更新は89日目になります。
二日に続けて簡単なゲームの作り方を紹介しました。
上記の記事で第一回目はPONG GAMEの作り方を。
第二回目ではブロック崩しの作り方を言葉だけで説明しています。
何故コードを一切載せずにゲーム作り方を解説をしたのかは、
先日ツイートした内容を見てもらうとわかります。
今日は4000文字書きました。
プログラミングの記事ってコード羅列してるのが普通だけど全部文字で書いて作らせるってやったほうが成長しそう。
コードあったらコピペしちゃうもんね。
作り方だけ書いておいてコードは自分で書かせる。
コードの正解は一つじゃないということも伝えたい。
— なおキーヌ@継続の錬金術士見習い (@naokeyzmt) 2019年3月29日
このツイートで一番言いたかったのはプログラミングにおいて、
一番下の行の「コードの正解は一つじゃない」ですね。
答えを見てしまうとそれが正解になってしまう
題が結論になっちゃってますが、結論をもう少し詳しく説明すると
大体の人間は信じ込みやすい生き物なので正解を教えられると、思考停止状態に陥ってしまう。
ということです。
この状態になるとプログラミングするにおいて、成長の速度が一気に落ちます。
私がまだプログラミングの理解力がほとんどなかったころ、
ゲームを作るためのサイトを見ていて、掲載されているコードを見ても全然理解できませんでした。
当時はプログラミング習いたてだったのもあり、コードを真似て書いてみましたが
結局何をしているのかわからない部分があったりで結局記憶に残らなかったのです。
あの頃は継続力も何もなかったので直ぐに挫折してはやる気が出たらまた挑戦しての繰り返しでしたね。
今より未熟だった私にゲームの作り方だけを解説した記事をみせてやりたいです。
人間の脳の仕組みなのか、答えを見せてしまうとそれが当たり前という風になってしまい、
それ以外の発想が浮かばなくなってしまうのでしょうね。
常識を疑う、思考する技術といったものが養われていないとこの状態に陥りやすくなります。
日本人こそインド式の計算ドリルをやった方が良い
今思えば小学校の計算ドリル、答えを見まくってやってたのがよろしくないですね(笑)
インド式のように答えを書くのではなくて途中の式を埋めて答えに導くという教育の方が、
後々成長した時に柔軟な発想が出来るようになると思います。
プログラミングを理解すると、いかにそういう教育が大事なのかもわかります。
インド人に凄腕プログラマーが多いのはこういう教育で基礎が成り立っているのでしょうか。
日本でもプログラミング教育が取り入れられているようですね。
最近取り入れられた日本のプログラミング教育をちゃんと調べていないのですが、
実際にプログラミングするのではなく、プログラミングにおいての考え方の教育みたいですね。
勝手な想像としては、変数の概念や条件式を子供が分かりやすいように
実際の箱を用意したりして、視覚的に教育しているような気がします。
これは教師がどれだけちゃんと教えられるかにかかっていますね。
将来有望な子が理解力のない先生に当たってしまって
芽が摘まれてしまうと思うとちょっと悲しくなります。
この件について興味を持ったので今度じっくりと調べてみようと思います。
書籍もでているかもしれませんし、面白そうですね。
ゲームの作り方を言葉だけで説明する限界と対策
上記のことから、私のブログでは人間の言葉だけでゲームの作り方を説明していきた行こうと思います。
問題点としてはゲームが複雑になればなるほど冗長な記事になってしまうということです。
PONG GAMEやブロック崩しなんかはプログラミングじゃなくてスクリプティングの領域で作れちゃうので
細かく切り分けて説明できますが複雑なゲームになったときに同じことをしていると
リストだけでめちゃくちゃスクロールが増えてしまいます。
複雑なゲームの場合はゲームそのものを分解するのではなく機能1つを切り分けて
その機能の分解して解説するという感じにした方がよさそうですね。
例えばRPGでのNPCとの会話だと
- NPCを設置
- NPCに触れると会話フラグを建てる
- 会話フラグが立った時にメッセージウィンドウを表示する
- プレイヤーのキー操作をメッセージ送りのみに制限する
- NPCのIDを見て表示するテキストを呼び出す
- テキストが多い時はメッセージ送り機能を実装する
- テキストを全部表示したらメッセージウィンドウを消す
- 会話フラグを消してキー操作を元に戻す
といった感じでしょうかね。
「NPCを設置」について少し言っておくと
これだけで画面にスプライトを設置、スプライトテクスチャを適用、話すためのアタリ判定を付ける等
短い文字にたくさんの処理が含まれています。
こういったときはあらかじめ「NPCをマップに設置する」という記事を1つ作ろうと思います。
記事数稼ぎと言われてしまえばそれまでですが、過去の私にはそういった記事があればとても助かったと思います。
もしかすると私みたいに理系でもないけどゲームプログラマーになりたいという人が一人ぐらいは居ると思うので
その人が喜んでくれる記事になれば幸いだと思っています。
それでは。