• 検索結果がありません。

ゲームメカニクスを通じたプログラミング教育実践 Programming Education Practice through Game Mechanics

N/A
N/A
Protected

Academic year: 2021

シェア "ゲームメカニクスを通じたプログラミング教育実践 Programming Education Practice through Game Mechanics"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

ゲームメカニクスを通じたプログラミング教育実践 Programming Education Practice through Game Mechanics

藤田 和久 FUJITA, Kazuhisa

東京マルチメディア専門学校

長 慎也 CHO, Shinya

明星大学情報学部

要旨

著者(藤田)はこれまで,コンピュータゲームの作成技法や,ゲームメカニクスを大学・専門学 校などで教えてきた.専門学校では,ゲームクリエイターを育てることを目的とする学科での講義 が多い.一方で,本学を含めた大学の情報学部では,ゲームクリエイターは将来なる職業の選択肢 の1つではあるものの,それを主目的に教えることはしない.そのような違いがあっても,ゲーム 制作で必要とされる技術の中には,情報科学で学ぶべき内容の多くを網羅している.

著者は特に,「ゲームとは何か」という根本を学習者に考えさせ,「ゲームはプログラムで動いて いる」という本質を理解し,そこから独自のアイデアでゲーム制作をしてもらうために「ゲームメ カニクス」という授業も実践している.このような考え方は,ゲームに限らず,システムを構築す る上で重要な概念と考えられる.本稿では,これまでの筆者による授業実践を,本学(情報学部)へ の授業実践に展開する可能性を述べる.

1

ゲームを題材とした授業における課題

これまで,本学部(明星大学情報学部)においてもゲーム作りを題材にしたプログラミング学習を展 開してきた.

2018

年度までのカリキュラムにおいて,

CS

コース

3

年前期の「情報学実験

I

」では,「

Android

ア プリケーション開発実験」というテーマがあり,

4

回のテーマのうち最後の

2

回では,

Unity

を用いた ゲーム開発を行う.また,同年後期の「情報学実験

II

」では,各教員が設定したテーマに応じて実験を 行うが,著者(長)のテーマでは,著者自身が開発した

Tonyu System[1]

というゲームエンジンを用い たゲーム開発を行う.

いずれの実験においても,ゲーム開発に先立って,ゲームのアイデアを計画させるための計画書を作 成する.例えば,情報学実験

I

において,受講者に配布している資料を図

1

に示す.

この計画書には「『改造のヒント』に追加してほしいこと」という項目がある.『改造のヒント』は,

自分のアイデアを実現するために必要なプログラムのヒントを載せた

Web

ページである.

しかし,学習者の提出してくるゲームの計画書を見ると,多くの学生で似たようなゲームの内容を書 いてくることが多い.有名なゲームや,確立されたゲームジャンルそのものの内容が多くて,独自のア イデアを盛り込んだものは少ない.

このように,独自のゲームのアイデアが生まれにくい原因として,オープンワールドゲームの影響が あると考えられる.オープンワールドなゲームとは,ゲームにおける明確な目的が与えられておらず

「ゲームの中で何をしてもよい」という世界で,自由に活動をしてもらう趣旨のゲームである.

しかし,オープンワールドなゲームが「ゲーム」であるという感覚でいると,ゲーム全体のルールや プレイ目的があいまいになってしまい,ゲーム内に組み込まれている個別の活動は,きちんとプログラ ムに作りこみがされてこそ行えるものである,という本質が見えにくくなってしまっている一因になっ

(2)

1

「情報学実験

I

」ゲームの計画書(左)改造のヒント(右)

ている.

例えば「木になっているリンゴをとる」という単純な活動を考える時でも,「木」や「リンゴ」などの オブジェクトの存在や,「リンゴ」を「とる」というアクションの定義など,様々なロジックを入れな ければならない.しかしながら,プログラミングの概念をあまり知らない学習者は,漠然と「リンゴは とれるようにすればいい」と思っても、その具体的方法までは考えが及ばない傾向がある.

このように,ゲームは,学習者にとって身近なものであるものの,その本質について学習者が十分に 理解していない可能性がある.そこで,あらためて遊びとしてのゲーム作りとそのシステム化の必要性 に気付かせる必要がある.本稿では,著者(藤田)がこれまで専門学校などで行ってきた「ゲームメカ ニクス」という授業,およびプログラミングの授業を解説し,それを通して,本学におけるゲームを題 材にした授業における課題を解決する可能性について探る.

2

ゲームメカニクス

「ゲームメカニクス」は,東京マルチメディア専門学校ゲームクリエイター科において,

1

年生後 期

(10

2

)

に開講された全

15

回の授業である(以降の節に登場する授業も同科で行われたもので ある).

資料の構成を表

1

に示す.まず,コンピュータゲームに限らず「ゲーム」というものに含まれる要素 をモデル化した「

MDA

フレームワーク」

[2]

について解説している.これは,ゲームの仕組みを構成す る「

Mechanics

」ゲームの動きを表す「

Dynamics

」そこから得られる感覚・感情「

Aesthetics

」という

3

つの要素について,実在する(非コンピュータ)ゲームを例にとって解説している.

それに続く「ルドロジー」の章では,まず「遊び」を構成する要素

[3]

として図

2

のような「不確定」

(3)

1

「ゲームメカニクス」目次

単元

MDA

フレームワーク ルドロジー(

1

)遊びの分類 ルドロジー(

2

)ゲームの分類 ルドロジー(

3

)パズルの分類 ルドロジー(

4

)ボードゲームの分類 ルドロジー(

5

)カードゲームの分類 ルドロジー(

6

)球技の分類

メカニズム(

1

)ゲームにおけるコンピュータの役割 メカニズム(

2

)確率

メカニズム(

3

)乱数 メカニズム(

4

)物理挙動 メカニズム(

5

)ゲーム内経済 メカニズム(

6

)ゲーム理論 ゲーミフィケーション

2

ゲームメカニクス教材:「遊び」の定義

「ルール」などの要素を挙げ,続く節においては,パズル,ボードゲームなど,各ジャンルのゲームの 分類を行っており,それぞれのゲームにおける「遊び」の要素を考察している.例えば「球技」の項目 では「未確認性発生要因」「競争課題」などが各球技にどのように取り込まれているかを解説している.

最後に,「メカニズム」の章では,まず図

3

のように,ここまでに紹介したゲームをコンピュータ上 で実現するために,コンピュータはどんな役割をしなければならないか,という視点を加え,具体的な アルゴリズムへの言及も行っている.例えば,図

4

のように疑似乱数生成のアルゴリズムや,ゲームに おける代表的な物理運動であるジャンプのアルゴリズムなどを解説している.

この授業を受講した後,受講者たちが考案したゲームの提案書の例を図

5

に示す.「ロボハーツ」は,

「ゲーム内で進化するパズルアドベンチャー」を謳い,ゲーム開始当初の色も音もない状態から,セン サーとなるパーツを探し入手する事でロボットが機能アップするというゲームシステムを採用し,ゲー ム内でプレイヤーが得られる報酬が,ありきたりなコインやポイントなどではなくプレイヤー自身が

(4)

3

「ゲームメカニクス」教材:コンピュータの役割

4

「ゲームメカニクス」教材(左:乱数発生の原理,右:ジャンプ)

(5)

5

受講者のゲーム提案書の一部(左:「ロボハーツ」右:「越後酒コレクション」)

ゲームを体感するためのインタフェース

(

視覚、聴覚、触覚

)

であるというユニークなアイデアのゲー ムである.また「越後酒コレクション」は、単にゲームに止まらず「ゲームを核として地域復興を図り たい」という壮大なテーマを秘めた作品である.このようなアイデアを生むことができたのは,「ゲー ムが何であるか」という本質をゲームメカニクスを通じて学んだことが一因と考えることができる.

3

プログラミング

著者

(

藤田

)

は,ゲームデザインの授業に加えて,プログラミングの授業も行っている.もともと,こ れらはゲームを作る技術を学ぶために作られたものであるが,情報学部の授業にも応用可能であると考 えられる.

3.1

ゲームエンジンを用いたゲーム開発

まず,

1

年前期においては,

Unity

を用いた簡単なゲームが開発できるようになることを目指す.そ のために必要となる,プログラミングの基本的な考え方を学ぶ授業として「

C#

プログラミング」およ び「ゲームプログラミング

I

」という授業を並行して行う.教材の一部を図

6

に示す.「

C#

プログラミ ング」の単元は「変数」「制御構造」「オブジェクト指向」などであり,これらは情報学部の授業でも共 通して学習するものである.

一方「ゲームプログラミング

I

」という授業では,

Unity

でのゲーム開発を学ぶ.

Unity

では大半の作 業を

GUI

で行うことができるが,

GameObject(

ゲーム中に動作するキャラクタ)の動作については,

スクリプトと呼ばれる

C#

プログラムを記述して定義する.

これら

2

つの授業を並行して行うことは,特にオブジェクト指向に対しての理解を深める効果が期待 される.先述した通り,ゲーム内に出て来るキャラクタを「

GameObject

」として捉えることで,オブ ジェクト指向におけるオブジェクトの概念を学習者が身近なものとして理解できる.また,そのオブ ジェクトにメソッドなどを用いて振る舞いを定義するという点も,キャラクタに何らかの動きを与え る,ということを通じて,プログラミング経験の浅い学習者でも容易に理解できると考えられる.

(6)

6 1

年前期プログラミング教材(左:「

C#

プログラミング」,右:「ゲームプログラミング

I

3.2

ゲームエンジン開発

Unity

内で記述するスクリプトは,

Unity

が用意しているフレームワーク内で動作するものであり,

Unity

が最初から用意している各種オブジェクトに対するメソッド呼出を行うだけで,プログラミング

の知識があまりなくても,ある程度のゲームを作成することが可能である.しかし,それだけではゲー ムの深いメカニズムを知ることにはならず,独自のルールをもったゲームを考案し,実装する,という ことにはつながりにくいと考えられる.

そこで,

1

年後期の授業「ゲームプログラミング

II

」では,ある程度

Unity

のプログラミングに慣れ た段階で,ゲームエンジンが処理していた内容を自らプログラミングするとどうなるか,という切り口 でライブラリの制作を見本的に行う.またそのライブラリを使って簡単なゲームを作る実習を行う.

授業の内容を表

2

に,使っている教材の一部を図

7

に示す.この図では,ゲーム起動時にウィンドウ を開くための処理を示している.ゲームエンジンではウィンドウを開く処理はプログラムとして明示的 に書かなくとも,自動的に開かれた状態になっているため,このような処理を意識することはない.こ の後に続く画像の表示やメインループなどの単元も,ゲームエンジンが処理しているものをあえて自作 させるようにしている.

これらの活動を通じて,個々に自分にとって使い勝手の良いライブラリを作らせ,それぞれのゲーム 開発に活かすといった流れにつなげていく狙いがある.

(7)

7

「ゲームプログラミング

II

」教材

2

「ゲームプログラミング

II

」内容

単元 内容

I

ウインドウ ウインドウを開く,タイトル・サイズなどの設定

II

イメージファイルの描画 画像の表示,サイズ指定,重ね合わせの処理など

III

スプライト 画像の移動・アニメ,クラスの定義,メインループ,当たり判定など

IV

イベント キー入力の取得など

V

マップとキャプション 背景の表示,スクロール,テキスト表示など

VI

シューティングシーン シューティングゲームの製作

VII

落ちゲー リアルタイムなパズルゲームの製作

(8)

4

関連研究

コンピュータゲームを通じて情報科学を俯瞰的に捉える取り組みとしては,長瀧による授業実践

[4]

が挙げられる.この実践においては,コンピュータゲームが常に「計算機の仕様や能力の限界との戦 い」をしてきたことから,「コンピュータの仕組みが透けて見えやすい」ことに着目している.例えば,

特に

80

年代頃のゲームにおいては,キャラクタの各種パラメタの上限値が

255(2

8

1)

などの

2

進数 に由来する数値になっていたり,その値を超えたときに思わぬ動作が起きたりする(強いはずのキャラ クタが急に弱くなる,予期せずしてゲームオーバーになるなど)理由について,コンピュータ内のデー タ表現を絡めて説明を行っている.また,本稿で取り上げた授業「ゲームメカニクス」の特に「メカニ ズム」の章に関連するアルゴリズムの説明についても同様の解説を行う回を設けており,図

4

などで取 り扱っているアルゴリズムも紹介されている.

一方,この実践は「一般情報教育」という枠組みの中で行う授業のカリキュラムであり,実際にゲー ム制作に携わることを目指す学生や,ゲームではないがコンピュータ上のシステムを開発・運用する職 業を目指す情報学部の学生においては,実際に(ゲームを含めた)システム設計やプログラミングの実 習を伴うことも必要となってくる.そのため,ゲームの詳細なメカニズムを知り,実際に作成してみる ことが,ゲームだけでなく,コンピュータシステムを知る有用な手がかりであると考えられる.長瀧 は,「ゲーム」の定義を「娯楽を主目的として利用する計算機またはその上で動くプログラムであり,テ レビなど映像や音声を出力する装置を用い,操作するものとの双方向のやりとりで出力される映像や音 声が変化するもの」としている.この中から「娯楽」という部分を他の目的に置き換えるだけで,ほと んどのコンピュータシステムがこれに当てはまると考えられることからも,ゲームを切り口としてコン ピュータや情報科学を学ぶことは,学習者の身近で親しみやすい題材で,効果的な学習ができると期待 される.

5

まとめ

本稿では,ゲーム制作を目指す学習者向けに作られた授業の教材とその実践例を紹介した.

ゲームメカニクス,ゲームエンジンを用いたゲームプログラミング,さらにはゲームエンジン自身の 構造の理解という流れの授業を通じて,「ゲームはプログラムで動いている」という原則を学習者に伝 えるとともに,独自のゲームのアイデアを着想させ,それを実現するための素養を身に着けさせること ができると考えられる.

また,ここで扱っている内容はゲーム制作にとどまらず,他のコンピュータシステムにも応用可能な 事項が多く,これらの授業で扱っている内容を(ゲーム制作が主目的ではない)情報学部における授業 に取り込むことで,学習者に興味を喚起させつつ授業が行えると期待できる.

参考文献

[1]

長島和平

,

長慎也

. Tonyu system 2

ゲーム制作を通じたプログラミング学習に適したフレームワー ク

. Technical Report 2,

明星大学大学院情報学研究科

,

明星大学大学院情報学研究科

, mar 2015.

[2] Robin Hunicke, Marc Leblanc, and Robert Zubek. Mda: A formal approach to game design and game research. AAAI Workshop - Technical Report, Vol. 1, , 01 2004.

[3]

霧生和夫訳

R.

カイヨワ

/

清水幾太郎

.

遊びと人間

.

岩波書店

, 1970.

[4]

長瀧寛之

.

コンピュータゲームを通して情報科学を概観する一般情報教育の授業手法の提案と評価

.

情報処理学会論文誌

, Vol. 54, No. 1, pp. 2–13, jan 2013.

図 1 「情報学実験 I 」ゲームの計画書(左)改造のヒント(右) ている. 例えば「木になっているリンゴをとる」という単純な活動を考える時でも, 「木」や「リンゴ」などの オブジェクトの存在や,「リンゴ」を「とる」というアクションの定義など,様々なロジックを入れな ければならない.しかしながら,プログラミングの概念をあまり知らない学習者は,漠然と「リンゴは とれるようにすればいい」と思っても、その具体的方法までは考えが及ばない傾向がある. このように,ゲームは,学習者にとって身近なものであるものの,その本
表 1 「ゲームメカニクス」目次 単元 MDA フレームワーク ルドロジー( 1 )遊びの分類 ルドロジー( 2 )ゲームの分類 ルドロジー( 3 )パズルの分類 ルドロジー( 4 )ボードゲームの分類 ルドロジー( 5 )カードゲームの分類 ルドロジー( 6 )球技の分類 メカニズム( 1 )ゲームにおけるコンピュータの役割 メカニズム( 2 )確率 メカニズム( 3 )乱数 メカニズム( 4 )物理挙動 メカニズム( 5 )ゲーム内経済 メカニズム( 6 )ゲーム理論 ゲーミフィケーション 図 2 ゲー
図 3 「ゲームメカニクス」教材:コンピュータの役割
図 5 受講者のゲーム提案書の一部(左:「ロボハーツ」右: 「越後酒コレクション」 ) ゲームを体感するためのインタフェース ( 視覚、聴覚、触覚 ) であるというユニークなアイデアのゲー ムである.また「越後酒コレクション」は、単にゲームに止まらず「ゲームを核として地域復興を図り たい」という壮大なテーマを秘めた作品である.このようなアイデアを生むことができたのは,「ゲー ムが何であるか」という本質をゲームメカニクスを通じて学んだことが一因と考えることができる. 3 プログラミング 著者 ( 藤田 ) は
+3

参照

関連したドキュメント

北陸 3 県の実験動物研究者,技術者,実験動物取り扱い企業の情報交換の場として年 2〜3 回開

実習と共に教材教具論のような実践的分野の重要性は高い。教材開発という実践的な形で、教員養

それでは資料 2 ご覧いただきまして、1 の要旨でございます。前回皆様にお集まりいただ きました、昨年 11

今回の SSLRT において、1 日目の授業を受けた受講者が日常生活でゲートキーパーの役割を実

今後の取り組みは、計画期間(2021~2040 年度)の 20 年間のうち、前半(2021~2029

強化 若葉学園との体験交流:年間各自1~2 回実施 新規 並行通園児在籍園との連携:10園訪問実施 継続 保育園との体験交流:年4回実施.

C :はい。榎本先生、てるちゃんって実践神学を教えていたんだけど、授

 今年は、目標を昨年の参加率を上回る 45%以上と設定し実施 いたしました。2 年続けての勝利ということにはなりませんでし