見出し画像

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月に出た新刊です。

 技術系同人誌など まとめページ


この記事が気に入ったらサポートをしてみませんか?