前回まで、子どもにプログラミングを教えるのに、ゲームを使うことが効率的ですよ、ということをお話ししました。
今回は、ゲームでプログラミングを学ぶことは役に立つのか?という疑問にお答えしたいと思います。
ゲームでプログラミングで何が学べるのでしょうか。他のテーマでプログラミングを学ぶのと、どのような違いがあるのでしょうか。
一般的なプログラミングの基本概念を学べる
ゲームプログラミングでも、一般的なプログラミングの基本概念を学ぶことができます。
基本的な概念にも色々ありますが、その中でも簡単な4つを見てみましょう。
- 繰り返し
同じ処理を何回も繰り返す仕組みです。キャラクタを動かし続けたりするのに必要なので、ゲームプログラミングでは一番最初に使います。 - 条件分岐
様々な条件に応じて処理を切り替えるのに使います。キャラクタの当たり判定をはじめ多くの処理に使うのでゲームには必須といえます。 - 代入
変数(データの入れ物)にデータを入れるのに使います。キャラクタの速さを変えたりするときに使うので、動きのあるゲームには必須の命令です。 - 処理のジャンプ
通常、プログラムは上から順に実行されるのですが、その処理の順序を変えることです。ゲームではプレイヤーの操作に応じて場面転換をするときなどに使います。
上記のような基本概念だけなら、30分くらいで作る簡単なゲームの中にすべて登場します。一度使っただけで概念を把握できるわけではないのですが、ゲームの基本的な仕組みの中で必ず使うものばかりなので、幾つかゲームを作る内にすぐに覚えられるでしょう。
このようなプログラミングの基本概念は、ゲーム用のプログラミング言語だけでなく、他のプログラミング言語にも共通するものです。これらを無理なく学ぶ事ができます。
高度なプログラミングの概念も身近に学べる
近代的なプログラミング言語には、オブジェクト指向という概念が備わっています。非常に簡単にいうと、もの(ゲームならキャラクタ等)を1つのまとまりとしてプログラミングすることで、より複雑な世界観を構築すことが出来る、というものです。
ゲームには、沢山のモノが出てきます。プレイヤーが操作するキャラクター、敵キャラクター、アイテム、仕掛け(例:スーパーマリオのレンガブロック)などなど。オブジェクト指向を使うと、これら1つ1つをバラバラのプログラムに分けることで、個々のプログラムはシンプルなままに、全体としては複雑なゲームを作る事が出来ます。
そんな便利な概念なのですが、この概念の習得は少し難しいことでも知られています。私の経験では、平均的なプログラマが未経験の状態からオブジェクト指向を理解し使いこなすまでに1-2年かかるくらいです。
習得が難しい理由は色々あると思うのですが、1つは、ゲーム以外のプログラミングでは、どのようにプログラムを分ければ良いのかが直観的に分からない、ということです。
逆にゲームプログラミングでは、ゲームに登場するキャラクタやモノごとに分けると言うことがスグに理解できます。そのため、ゲームプログラミングでは、オブジェクト指向を効果的・直観的に使える場面が多く、その習得がしやすいのです。