• 寺田 秀弥

パイソンで誰もが知っているゲームをつくります


はじめに

2020年1月に岡崎教室でゲームプログラミングのエントリーコースを開講します。

パイソンを使って魔法陣、数独、三目並べ、オセロのゲームを作成するコースです。


子どもプログラミングの本来の目的である、論理的思考・創造性・問題解決力を高めることを実現するために、スクラッチ・パイソンに続くコースを、どのような内容にするか長い間考えていました。


プログラミング言語はあくまでもツールにすぎません。プログラムを開発することが、論理的思考・創造性・問題解決力を高めるということに異論はないと思います。ただ開発には色々な種類があります。子どもたちの開発対象として考えられるものは、大きく分けて数学や理科など勉強に関係するものとゲームと考えることができると思います。ベルジェールでは、12月にパイソンのアドバンストコースを卒業する2人の生徒がいます。彼らに確認をしてみると2人ともゲーム開発をしたいとのことでした。生徒たちにとってゲームプログラミングは関心が高い対象なのでしょう。そこでスクラッチ・パイソンに続くコースはゲームプログラミングにすることにしました。


ただゲームと言っても子どもたちが普段目にするのは、開発費用を何億、何十億とかけて開発したものがほとんどですから、そのイメージを持ってゲームを開発しようとしても無理があります。どのようなゲームを教材にしようとしたかその経緯を整理したいと思います。


 ゲームプログラミングで何を学ぶか 


スクラッチでビジュアルという力を借りながらプログラミングの考え方を学び、パイソンでは正統で本格的なプログラミングの方法を学びました。繰り返しになりますが、子どもプログラミングがめざしているのは論理的思考・創造性・問題解決力です。

ゲームプログラミングは、プログラミング言語の学習では経験できない様々なことを学ぶことができます。企画、設計、テスト、デバッグなど開発全体の手順の流れが理解できることは言うまでもありません。対戦の方法、エラー処理、処理スピード、ユーザーインターフェイスなど、ゲームつくりの中で広い視点で深く考えて工夫することを学びます。「ゲームを面白くするには」「使いやすくするには」「処理スピードを早くするには」など、みずからに問いかけ、リアルタイムで確認にしながら改善を繰り返すことを体験します。この点こそ子どもプログラミング学習の原点であると考えています。


どんなゲームを作成するか


自由な発想でゲームのシナリオを考えゲームを開発することが一番望ましいことは言うまでもありません。ただゲーム作りの未経験者にとって新しい発想でゲームのアイディアを考え出すことは思った以上に大変なことです。またゲーム作りに必要な開発スキル、開発ボリュームをイメージできない初心者は夢物語を考えてしまうことになりかねません。そこで何か枠組を作ってそこの中でまずは試行錯誤できるゲームつくりから始めるのがいいのではないかと考えました。


ゲームを作成するソフトウェアを何を使うか 


ゲームにはドラゴンクエスト、スーパーマリオ、ドラゴンクエスト、ポケットモンスターなどがあります。これらのゲームはゲーム用のソフト使って開発をします。例えば多くのゲーム会社で採用されているソフトウェアにUnityがあります。unityを使えば確かにビジュアル的に美しいゲームを作成できますが、その前にUnityというソフトウェアの多くの機能を理解し使いこなす必要があり、またそのためには言語としC#やJavaをマスタしなければなりません。つまりゲームを作る前に長い間ソフトウェアを習熟する期間が必要となります。パイソンを学習したばかりの生徒にとって、売れるゲームを作ることが目的ではなく、論理的思考・創造性・問題解決力の育成が目的ですのでunityなどのゲームソフトは選択しませんでした。


次にパイソンでプログラミングを学んできたことから、パイソンでゲームを開発することにしました。そこで問題となるのが見た目の問題です。ゲーム作りには見た目の美しさを考えるとグラフィックユーザーインターフェイス(GUI)を使いたいと誰もが思います。パイソンは、Pygame,Tkinter、PyQt、PyGTK、Kivy、wxPythonなど様々なGUIのライブラリが用意されています。GUIのライブラリーを使ってグラフィックのゲームを作成するためには、unityほどではないのですが相当時間をかけて学習する必要があります。生徒たちにとっては、まだハードルが高い気がします。


ゲーム選択の条件


そこで次の条件のもとでゲームプログラミングのカリキュラムを作成しました

 ・パイソンのコースで学んだスキルでほとんど作成できる

 ・グラフィックではなくキャラクター(文字)ベースで作成できる

 ・アルゴリズムを考えることができる

 ・わかりやすく面白い


このように考えて、パイソンを使って魔法陣、数独、三目並べ、オセロの4つのゲームを作成するコースとしました。


生徒への期待


スクラッチのコースを初めてリリースした時、生徒たちが受け入れてくれるか不安でした。パイソンのコースの時もそうでした。小学生が本当にアルファベットを使用してキーボード入力が必要なパイソンを好きになれるかそしてプログラミングが嫌いにならないのか。2年間生徒たちにプログラミングを教え続けた結果、そのような不安は消え去りました。生徒たちは想像以上にプログラミングを理解し使いこなしてくれるようになりました。


ゲームプログラミングは言語の学習と異なり、子どもプログラミングの本来の目的に旅立つ出発点です。生徒たちが受け入れてくれるのか不安もありますが一方で期待もしています。ゲームをプログラミングする中で論理的思考・創造性・問題解決力を高め、主体的に学ぶ姿勢を自分のものしてくれることを望んでいます。