
PythonといえばAIだったり、WEB開発やシステム処理というイメージが強いですが、ゲーム作りにおいても
「Pythonでつくる ゲーム開発 入門講座 実践編」はソーテック社様より献本いただきました。
Pythonでつくる ゲーム開発 入門講座 実践編 目次
Prologue ゲーム開発とプログラマー
Chapter1 ゲーム開発の基礎知識1
- Lesson1-1 キー入力
- Lesson1-2 リアルタイム処理
- Lesson1-3 キャラクターのアニメーション
- Lesson1-4 二次元リストによるマップデータ管理
- Lesson1-5 床と壁の判定
- COLUMN Python用の統合開発環境
Chapter2 ゲーム開発の基礎知識2
- Lesson2-1 ヒットチェック その1
- Lesson2-2 ヒットチェック その2
- Lesson2-3 三角関数の使い方
- Lesson2-4 インデックスとタイマー
- Lesson2-5 ミニゲームを作ろう!
- COLUMN ゲームの世界観について
Chapter3 アクションゲームを作ろう! 前編
- Lesson3-1 ドットイートゲームについて
- Lesson3-2 迷路を表示する
- Lesson3-3 キャラクターを動かす
- Lesson3-4 キャラクターの向きとアニメーション
- Lesson3-5 キャラクターを滑らかに動かす
- Lesson3-6 アイテムを取ってスコアを増やす
- Lesson3-7 敵を登場させる
- Lesson3-8 タイトル、クリア、ゲームオーバー
- COLUMN BASICとPython
Chapter4 アクションゲームを作ろう! 後編
- Lesson4-1 複数のステージを組み込む
- Lesson4-2 主人公の残り数を組み込む
- Lesson4-3 新しい敵を登場させる
- Lesson4-4 エンディングを作ろう
- Lesson4-5 色々なステージを用意しよう
- Lesson4-6 マップエディタの制作 その1
- Lesson4-7 マップエディタの制作 その2
- COLUMN 有名アニメのゲーム開発秘話 その1
Chapter5 Pygameの使い方
- Lesson5-1 Pygameについて
- Lesson5-2 Pygameのインストール
- Lesson5-3 Pygameの基本的な使い方
- Lesson5-4 Pygameで画像を描く
- Lesson5-5 画像の回転と拡大縮小表示
- Lesson5-6 同時キー入力を行う
- COLUMN レトロゲームについて
Chapter6 シューティングゲームを作ろう! 前編
- Lesson6-1 シューティングゲームについて
- Lesson6-2 Pygameで高速スクロール
- Lesson6-3 自機を動かす
- Lesson6-4 弾を発射する
- Lesson6-5 複数の弾を発射する
- Lesson6-6 弾幕を張る
- COLUMN 有名アニメのゲーム開発秘話 その2
Chapter7 シューティングゲームを作ろう! 中編
- Lesson7-1 敵機の処理
- Lesson7-2 敵機を弾で撃ち落とす
- Lesson7-3 爆発演出を入れる
- Lesson7-4 シールド制を入れる
- Lesson7-5 タイトル、ゲームをプレイ、ゲームオーバー
- COLUMN たった3行でパーティゲームが作れるPython
Chapter8 シューティングゲームを作ろう! 後編
- Lesson8-1 サウンドを組み込む
- Lesson8-2 敵の種類を増やす
- Lesson8-3 ボス機を登場させる
- Lesson8-4 ゲームを完成させる
- COLUMN ゲームパッドで操作できるようにしよう!
Chapter9 3Dカーレースゲームを作ろう! 前編
- Lesson9-1 カーレースゲームについて
- Lesson9-2 3DCGと疑似3Dについて
- Lesson9-3 遠近法について
- Lesson9-4 道路の見え方を考える
- Lesson9-5 疑似3Dで道路を描く その1
- Lesson9-6 疑似3Dで道路を描く その2
- Lesson9-7 道路のカーブを表現する
- Lesson9-8 道路の起伏を表現する その1
- Lesson9-9 道路の起伏を表現する その2
- COLUMN 道路を自在に変化させるプログラム
Chapter10 3Dカーレースゲームを作ろう! 中編
- Lesson10-1 Pygameを用いる
- Lesson10-2 コースを緻密に描く
- Lesson10-3 カーブに合わせ背景を動かす
- Lesson10-4 道路の起伏を表現する
- Lesson10-5 車線を区切るラインを描く
- Lesson10-6 コースの定義その1 カーブデータ
- Lesson10-7 コースの定義その2 起伏データ
- Lesson10-8 コースの定義その3 道路横の物体
- Lesson10-9 プレイヤーの車の制御
- COLUMN 処理落ちを測定する
Chapter11 3Dカーレースゲームを作ろう! 後編
- Lesson11-1 コンピュータの車を走らせる
- Lesson11-2 車の衝突判定を組み込む
- Lesson11-3 スタートからゴールまでの流れ
- Lesson11-4 ラップタイムを組み込む
- Lesson11-5 車種を選べるようにする
- COLUMN コンピュータゲーム用のAI
著者の廣瀬豪さん
廣瀬豪さんはナムコでプランナー、任天堂とコナミの合弁会社ではプログラマー、ディレクターを努めた方で、ゲーム会社で開発経験しており内容もしっかりとした内容となっています。
コラムのゲーム開発秘話もなかなか興味深い内容でした。
また、以前紹介した「いちばんやさしい JavaScript 入門教室」の著者でもあります。
実践編ということで、本格的なゲームの開発方法が学べる
本書は実践編ということで前作からさらに本格的なゲームの開発手法を学ぶことができます。

まずはゲーム開発で必要な入力処理や判定処理など基本を学んだ後、GUIが作れるTkinterを使ったアクションゲーム、そしてPythonでゲームを作るためのゲームエンジン・ライブラリ「Pygame」を使って本格的なゲーム作りを学ぶことができます。
プログラムが1行ごとに説明している
この本書の特徴ともいえるのが、プログラムが1行ごとに説明があること。

たいていのプログラム本は、コードを掲載した後、「○行目~○行目では○○で処理を~」みたいな説明に入りますが、本書では1行1行しっかり説明してあります。
ページを半分に分けてコードを解説してるので、長いコードだと改行されてちょっと見づらい部分もありますが、1行1行説明してくれるのってすごくありがたくて、これが何を意味しているのかが凄くわかりやすかったです。
ゲームがどうやって動いているのか原理が学べた
ゲームが作れるソフトだとUnityなどでは物理計算や接触判定など数学の計算を知らなくても、機能が提供されているので意識せずに開発ができますが、本書では三角関数だったり、ゲームがどういった計算によって動くのかという原理の部分を学ぶことができます。
まあ、文系の自分には解説を見ても、数学苦手なので難しい部分もあったりしますが、自分達が遊んでいるゲームってこうやって作られてるんだなあって改めて感じました。
PythonはCやC++よりもはるかに優しいし、ゲームを動かすという部分を学ぶ点においても、良書だといえる1冊でした。
今回紹介したのは実践編ですが、入門編から試すのをオススメします。



