2025年度前期プログラミング演習3

曜日・時限 火曜日2時限 期別 前期 週時間数 0
ナンバリング
開講学科等 総合情報学部-デジタルゲーム学科
教員名 沼田 哲史
沼田 哲史
職務履歴

https://research.osakac.ac.jp/index.php?%e6%b2%bc%e7%94%b0%e3%80%80%e5%93%b2%e5%8f%b2

教員情報データベースに遷移します

目的

この講義では、OpenGLを用いた2Dシューティングゲームの実装を通じ、C++の高度なプログラミング技法や設計パターン、CSV/XMLによるデータ管理、MarkdownやGitなどの開発ツールについて知り、理解し、実践的に応用できるようになることを目的としています。また、これらの学習内容を活用して自らの成果物をポートフォリオにまとめ、将来の開発現場での実務能力を身につける基盤を創造することを目指します。

授業計画

授業回 形式 学修内容 学修課題
1 A,C 初回ガイダンス:環境構築とプロジェクト概要説明
・環境構築手順と各種ツールの導入  
・プロジェクト全体の目的とスケジュールの把握
事前学修 Web記事や動画を活用し、C++とOpenGLの基本概念を調査し、環境構築手順を確認する。(2時間)
事後学修 授業内で説明された手順に従って、サンプルコードの動作検証を行う。 (2時間)
2 A,C ゲームループの基本とゲームの流れの確認
・ゲームループの構造と基本的な処理の流れ  
・入出力や更新処理のタイミングの理解
事前学修 前回の授業内で提示された資料をもとに、ゲームループの基本構造、処理の流れ、更新と描画のタイミングについて復習し、サンプルコードの概要を整理する。(2時間)
事後学修 基本概念を踏まえて、自分で簡単なゲームループのコードを作成し、各処理の役割をコメント付きで整理し、動作結果を確認する。(2時間)
3 A,C,E ゲーム実装1:プレイヤーの実装
・プレイヤーキャラクターの基本動作と制御方法
・オブジェクト指向を活用したクラス設計
事前学修 以前学んだオブジェクト指向の基礎を元に、プレイヤーの機能(移動、入力反映)の設計案を構想し、必要な変数やメソッドのリストを作成する。(2時間)
事後学修 プレイヤークラスを実装し、実際の動作確認を行いながら、エラー箇所の修正と改善点を整理し、設計意図を文書にまとめる。(2時間)
4 A,C,E ゲーム実装2:敵キャラクターの実装1
・敵キャラクターの基本動作と出現ロジック
・敵のパターン設計の基礎
事前学修 敵キャラクターの基本動作および出現ロジックの設計案を下書きし、仕様書の初稿を作成する。(2時間)
事後学修 敵キャラクターの基本クラスを実装し、動作テストを行い、出現ロジックの挙動や問題点を整理したレポートを作成する。(2時間)
5 A,C,E ゲーム実装3:敵キャラクターの実装2
・複数の敵キャラクターの管理と挙動の多様化
・敵同士の連携やバリエーションの考察
事前学修 前回の内容を踏まえ、複数の敵キャラクターの管理方法や各キャラクターの動作パターンのバリエーションについて設計案を練る。(2時間)
事後学修 複数の敵キャラクターの統合コードを実装し、動作検証を行い、実装上の工夫点と改善点を詳細にレポートにまとめる。(2時間)
6 A,C,E ゲーム実装4:弾幕システムの構築
・弾幕パターンの生成と管理方法
・複数弾の動作と衝突判定の基本
事前学修 前回の内容も踏まえて、弾幕パターンの基本構造、弾丸クラスの設計アイデアを具体的に整理し、仕様書に記述する。(2時間)
事後学修 弾幕システムを実装し、各弾の生成、動作、衝突判定のテストを行い、実装過程と改善点をレポートにまとめる。(2時間)
7 A,C,E ゲーム実装5:高度なゲームメカニクス
・衝突判定や物理処理の実装手法
・スコア管理やゲーム進行の高度な制御
事前学修 前回の演習内容を参考に、衝突判定、物理処理、スコア管理など高度なメカニクスの基本概念を復習し、設計のポイントを整理する。(2時間)
事後学修 衝突判定やスコア管理機能を実装し、動作検証を行い、各機能の効果や改善点を詳細にレポートにまとめる。(3時間)
8 A,C,E ゲーム実装6:ビジュアル効果とオーディオ効果
・シェーダーやパーティクルシステムを用いた視覚効果
・オーディオライブラリによる効果音とBGMの統合
事前学修 授業で提示された資料を元に、シェーダー、パーティクルシステム、オーディオライブラリの基本動作と統合方法について理解を深め、設計案を作成する。(2時間)
事後学修 視覚効果とオーディオ効果を実際のコードに統合し、動作確認を行い、効果の調整方法や改善点を図解付きで整理する。(3時間)
9 A,C,E ゲーム実装7:ゲームのデバッグと仕上げの作業
・デバッグ手法とパフォーマンス最適化の基本
・最終調整とユーザビリティの向上策の検討
事前学修 授業内で配布されたデバッグ手法と最適化の資料を確認し、チェックリスト作成の方法を復習、実装予定の確認を行う。(2時間)
事後学修 ゲーム全体をデバッグし、パフォーマンス最適化と最終調整を実施する。チェックリストに基づく改善内容をレポートにまとめる。(3時間)
10 A,C,E ゲーム実装に向けたデザインパターンの基礎
・SingletonやStateパターンなどの概念と実装例
・設計パターンを用いたコードの整理と拡張性の向上
事前学修 前回の演習内容を踏まえつつ、これまでに実装してきたコードの実行の流れをよく確認し、とくにクラス間の構造に注目して、ノートにまとめてくる。(2時間)
事後学修 学んだデザインパターンを用いてサンプルコードを改善し、動作確認とともに設計意図、実装上の工夫点を文書化する。(3時間)
11 A,C,E Gitによるバージョン管理とチーム開発の基礎
・Gitの基本操作とブランチ管理の理解
・チーム開発における効率的なソースコード管理
事前学修 授業内で事前に提示された資料をもとに、Gitの操作手順とブランチ管理方法を確認し、実際の操作フローを整理する。(2時間)
事後学修 Gitを用いてリポジトリのクローン、コミット、プッシュ、マージを実践し、各操作の結果と問題解決のプロセスを文書にまとめる。(3時間)
12 A,C,E ポートフォリオ作成とコード品質の向上
・成果物の整理と効果的なポートフォリオ作成手法
・コードレビューやリファクタリングによる品質改善
事前学修 授業内で紹介された優れたポートフォリオ事例を参考に、自身の成果物や強みを整理し、ポートフォリオの構成案を下書きする。(3時間)
事後学修 これまでの成果物を整理し、コードレビューやリファクタリングの結果を反映したポートフォリオ文書を具体的に作成する。(3時間)
13 A,F まとめ
・授業全体の振り返りと今後の学習計画の策定
・成果物の最終チェックと自己評価の実施
事前学修 授業全体の各回の内容と成果を振り返り、各自の課題点と成功例をリストアップして自己評価の準備を行う。(2時間)
事後学修 授業全体のまとめとして、学んだ内容と今後の学習計画を策定し、最終チェックリストに基づく確認レポートを作成する。(3時間)

授業形式記号

  • A:一斉授業(通常の講義)
  • B:問題発見・解決学習、プロジェクト学習
  • C:体験、実験、実習、演習など
  • D:調査 分析、解析など
  • E:ものづくり、作品制作
  • F:グループワーク(ディスカッション・ディベートを含む)
  • G:プレゼンテーション
  • H:地域・企業 連携型学習
  • I:その他

到達目標

・C++の基本概念と実践的プログラミング技法を理解し、応用できる。
・多様なソフトウェア開発に必要なデザインパターンを理解し、実際のプロジェクトに応用できる。
・CSVやXMLによるデータ管理、Markdownによるドキュメント作成、Gitを用いたバージョン管理など、開発ツールと手法の基礎を理解し、適用できる。
・制作したゲームと関連ドキュメントをポートフォリオとしてまとめ、自らの開発スキルと成果を評価・整理できる。

本科目に関連するディプロマ・ポリシー項目
〇 2024年度以降の入学生
  下記リンク先のカリキュラムマップを参照.
    https://www.osakac.ac.jp/about/policy/faculty/

○ 2023年度以前の入学生
  習得する資質・能力:知識・理解 【DP-W-1-1】
                               汎用的技能 【DP-W-2-1】

評価方法と評価観点

評価方法 配点合計知識・理解力応用力コミュニケーション力態度・志向性創造力 合計
定期試験またはレポート試験 0%
小テスト、小論文 0%
グループワーク 0%
プレゼンテーション 0%
レポート、宿題 0%
授業での姿勢(ノート、質疑など) 0%
作品、パフォーマンス(実技、実演) 100% 60% 20% 20% 100%
その他1(具体的に: 0%
その他2(具体的に: 0%
100% 60% 20% 0% 0% 20% 100%

教科書・参考書

なし。授業内で適宜資料を配布する。

オフィスアワー

・オフィスアワーは火曜日のお昼休み、教員室(10号館206)で実施します。
 ※学内外の用務のため、オフィスアワーでも教員が教員室に不在の可能性があります。
  事前に numata@osakac.ac.jp までメールでご連絡いただくのが確実です。

・授業のMoodleに「授業に関する質問・相談」のトピックを設け、随時、質問・相談を受け付けます。
 ※回答は授業期間中の平日9:30〜17:00に行います。

その他

・授業内容の理解を確認するためのプログラミング課題の提出があります。提出物は返却しませんが、内容チェックのうえ、授業内で良い回答の紹介や、改善が必要なポイントの解説を行います。
・出席回数が8回未満の場合は、D評価とします(これは予定なので再設定することがあります)。

実務経験のある教員による授業科目

この授業は、実務経験のある教員によって実施されます。この授業を担当する沼田は、プログラミングに関する書籍を多数執筆・出版しており、プログラミングの教材開発やソフトウェア開発に関する研究が専門です。