独自のコンピュータゲームを作る - TryEngineering

独自のコンピュータ ゲームを作る
TryEngineering - www.tryengineering.org 提供
レッスンの焦点
このレッスンでは、ソフトウェア技師がコンピュータ ゲームなどのソフトウェアを設計する方法に焦点を置きます。
生徒はチームに分かれて、複数の言語バージョンがあるフリー ソフトウェアを使用して、簡単なコンピュータ
ゲームを開発します。チームは、他のチームが開発したゲームを評価し、わかったことをクラスで発表します。
レッスンの概要
「独自のコンピュータ ゲームを作る」では、ソフトウェア技師
の仕事について学習します。また、生徒はチームに分かれて、
シンプルなフリー ソフトウェアを使用して、独自のコンピュー
タ ゲームを開発します。チームで、開発したゲームをクラスで
発表し、他のゲームを評価し、工学に関して体験したことに
ついて感想を述べます。
年齢
11-18 才。(注意: このレッスンでは、低学年の生徒に対して
はごく簡単なプログラミングまたはプログラムの編集、高学年
の生徒やレベルの高い生徒に対してはより高度なプログラミングを行わせることができます。)
目的
 ソフトウェア技師がコンピュータ ゲー
ムを開発する方法について学びます。
 製品の再設計プロセスについて学び
ます。
 工学チームが問題解決にどのように
取り組むかについて学びます。
 チームワークとグループ作業につい
て学びます。
習得内容
この学習で生徒は以下についての理解を深
めます。
 ソフトウェア工学およびソフトウェア
プログラミング
 製品設計と製品工学
 問題解決
 チームワーク
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 1/9
レッスン内容
生徒は、基本的なコンピュータ プログラミングおよびソフトウェア技師の仕事について学びます。生徒はチーム
に分かれて、複数の言語バージョンがあるフリー ソフトウェアを使用して、簡単なコンピュータ ゲームを開発し
ます。生徒は、自分のチームのゲームをテストします。また、他のチームが開発したゲームを評価します。
リソース/教材




教師用リソース文書(添付)
Game Maker チュートリアル(www.yoyogames.com/make/tutorials)
生徒用ワークシート(添付)
生徒用リソース シート(添付)
教科課程枠組みとの調整
添付されている教科課程の調整用シートをご覧ください。
インターネットでの参照資料(英語)
 TryEngineering (www.tryengineering.org)
 YoYo Game - Game Maker ソフトウェア(www.yoyogames.com/gamemaker/try)
 ITEA Standards for Technological Literacy: Content for the Study of Technology
(国際技術教育学会による技術能力の基準: 技術研究の教材) (www.iteaconnect.org/TAA)
 全米科学教育基準(www.nsta.org/standards)
 NCTM Principles and Standards for School Mathematics (学校数学の目標と基準)
(http://standards.nctm.org)
推奨文献(英語)
 『Game Creation For Teens』(ISBN: 159863500X)
 『Getting Started with Game Maker』(ISBN: 1598638823)
任意の作文
 他人がプログラミングしたソフトウェアを修正することに関する倫理的な問題について説明する簡単な
作文を書きます。「知的財産」は法的権利を意味する包括的な用語であり、特定の名前、紙媒体、記録
媒体、および発明の所有者に帰属します。自分が修正しようとしているソフトウェアの元の開発者に対
して金銭支払いなどをすべきかどうかについて、明確な見解を示してください。元のソフトウェアはあま
り売れなかったが自分が修正したバージョンはよく売れた、というケースについて考えてください。さら
に、この作文を基にして、修正に対する賛否および知的財産権の概念について活発な議論を行うこと
もできます。
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 2/9
独自のコンピュータ ゲームを作る
教師用:
教科課程枠組みとの調整
注意: このシリーズにおけるすべてのレッスン プランは、全米研究評議会により設定された全米科学教育基準
に準じ、科学教育者協会により推奨され、また該当する場合には国際技術教育学会による技術能力基準また
は国立数学教師評議会による学校数学の目標と規準に準じるものです。
‹全米科学教育基準 学年 5-8 (年齢 10-14 才)
教材基準 A: 疑問としての科学
この学習により、生徒全員は以下を習得します。
 科学的な質問をするために必要な能力
教材基準 E: 科学技術
5-8 学年における学習の結果、生徒全員は以下を習得します。
 技術設計能力
 科学技術についての理解
教材基準 G: 科学の歴史と本質
この学習により、生徒全員は以下を理解します。
 科学の歴史
‹全米科学教育基準 学年 9-12 (年齢 14-18 才)
教材基準 A: 疑問としての科学
この学習により、生徒全員は以下を習得します。
 科学的な質問をするために必要な能力
教材基準 E: 科学技術
この学習により、生徒全員は以下を習得します。
 技術設計能力
 科学技術についての理解
教材基準 G: 科学の歴史と本質
この学習により、生徒全員は以下を理解します。
 歴史的な観点
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 3/9
教師用:
教科課程枠組みとの調整(続き)
‹技術能力の基準 - 全年齢層
技術の本質
 基準 2: 生徒は技術の中心概念についての理解を養います。
 基準 3: 生徒は技術分野間および技術と他分野との関係についての理解を深めます。
技術と社会
 基準 7: 生徒は技術の歴史に対する影響についての理解を養います。
設計
 基準 9: 生徒は技術設計についての理解を養います。
 基準 10: 生徒はトラブルシューティング、研究開発、発明と革新、および問題解決における実
験の役割についての理解を養います。
技術社会に対応する能力
 基準 12: 生徒は、技術的な製品およびシステムを使用および保守する能力を養います。
技術社会
 基準 17: 生徒は情報技術と通信技術についての理解を深め、これらを選び使用する能力を養
います。
‹学校数学の目標と基準
数値と演算に関する基準
この学習により、生徒全員は以下を習得します。
 数字、数字を表す方法、数字と数字の関係、数体系を理解します。
 すらすらと計算し、適切な推定を行います。
関係に関する基準
この学習により、生徒全員は以下を習得します。
 数学的考えを互いに連携させて積み重ね、理路整然とした全体を作り出す方法を理解します。
 数学の範囲外の状況を認識して数学を適用します。
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 4/9
独自のコンピュータ ゲームを作る
教師用:
教師用リソース
‹ レッスンの目標
生徒はチームでコンピュータ ゲームを新規に開発することを通じて、工学に関する問題の解決方法を探究しま
す。また、基本的なコンピュータ プログラミングおよびソフトウェア技師の仕事について学びます。生徒はチー
ムに分かれて、複数の言語バージョンがあるフリー ソフトウェアを使用して、簡単なコンピュータ ゲームを開発
します。生徒は、自分のチームのゲームをテストします。また、他のチームが開発したゲームを評価します。
‹ レッスンの目的




ソフトウェア技師がコンピュータ ゲームを開発する方法について学びます。
製品の再設計プロセスについて学びます。
工学チームが問題解決にどのように取り組むかについて学びます。
チームワークとグループ作業について学びます。
‹ 教材
 生徒用リソース シートおよびワークシート
 インターネットまたはコンピュータの利用環境(インターネットに接続し
なくても、Windows コンピュータにフリー ソフトウェアをダウンロード
してインストールすることができます。また、このソフトウェアには複
数の言語バージョンがあります。)
‹ 手順
1. www.kidsprogramminglanguage.com から YoYo Games 社製の Game Maker ソフトウェアをダウ
2.
3.
4.
5.
6.
7.
ンロードし、複数台のコンピュータまたはラボにインストールします。これで、生徒がチームに分かれて
ゲームを開発できるようになります。無料の限定バージョンと低価格の上位バージョンがあります。無
料バージョンは、初心者が教室で使用するのに適しています。
チュートリアルは、www.yoyogames.com/make/tutorials で読むことができます。
生徒に生徒用参照シートを数枚配ります。これらはクラスで読むか、または宿題として読むように事前
に渡します。生徒はコンピュータ上でソフトウェアを使用する前に、プログラミング初心者向けのページ
を読む必要があります。
生徒を 2-3 人のグループに分け、1 グループに 1 セットの教材を渡します。1 グループの人数は、使
用可能なコンピュータの台数に合わせて調整してください。
ソフトウェア技師のチームとして 6-10 才児向けのコンピュータ ゲームを新規に開発することを説明し
ます。
各チームが簡単なゲームを開発し、クラスで発表します。
各チームは他のチームが開発したゲームを評価し、評価シートと感想シートに記入します。
‹ ヒント
このレッスンは、半年間の長期プロジェクトに拡大することができます。また、レッスンの内容を簡素化するため、
ソフトウェア開発者から提供されたデモ ゲームを作成または修正するよう生徒に指示することもできます。たと
えば space cleaner というゲームは、1 セッションの間に修正できます。生徒にゲームを修正させる場合、まず
既存ゲームを調べて、どのような修正を加えるかをチーム内で決めてから、計画内容を実行するように指示し
ます。
‹ 所要時間
45 分のセッション 1 回または 2 回。
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 5/9
独自のコンピュータ ゲームを作る
生徒用リソース
ソフトウェア工学: ゲームの歴史
‹ コンピュータ ゲームの誕生
パーソナル コンピュータ(PC)が普及(ふきゅう)するようになっ
たのはマイクロプロセッサが開発されてからですが、メインフ
レームとミニコンピュータは、遅(おそ)くとも 1960 年代にはコ
ンピュータ ゲーム用に使用されていました。初期のコン
ピュータ ゲームの 1 つは 1961 年に開発されました。開発し
たのは、マサチューセッツ工科大学(MIT)の学生だったマー
ティン・グレーツとアラン・コトック、および、MIT の従業員で
あったステファン・ラッセルです。彼(かれ)らは統計計算用の
コンピュータ上で Spacewar! を開発しました。右図のように、
このゲームでは、プレーヤーが操作する 2 台の宇宙船が中
央の星の周りを飛行しながら、相手を破壊(はかい)しようとし
ます。
PC ゲームの第 1 世代は、テキスト アドベンチャー(インタラ
クティブ フィクション)ゲームです。この世代のゲームは、プ
レーヤーがキーボードでコマンドを入力してコンピュータと対
話するものでした。1970 年代半ばまでは、ゲームは愛好家らによって開発され、『Creative Computing』や
『Computer Gaming World』などのゲーム雑誌を通じて配布されていました。これらの雑誌にはゲームのコー
ドが掲載(けいさい)されており、コンピュータに入力してプレーすることができました。これにより読者は、自作
ゲームを他のゲーム制作者に対して発表するようになりました。
‹ ソフトウェア技師の仕事
アプリケーション開発やシステム開発の分野で
働いているソフトウェア技師は、ユーザーの
ニーズを分析(ぶんせき)し、コンピュータ アプリ
ケーション ソフトウェアやシステムの設計、製
造、テスト、および保守を行います。ソフトウェ
ア技師は、さまざまな種類のソフトウェアの設
計と開発にたずさわる可能性があります。ソフ
トウェアの種類の例としては、オペレーティング
システム、ネットワーク配信用ソフトウェア、コ
ンパイラなどがあります。コンパイラは、ソース
プログラムをコンピュータ上で実行できる形式
に変換(へんかん)するソフトウェアです。プログ
ラミングやコード化では、ソフトウェア技師はコ
ンピュータが行う機能を 1 行ごとに指示します。
また、技術的な問題が発生した際に解決しま
す。ソフトウェア技師は高度のプログラミング能力を持っている必要がありますが、実際にコードを書く仕事より
も、アルゴリズムを開発する仕事やプログラミングに関する問題を分析して解決する仕事の方が中心です。
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 6/9
独自のコンピュータ ゲームを作る
生徒用リソース
ソフトウェア工学: アルゴリズム
‹ アルゴリズムの概要(がいよう)
数学、コンピューティング、言語学などの分野では、アルゴリズムとは、ある処理を完了させるための明確な指
示の有限のリストのことです。この処理の初期状態と終了状態は、あらかじめ定義されています。アルゴリズム
の概念(がいねん)は、数学的問題を解決するための手順を記録する手段として誕生しました。たとえば、2 つ
の数の公約数を探す問題や、2 つの数を掛(か)け合わせる問題などです。
この概念は、1936 年にアラン・チューリングのチューリング マシンおよびアロンゾ・チャーチのラムダ計算式に
よって明確化され、その後コンピュータ サイエンスの基礎(きそ)となりました。アルゴリズムの簡単な例としては、
フローチャートがあります。フローチャートは簡単に言うと、問題を解決するための論理的な一連のステップで
す。
‹ コンピュータ
アプリケーション
アルゴリズムは、コンピュータによる情報処理にとって不可欠です。コ
ンピュータ プログラムは本質的に、特定の処理を完了させるために
どのステップをどの順序で実行すべきかをコンピュータに指示するア
ルゴリズムであるからです。処理の例としては、請求(せいきゅう)書
の計算、通知票の印刷、予算分析などがあります。
アルゴリズムは厳密なステップの厳密なリストなので、ほとんどの場
合、アルゴリズムが機能するためには処理順序が非常に重要です。
通常、命令は明示的に列挙されており、先頭から末尾(まつび)に向
かって処理されるものとして記述されます。これは「制御(せいぎょ)フ
ロー」とも呼ばれます。
科学の各分野にはそれぞれ独自の問題があり、効率的なアルゴリズ
ムが必要になっています。また、ある分野での問題を他分野の人と
共に研究することもあります。
たとえば、検索(けんさく)アルゴリズム、並べ替(か)えアルゴリズム、
結合アルゴリズム、数値アルゴリズム、グラフ アルゴリズム、文字列
アルゴリズム、コンピュータ幾何(きか)学アルゴリズム、組み合わせアルゴリズム、機械学習、暗号理論、デー
タ圧縮アルゴリズム、解析(かいせき)手法などがあります。
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 7/9
独自のコンピュータ ゲームを作る
生徒用ワークシート: あなたは技師です!
‹ みなさんは技師のチームに分かれ、6-10
才向けのコンピュータ ゲームを新規に開発
するという課題に取り組みます。
‹ 準備
1. 生徒用参照シートを読みます。
2. 支給された基本プログラミング ガイドを読みます。
‹ 学習手順
1. チーム内で、ゲームのアイデアを出し合います。また、ゲームの名前も考えます。開発するゲームの説明を、
以下の空欄(くうらん)に 2 文で書いてください。この説明は、宣伝文として使える内容にします。
ゲーム名:
説明:
2. Game Maker ソフトウェアを使用してゲームを開発します。
3. 開発したゲームをクラス内で発表し、ゲームの内容を他のチームに説明します。また、他のチームが開発し
たゲームをテストします。
4. 自分のチームおよび他のチームが開発したゲームに関する、次の質問に回答します。
5. チームとして、わかったことと感想をクラスで発表します。
‹ 評価に関する質問
1. 支給されたゲーム制作用ソフトウェアを使用してゲームを開発するとき、ゲーム開発計画をどのように変更
しましたか?
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 8/9
2. ワープロ ソフトウェアまたはグラフィック ソフトウェアを新規に開発するのに、どのくらいの期間がかかると思
いますか? これらのソフトウェアを開発する工学チームのメンバーは何人ぐらい必要だと思いますか? その理
由は何ですか?
3. コンピュータ ゲームのプログラミング作業は、思っていたよりも簡単でしたか? それとも難しかったですか?
その理由は何ですか?
4. ゲーム開発時にどのような問題に直面しましたか?
5. クラス内で開発されたゲームのうち、最も好きなものはどれですか?
その理由は何ですか? どのような点が気に入りましたか?
6. このゲームをチームで開発するのは簡単でしたか? それとも難しかったですか? チーム作業でなかった場合、
自分で新しいデザインを作成できていたと思いますか? 個人作業に対するチーム作業のメリットは何ですか?
7. このレッスンを通じて、ソフトウェア技師の問題解決方法についてどのようなことを学びましたか?
独自のコンピュータ ゲームを作る
TryEngineering 所属 IEEE による作成
www.tryengineering.org
ページ 9/9