パイソンを使ってグラフィカルで本格的なゲームをつくります

コースの内容

 f:id:bergerejp:20200207165426j:plain

ゲームプログラミングのエントリーコースでは、魔法陣・数独・三目並べ・オセロのゲームを作成しました。三目並べやオセロなどは白黒の石を使ったグラフィックとしてのゲームをメージされるかもしませんが、グラフィックを使用せず文字ベースのゲームとして作成しています。その理由はパイソンのコースで学んだ知識だけで作成でき、アルゴリズムを重視したためです。 今回のゲームコースは、グラフィックをどのようにゲームに適用するかを学習するコースです。言語としてはパイソンを使用しています。アルゴリズムはさらに難しくなります。

GUIとは

GUIとは、グラフィカルユーザインターフェース(Graphical User Interface)の略語です。GUIでは、アイコン、ボタン、マウスなどを使って直感的に操作をすることができます。現在のパソコンは、GUIを採用しています。これに対して、文字によるコマンド入力方式のインターフェースは、CUI(Character User Interface)と言います。今回のコースはGUIを学ぶコースです。

使用するツール

本格的なグラフィックのゲームを作成するには、UNITYなど色々な開発ツールがあります。これらを使うとたしかに見た目が美しく3次元のグラフィックゲームを作成することができますが、複雑で多くの機能を理解し使いこなすのは長い時間がかかります。小中学生がゲームプログラミングを学ぶ目的にそぐわないと判断しました。

パイソンでGUIを実現するためには、tkinter/kivy/pyqt/wxpythonなど色々なフレームワークがあります。フレームワークとはプログラム開発を効率化するための機能です。フレームワークを使うことによって少ないプログラミングで色々な機能やデザインを実現できます。今回のコースはtkinterを使ってゲームを開発することにしました。tkinterはパイソンの標準GUIフレームワークなのでドキュメントや事例も豊富ですので、GUIプログラミングを最初に学習するのに適しています。

レッスンの構成

グラフィックゲームプログラミングのコースは次のレッスンで構成しています。

■基本機能

グラフィックの基本機能を学習し、最後にタイマーのアプリを作成します

■スクラッチ

パイソンでスクラッチキャット(スクラッチの代表的なキャラクター)を動かし、パイソンで長い間親しんだスクラッチで学んだことを実現します。スクラッチの機能をパイソンで実現することによって、プログラムは階層的に構成されて動いていることなどプログラミングの理解を深めます

■迷路

カーソルキー(上下左右)を使って迷路をスタート地点からゴールまで動かすプログラムを作成します。その後アルゴリズムを発展させ、自動で迷路を自動で探索するプログラムを作成します。ただ自動といっても複雑な迷路を自動探索することは困難ですので、迷路には条件をつけていますので、すべての迷路に対応できる自動探索アルゴリズムを作成するわけではありません。それでも生徒たちは自動探索のアルゴリズムを試行錯誤しながら考えることができ、様々な工夫を凝らすし努力し続けることができます。

ブロック崩し

ブロック崩しは50ミリ秒の間に刻々とボールとブロックの関係を処理し表示し続けることに工夫を凝らします。ゲームとしての精度を上げるには、ボールがブロックの側面に当たった場合の動きなど様々なケースを考えることが必要ですが、いたずらに難解になることを避けシンプルなルールにとどめました。

コースの狙い

今回のコースで、グラフィックゲームの作り方やアルゴリズムに関する理解を深め、生徒たち自身が自分のアイデアを自由に表現できるゲームづくりができるようになると考えています。

 

次の投稿

www.bergere-blog.jp

前の投稿

www.bergere-blog.jp