情報科学部Faculty of Computer and Information Sciences
INF900KA-【CS195】(その他の情報学 / Information science 900)リクエスト集中講義(Pygameライブラリによるゲーム開発)Game development with Pygame library
小林 郁夫Ikuo KOBAYASHI
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | J3005 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期集中 |
曜日・時限Day/Period | 集中・その他 |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | |
配当年次Grade | 1~ |
単位数Credit(s) | 2 |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) | |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
選択・必修Optional/Compulsory | 選択 |
カテゴリー(2022年度以降入学者)Category (2022~) | |
カテゴリー(2021年度以前入学者)Category (~2021) | |
カテゴリーCategory |
専門教育科目 専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
The goal of the class is to improve skills of programing by realizing the familiar computer games, or the games created by students. Introducing Pygame library because of the easiness of graphics handling, aims to acquire the practical skills of constructing the basic structure of computer programs and using the open source module libraries.
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
ゲームという馴染みのあるプログラムを題材に、自分の知っているゲームを再現する、あるいは、自分の創造したゲームを実現する過程を通じて、プログラミングのスキルを高めることを目的とする。グラフィクスの扱いやすさなどからPygameのライブラリを導入し、プログラムの基本構造の構築やオープンソースモジュールの活用などの実践力を身につけることに主眼を置く。
到達目標Goal
自分のイメージした動作を、イメージした通りに実現するための、プログラムの設計能力の習得を目標とする。
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
まず「例題」となるプログラムを提示し、特定の機能の実現方法を理解する。次にその機能を利用した「課題」プログラムを作成する。最後に、その機能を「応用」してゲームの操作や進行、展開などを工夫し、自分の創作したゲームの一場面をプログラムする。この「例題の理解」→「課題挑戦」→「構想と応用」を繰り返すことで、プログラミングに慣れて、構想実現力を高めることを目指す。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
1[対面/face to face]:Pygameの導入と図形の描画
Pygame環境をインストールする。
描画関連メソッドの導入と基本図形の描画。
2[対面/face to face]:アニメーションの導入
アニメーションで、絵を動かす。
MovingObjectクラスの導入。
3[対面/face to face]:イベント処理
キー入力イベントを取得、パドルを操作する。
テキストの描画を行い、ブロック崩しゲームを作成する。
4[対面/face to face]:SpriteとGroup
「ブロック崩し」ゲームを、SpriteとGroupを導入して書き換える。
5[対面/face to face]:ゲーム世界と物理モデル
衝突判定と、ボールの「跳ね返り」を物理的に考える。
ボールの動きに「重力」の影響がある場合の処理を、考える。
6[対面/face to face]:ピンボールゲームの作成
簡単なピンボールゲームを、例題として提示する。
プランジャー、ドロップターゲットなど、個々の要素の発展のヒントを提示する。
7[対面/face to face]:マインスイーパの構造解説
マウスイベントを導入する。MVCの考え方を導入し、機能分割や座標計算を解説する。探索アルゴリズムを導入する。
8[対面/face to face]:ダンジョンゲームのモデル
迷路抜けゲームを導入する。Map内のアイテムをどうモデル化するか、考え方を提示する。3D表示、迷路生成、経路探索、対話窓などのスニペットを提示し、発展のヒントを提示する。
9[対面/face to face]:ダンジョンゲームの作成
ゲーム世界を設計(定義)し、ゲームの「開始」と「終了」(Win/Loseなど)を設定して、ダンジョンゲームを考える。自分で考えたゲームを作成する。
10[対面/face to face]:イベントと状態遷移
サーカスゲームを導入する。サーカスゲームを用いて、状態遷移の考え方、プログラミングを解説する。
課題として、ゲームをアレンジ(部分改良)する
11[対面/face to face]:アニメーションと物理モデル
RPGでの「歩く」動作、ピンボールでのフラップ、シーソーの跳躍モデルなど、タイマーを用いたアニメーションや物理モデルの拡張を解説する。応用課題を提示し、プログラムする。
12[対面/face to face]:最終課題のゲーム設計
これまで導入した機能を利用して、最終課題を考える。ゲーム世界の想定、展開、操作などを考えて、開発に着手する。具体化手法について、不明な点は質問に基づいて、追加の解説を行う。
13[対面/face to face]:発表と質疑応答(1)
作成したゲームの発表と質疑応答(1)
14[対面/face to face]:発表と質疑応答(2)
作成したゲームの発表と質疑応答(2)
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
レポート課題が4回出される。授業中の説明から、各自が持ち帰ってプログラムする課題となる。次回授業日の前日までに提出できるように、取り組むことが求められる。
テキスト(教科書)Textbooks
オンラインで利用できるレファレンスのサイトや、ソースコードなどを随時利用する。
参考書References
小林郁夫、佐々木晃著「Pythonによるプログラミング」 2019,オーム社
成績評価の方法と基準Grading criteria
4回のレポート課題とプログラムから、成績評価する。
学生の意見等からの気づきChanges following student comments
本年度が最初の授業になる
学生が準備すべき機器他Equipment student needs to prepare
大学貸与のPCが必須
その他の重要事項Others
学生単独でのプログラミングの他に、2名ないし3名のチームで開発課題に取り組むことも認めます。希望する場合は、初回の授業でチーム構成を申し出てください。レポートにおける「実現方法」、「機能説明」やプログラムの開発では、作業分担、執筆分担を明示してください。それ以外の章、「課題の目的」や「考察」などは必ず個人で執筆するものとします。レポート提出はチームではなく個人で行ってください。