情報Ⅰの課題がきっかけでこのブログに来てくれた高校生向けに本を紹介します。
Pythonでのゲームプログラミングを学習できる解説書が発売されました。
リブロワークス 著,北尾崇 著・監修 (2025)
『ゲームで学ぶPython! Pyxelではじめるレトロゲームプログラミング』 技術評論社
B5変形判/288ページ 定価3,080円(本体2,800円+税) ISBN 978-4-297-14657-3
gihyo.jp
Pyxel(ピクセル)を開発している北尾さんによる本で,下記のような本格的なゲームの作り方が解説されています。段階的にプログラムを入力して実行してみてを繰り返して,ポイントを意識しながらゲームを作っていけるようになっています。
宇宙船を動かして宇宙飛行士を救助するゲーム
書籍「ゲームで学ぶPython! Pyxelではじめるレトロゲームプログラミング」
— Takashi Kitao (@kitao) 2024年12月23日
第5章「ワンキーゲームを作ろう」
サンプルゲーム「Space Rescue」
Program: 北尾崇 @kitao
Graphics: Adam @badcomputer0 https://t.co/iEpNo6c8m6#pyxel #python #gamedev pic.twitter.com/doWbABzbKR
シューティングゲーム,移動パターンや攻撃パターンの違う敵,ゲームをスリリングにするコツなど
書籍「ゲームで学ぶPython! Pyxelではじめるレトロゲームプログラミング」
— Takashi Kitao (@kitao) 2024年12月23日
第6章「シューティングゲームを作ろう」
サンプルゲーム「Mega Wing」
Program: 北尾崇 @kitao
Graphics: Adam @badcomputer0
Music: 桐岡麻季 @MakiKirioka https://t.co/iEpNo6c8m6#pyxel #python #gamedev pic.twitter.com/n7viqDHFha
横スクロールアクション,敵の出現処理やキノコで大ジャンプなども
書籍「ゲームで学ぶPython! Pyxelではじめるレトロゲームプログラミング」
— Takashi Kitao (@kitao) 2024年12月23日
第7章「アクションゲームを作ろう」
サンプルゲーム「Cursed Caverns」
Program: 北尾崇 @kitao
Graphics: Adam @badcomputer0
Music: 桐岡麻季 @MakiKirioka https://t.co/iEpNo6c8m6#pyxel #python #gamedev pic.twitter.com/avscPJulog
サンプルプログラムはコナミ等でゲーム開発をされていた著者の北尾さんによるもので,スマートな処理や人を楽しませる工夫などとても勉強になります。文字の表示のさせ方一つとっても,なるほどと新しい知識がついていくと思います。
プログラムの開発環境の準備としてPython,Pyxel,Visual Studio Codeのインストールと設定から丁寧に解説されています。(Visual Studio Code(VSCode)はコードエディタとよばれるアプリで,プログラミングをサポートする機能がたくさんある非常に便利なツールです)
また,Pythonコードの記述ルールや用語についてもプログラムに登場するごとに説明があるので学習が進めやすくなっています。
書籍前半では,サンプルプログラムを改造したり,プログラムを駆使した図形描画で絵をかいたりアニメーションを作成してPythonの処理について学習します。続けて,キー入力判定,画面に現れるものの配置,衝突判定を学んでゲームを作成します。5章で作成するゲームのソースファイルのコード部分は177行あり,これだけ大きなプログラムを作成する体験はなかなか無いので,完成させると大きな自信になると思います。
6章のシューティングゲームはサンプルのソースファイルで段階的に処理を追加していく形式で学習します。最終的なコード部分は292行になります。(2025-01-29訂正 「ソースファイルに」→「ソースファイルで」)
7章のアクションゲームは,サンプルのソースファイルを見ながら書籍の解説を読む形式で学習します。15ファイルでコード部分は432行の規模の大きなプログラムです。(大変ですが解説を読んでコードを写してもう一度解説を読んでと手も動かしてみると理解がより進むと思います)
6章,7章と進むにつれて内容が高度になっていきます。オブジェクト指向やモジュール分割などと合わせてゲームのプログラムを学習します。このあたりの内容は他のPython入門書では(特にページ数の少ない薄めの書籍などでは)あまり載っていない印象があるので役立つ情報だと思います。当然難しくはなるので,早くアクションゲームを作りたいからと後ろの章にいきなり手を付けると怒涛の説明にとまどうかもしれません。
『ゲームで学ぶPython!』は書籍に登場する学習者のキャラクターが大学生に設定されているくらい本格的な内容が学べます。この本を読む機会があれば,はじめの章から,しっかり自分の手を動かしてプログラムの入力と実行を繰り返して欲しいと思います。5章までの内容だけでも十分ゲームは作成できるので,難しいところは慣れてからやってみてください。
ゲームを題材にできるとプログラムの勉強はとてもはかどります。動いた時の楽しさが段違いです。自分のやりたいことをどうやって実現するかプログラムの処理を懸命に考えるモチベーションにもつながります。プログラミングに興味があればぜひ読んでみてください。
(図書室の本の選定に生徒の要望が通るような学校であれば,先生に相談してもよいかと思います。時間はかかるでしょうが)
<2025-02-04追記>
ゲーム制作の知識についてもう少しアピールを追加します。
スマホでも家庭用ゲーム機でも,ゲームをどうやって作っているのか外からはちょっとわかりません。キャラクターが走ったりジャンプしたり,アイテムを手に入れることもあれば,建物に入って場面が切り替わったりすることもあります。そういったことが全部プログラムで作られているのですが,この本でそれらの大もとになるような知識や考え方が勉強できます。Scratchでゲームを作った経験がある人はスプライトの表示や接触の判定を簡単にできたと思いますが,どうやって実現しているかまでは考えなくてもよいものでした。Pyxelでは表示処理や衝突判定のコードを自分で書くのでゲームの仕組みがよく理解できるようになります。(*1)
ゲームの仕組みがわかるとPythonやPyxel以外のものでゲームを作るときにも応用が利くようになるので,シンプルなゲーム作りから始められるPyxelの学習はおすすめです。
*1 もっと話を広げると,アプリ(とライブラリ)とOSとハードウェア(のあいだにドライバー。ハードの中にファームウェア)とかたくさんのものがつながっていて,それぞれプログラムが動いています。ゲームプログラム以外にもいろいろなプログラムが関わっています。