ゲームプログラム

科目基礎情報

学校 松江工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 ゲームプログラム
科目番号 0034 科目区分 専門 / 必履修
授業形態 授業・演習 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 4
開設期 前期 週時間数 2
教科書/教材 作成した電子ファイル等
担当教員 橋本 剛

到達目標

(1)簡単なゲームプログラムを作成できる力を身に着ける
(2)発案した解決策を実現するためのアルゴリズムが設計できる.
(3)設計したアルゴリズムをC言語により実装することができる.
(4)課題の達成に必要な情報を文献や書籍から収集し,それを活用する能力がある.
(5)最先端のツールを自ら学習し使いこなせる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1 完成度の高いゲームプログラムを作成できたゲームプログラムを作成できたゲームプログラムを作成できない
評価項目2難易度の高いアルゴリズムを設計し、実装できたアルゴリズムを設計し、実装できたアルゴリズムを設計、実装ができない
評価項目3最先端のツールを自ら学習し使いこなせた最先端のツールを授業で演習する内容は使うことができた最先端のツールを使えない

学科の到達目標項目との関係

学習・教育到達度目標 J2 説明 閉じる

教育方法等

概要:
ゲームプログラムの基礎を学び、C言語を用いてゲームプログラム作成を行い、実践的なプログラミング能力とアルゴリズムを考える能力を身に着けることを目指す。まずはDXライブラリを用いたブロック崩しゲームを作成する。次にオセロを題材としたAI手法を学ぶ。次にシューティングゲームでキャラクターが動く原理を学び、ゲームバランスの調整を行う。次に物理エンジンを使ったゲームプログラムを作成する。
授業の進め方・方法:
到達目標(1)~(5)の到達度を,・課題作品 100% で評価し、合計を本科目の総合評価とする。総合評価が100点満点中60点以上であることを合格の条件とする。
注意点:
C言語、アルゴリズムの基礎を理解していることを条件とする。開発環境はVisual C++を使用する。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 課題演習
ガイダンス、ブロック崩しプログラム1
開発環境の構築、ボールとバーの動き作成
2週 課題演習
ブロック崩しプログラム2
ブロック崩しプログラム完成
3週 課題演習
ブロック崩しプログラム3
オリジナルアイデアを加えたブロック崩しプログラム完成
4週 課題演習
オセロゲーム作成1
合法手を選べるオセロプログラム作成
5週 課題演習
オセロゲーム作成2、オセロAI探索手法の解説、オセロAI 作成1
ルール通りプレイできるオセロプログラム完成、オセロAI概要理解、最大評価値の手を選ぶAIの完成
6週 課題演習
オセロAI 作成2
MINMAX探索理解、MINMAX探索でプレイするオセロAI完成
7週 課題演習
オセロGUI作成
オセロGUI完成
8週 課題演習
シューティングゲーム1 曲線的な動き
キャラクターを曲線的に動かすバラ曲線など手法の理解、面白い動きをさせるアルゴリズムの作成
2ndQ
9週 課題演習
シューティングゲーム2 大量の弾を動かす
弾を大量に動かす手法の理解、大量の弾を動かす面白いアルゴリズムの作成
10週 課題演習
シューティングゲーム3 自由に制作
ゲームバランスを考慮した面白いシューティングゲームの完成
11週 課題演習
物理エンジンを使うプログラム1 Box2Dの導入と実装
物理エンジンBox2Dの使用方法理解、Box2Dを使った簡単なプログラムの作成
12週 課題演習
物理エンジンを使うプログラム2
Box2Dを使う実体化ゲームに面白いアイデアを加えたプログラムの完成
13週 作品発表
これまでに作ったプログラムの発表を行う
自分が作った作品を同級生に紹介し、面白さを伝える
14週 作品発表2
プログラムの発表をオープンキャンパスで行う
自分が作った作品をオープンキャンパス参加者に紹介し、面白さを伝える
15週 作品発表3
プログラムの発表をオープンキャンパスで行う
自分が作った作品をオープンキャンパス参加者に紹介し、面白さを伝える
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
主要な言語処理プロセッサの種類と特徴を説明できる。3
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3
ソフトウェアアルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。1
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。1
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3

評価割合

試験課題相互評価態度ポートフォリオその他合計
総合評価割合01000000100
基礎的能力0000000
専門的能力01000000100
分野横断的能力0000000