Processingに決定!子供がScratchをマスターした後に学ぶプログラミング
こんにちは、アプリケーションエンジニアのなおしむです。
「子供がScratchをマスターしたら次は何をさせるべきか?」という問いに対して思考を整理しています。これまでに以下のような整理をしてきました。
子供がものづくりに興味を持ってるか、プログラミングに興味をもってるかを見極める
プログラミングに興味を持っている場合、自分の興味のままに進めるために身につけるべきスキルが5つある(詳しくは後述)
これまでのまとめはこちらです。
今回はScratchで得たゲームづくりの楽しさを継続しながら5つのスキルを身につけるために、Scratchの次にどんなプログラミング言語(ゲームエンジン)を選べば良いかを考えます。
自分の興味のままにプログラミングをするために必要なスキル
まず前回考えた子供が興味のままにプログラミングをするために必要な5つのスキルをおさらいします。
【プログラミング】プログラミングブロックではない文字によるコーディングができる
【実行環境】ビルドの仕方/エラーの読み方/デバッグの仕方などコーディング以外のことができる
【コンピュータサイエンス】メモリ管理などコンピュータサイエンスの知識がある
【教養】ゲームでボールを飛ばすときに使う物理/数学の知識がある
【情報収集】わからないことを自分でググれる(英語力も含む)
まずはこれらを身につけるためにプログラミング言語(ゲームエンジン)に求められる要素を考えます。
【プログラミング】プログラミングブロックではない文字によるコーディングを学ぶ
できるだけ簡単な言語が良いです。
逆にUnityなどで使われているC#はオススメしません。これはオブジェクト指向や関数型などの要素を含んでいて最終的には重要な考え方ですが、初めからそれらを理解するのは難しいため避けるべきだと思います。なのでまずは理解がしやすい手続き型の言語から始めるのが良いです。
【実行環境】ビルドの仕方/エラーの読み方/デバッグの仕方などコーディング以外のことを学ぶ
最初のうちはプログラムがうまく動作せずにたくさんつまずくと思います。なのでプログラム以外でつまづくことの少ない環境がよいです。
そのために実行環境はできるだけ簡単な方が良いです。イメージとしては、実行環境をインストーラーで簡単にインストールでき、作ったゲームを実行したいときは再生ボタン(Scratchでいうと緑のハタ)を押せばすぐに始められるようなものが良いです。
その意味ではWebブラウザで実行するWeb系の環境はオススメしません。
理由は実行時にPC内でWebサーバを立ち上げる必要があり、少しハードルが上がるためです。
【コンピュータサイエンス】メモリ管理などコンピュータサイエンスの知識を得る
ゲームづくりを通じてコンピュータサイエンスも学べると良いと思います。その意味でライブラリ等があまり高機能でない方が良いです。たとえばDefoldというゲームエンジンではMessage Passingという考え方で実装するのですが、いきなり学ぶには難しいと思います。
なので、Scratchと同様に必要最低限の機能がついた環境が良いです。
【教養】ゲームでボールを飛ばすときに使う物理/数学の知識などを得る
こちらもコンピュータサイエンスと同様に、やりながら学べると良いと思います。
たとえばゲームを作る際は物理エンジンと呼ばれるライブラリがあると、アクションゲームが簡単に作れて便利ですが、最初のうちはオススメしません。理由は物理を知らずに使うと「なんかよくわかんないけど動いた」という状態になり学びが薄くなるためです。まずは基礎的なことを学んでいき、慣れたところで高機能なライブラリを使うのが良いと思います。
【情報収集】わからないことを自分でググれる(英語力も含む)
わからないことがあったら自力で調べて解決する必要があります。なのでネットの情報は多い方がいいです。また日本語の解説があった方が楽ですし、子供向けの解説がある方がさらに楽になります。
いくつか試した結果、最適なのはProcessing!
以上のポイントを踏まえて以下の4つのゲームエンジンを試してみました。
Processing https://processing.org/
Love2d https://love2d.org/
Cocos2d-x https://www.cocos.com/en
libGDX https://libgdx.com/
それぞれの詳しい解説は次回以降にして、今回は結論だけ載せます。
これらのうち一番良かったのはProcessingです。
そして2番目はLove2d。
その他は少し難しいと思いました。
これまで考えてきたことを図にすると以下のようになります。
補足:子供の自主性を尊重する
少し補足します。
今回の結論としてオススメはProcessingでしたが、もしも子供がやりたいと思っているモノがあるなら、まずはそれをやらせてみるべきです。その上で、もしも難しくて辛そうな場合にPrcessingをやるのが良いと思います。
まとめ
興味のままにプログラミングをするために必要な5つのスキルを身につけるために最適な環境を考えました。結論はProcessingでした。
実は私の推しはLove2dだったのですが、Processingには勝てませんでした。
次回以降では「なぜProcessingだったのか?」を解説していきます。
今回も最後まで読んでいただきありがとうございます。
それではまた。
この記事が気に入ったらサポートをしてみませんか?