1-1 まえがき+開発するゲーム
同人誌について
この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。
同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで288ページの本になります。ぜひ、こちらもご購入ください(2024-03-10:ver1.0.3 に更新)。
まえがき
PC向けのゲームを作りたい、それも、あまり大きなファイルサイズでなくて、なるべく一般的なプログラミング言語で。さらに、可能な限りGUIベースではなく、コードベースで作りたい。
そうしたことを考えていたときに、選択肢として上がってきたのが『Python』+『Pygame』でした。いろいろと情報を調べたり実験したりして、次の構成で開発することにしました。
ゲーム開発は『Pygame』を使います。
『venv』を使って仮想環境を作ります。
作ったゲームのEXE化は『PyInstaller』を使います。
プログラムのチェックは『mypy』でおこないます。
上記の環境で作った場合、出力する実行ファイルのサイズは10数MBと小さくて済みます。開発ファイルも、プログラムと画像とフォントと音声だけで済みます。仮想環境は64MBになりますが、これぐらいなら許容範囲です。
こうした方針で練習に一本作ってみたものが、レトロ風RPG『RetroQuest』です。
この本では、上記のような環境の構築、『Python』の基本的な文法、『Pygame』の使い方を序盤で解説したあと、レトロ風RPGのプログラムを、全コード掲載して解説していきます。
実行環境はWindowsを想定しています。『Pygame』自体は、クロスプラットフォームで動作するものなので、MacやLinuxにも応用できるでしょう。
それでは『Python』を使ったゲーム開発をおこなっていきます。
この本の対象者
この本は、プログラミング経験がある程度ある人向けに書いています。まったくプログラムを書いたことがない人は、初心者向けの本を読み、ある程度経験を積んでからの方がよいと思います。
『Python』の経験がなくても、他の言語の経験がある人は想定読者です。この本には、『Python』の文法と仕様を、短めに解説する章を入れています。
開発するゲームの特徴
開発するゲームは、次のような特徴を持ちます。
数分で遊べるレトロ風RPGです。
マップを移動して、たまに敵に遭遇して戦闘が起きます。
街に到着するとHPとMPが回復します。また、初回の到着ではアイテムがもらえます。
魔王城に到着すると魔王との戦いが始まり、勝利するとゲームクリアになります。
開発するゲームの仕様
また、このゲームは次のような仕様を持ちます。
ウィンドウ サイズを自由に変更して遊べます。最大化もできます。
ゲーム画面自体は、320×240の領域に描画して、そこから拡大して表示します。
ゲーム データは、JSON形式で保存して読み込めます。
タイトル、マップ、バトルといった複数のシーンを行き来できます。
キーボードで操作します。
どんな技術を使うか
どんな技術を使うかをまとめておきます。
プログラミング言語は『Python』です。
仮想化は『Pthon』標準の『venv』でおこないます。
ゲームエンジンは『Pygame』です。
exe化は『PyInstaller』を使います。
『mypy』を使って型チェックをおこないます。関数の引き数と戻り値に型を書きます。
ゲームの画面
この本で使うゲームは、次の3つの画面を持っています。
タイトル画面 …… ゲーム開始時に表示されます。ゲームのデータをロードできます。
マップ画面 …… 主人公が移動できます。ゲームのデータをセーブできます。
バトル画面 …… 敵と戦います。
ゲームのスクリーンショット
この本で作るゲームのスクリーンショットを掲載します。
目次
同人誌本体の目次を掲載します。この連載では、同人誌の内容から一部を抜粋して掲載していきます。
第1章 開発するゲーム(1~4)
第2章 開発環境の構築
2-1 Pythonの導入
2-2 Visual Studio Codeでの準備
2-3 venvの利用
2-4 Pygameの導入
2-5 PyInstallerの導入
2-6 mypyの導入
第3章 Pythonの基本的な文法(1~10)
第4章 Pygameの使い方
4-1 Pygameの基本的な処理
4-2 画像描画
4-3 図形描画
4-4 文字描画
4-5 スプライト
4-6 キー入力
4-7 マウス入力
4-8 音声
第5章 main.pyと初期化(1~3)
第6章 データ パッケージ(1~13)
第7章 イメージ パッケージ(1~7)
第8章 ゲーム パッケージ(1~4)
第9章 タイトル シーン パッケージ(1~4)
第10章 マップ シーン パッケージ(1~9)
第11章 バトル シーン パッケージ(1~14)
第12章 その他のプログラム(1~5)
同人誌について
この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。
同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで288ページの本になります。ぜひ、こちらもご購入ください(2024-03-10:ver1.0.3 に更新)。
このnoteの記事と、Webページに一部抜粋版を掲載しています。
https://crocro.com/write/python_pygame_rpg/
また、こちらもよろしくお願いします。出版社から今年の2月に出た新刊です。
技術系同人誌など まとめページ