Pythonをゲーム作りで学ぶ方法を解説!【サンプルコードあり】
Pythonはライブラリが豊富なことで有名ですが、ゲームを作るためのゲーム用やGUIのライブラリもたくさん開発されています。
そんな豊富なライブラリを持つPyhtonで「自分でゲームを作ってみたい!」という方は多いのではないでしょうか。
そこで「DMM WEBCAMP MEDIA」では、
- Pythonでのゲーム作りに使えるライブラリやゲームエンジン
- Pythonでのゲーム作りに参考になる書籍
- Pythonで実際に使えるサンプルコード
を紹介します!
Pythonでのゲーム作りに興味はあるけれどどこから手を付けていいかわからないという方のご参考になりましたら幸いです。
ダウンロードなどの環境構築の段階からPythonを、学び始めたいという方は以下の記事を参考にしてください。
Pythonのダウンロードから動作確認までの環境構築方法を解説!Pythonでのゲーム作りにはライブラリとエンジンが重要!
Pythonでゲームを作るには、Pythonでのゲーム作りに使えるPythonのゲーム用やGUIライブラリ、ゲームエンジンが大いに役に立ちます。
Pythonのゲーム用ライブラリは、
ゲームを作るのに使える汎用的な機能や画像描画等をひとまとまりにした部品
のようなものです。
ゲームエンジンは、
コンピュータゲームを作るのに共通して使われることの多い映像や音等の主要な処理を行う機能を持ったソフトウェア
を指します。
ゲーム開発を一からやるとなると大変な労力がかかりますが、これらの部品をうまく組み合わせていくことでPythonでゲームでの高度な表現も出来るようになります。
アプリケーションやWEBサービスを作りたい方は
当メディアが運営する国内最大級のプログラミングスクール【DMM WEBCAMP】を覗いてみても良いかもしれません。
ゲームの開発によく使われているプログラミング言語
Python以外にもゲームの開発に使われるプログラミング言語ほ多数あります。
Python以外のゲーム開発に使われているプログラミング言語の特徴を知ることによって、Pythonで作るのに向いているゲームを知ることができます。
特に使われているプログラミング言語は、
- 処理速度が早く、C言語をより高度に使えるように拡張したC++
- C++よりも書きやすく、開発の環境が整っているC#
- ブラウザゲームの開発によく使われ、学習コストの低いJavaScript
の3つです。
それぞれが異なる特徴を持つため、作りたいゲームによってプログラミング言語を使い分けるのが一般的な方法とされています。
Pythonはこの3つに比べると処理速度は落ちますが、シンプルなゲームを作るのに適しているプログラミング言語です。
Pythonでゲームを作るメリットは?
他のプログラミング言語もある中で、Pythonを使ってゲームを作るメリットは何なのでしょうか?
これはPythonのみに限った話ではありませんが、
プログラミング言語でゲームを作ることは非常に効率のいい学習方法
となります。
例えばPythonでゲームを作る時には
- Pythonに関する基本的な知識
- ゲームを作るために必要なコードの記憶
- コードを組み合わせる能力
が必要となり、自分がこれまでに学んだことの総復習を行うことができます。
また、復習だけではなく新しいことも楽しみながら覚えられるのがPythonでゲームを作るメリットの1つです。
自分の実力を他の人に分かりやすい形で伝えられる、Pythonの資格について知りたい方はこちらの記事を参考にしてみてください!
実際にPythonを使って作られたゲームを紹介!
シンプルなゲームを作るのに適しているPythonは、レトロゲームを模索したゲームを作るのに使われることが多いです。
ここでは実際にPythonを使って作られたゲームの実例を紹介します。
下記の画像をクリックすることで、プロジェクトページに移動してアクセスすることができます。
R-Typo
Mario Shell Defense
Falling Tetrominos
Pythonでよく使用されるゲーム用ライブラリ
ゲーム用ライブラリを活用することで、よりクオリティの高いゲームを作ることが容易になります。
この見出しではPythonでよく使用されるゲーム用ライブラリを紹介します。
- Pygame
- kivy
❶Pygame
Pythonのゲーム用ライブラリで一番有名なライブラリがPygameです。PygameはSDL(Simple DirectMedia Layer)とその補助関数のラッパーです。
SDLは、マルチメディア制御のためのクロスプラットフォームなCライブラリで、グラフィックの描画やサウンドの再生などのAPIを提供しています。
古くから親しまれているライブラリなので、学習するのに役に立つ国内外のサイトや書籍は見つけやすいです。
以下は、公式のPygameドキュメントです。
以下は、有志でPygameのリファレンスの日本語訳(一部)をされた方のドキュメントです。
❷kivy
kivyはマルチタッチのような入力方法も可能なGUIアプリが開発できるライブラリです。
OSに依存しないマルチプラットフォームな開発もでき、様々な入力デバイスに日々対応し更新されています。
例えばトラックパッドやTUIOというマルチタッチの通信プロトコル等をカバーしています。kivy-designerというkivyのGUIを設計するためのツールも合わせて使うことで、GUIの作りこみが簡単にできるようになります。
Pygameほど親しまれていないのか、あまり日本語の文献がありませんが、有志で日本語訳をされた方のドキュメントがあります。
Pythonでよく使用されるゲームエンジン
効率的にゲーム作りを行うためには、使いやすいゲームエンジンを使うことが重要になります。
この見出しではPythonでよく使用されるゲームエンジンを紹介します。
- Pyxel
- Panda3D
❶Pyxel
Pyxelは、Pythonで作られたゲームエンジンで、レトロゲームを作ることができます。
仕様はレトロゲーム機ならではのチープかつシンプルな仕様になっているため、描画は16色まで、同時再生は4音までといった制限はありますが、気軽にゲームを作り始めることができます。
GitHubのREADMEでは詳しい日本語の説明もありますので、興味のある方は目を通しておくとよいでしょう。
❷Panda3D
Panda3Dは、PythonとC++でゲームを開発するための3Dレンダリングおよびゲーム開発を行うゲームエンジンです。
有名どころのUnityやUnreal Engineよりもとっつきやすく、多機能という点で注目している人も多いです。
Pythonでのゲームの作り方を学べる参考書おすすめ3選!
Pythonでのゲームの作り方を学ぶ方法の中でもおすすめなのが、参考書を使って勉強することです。
参考書の情報は信憑性が高く、基礎的な情報から応用まで幅広く紹介していることが多いです。
この見出しでは、Pythonでのゲームの作り方を学べる参考書おすすめ3選を紹介します!
ゲームを作りながら楽しく学べるPythonプログラミング
本書はPythonの基礎の習得を目的としているため、プログラミング初心者でもゲーム作りからPythonやライブラリのPygameについて学ぶことができます。
基本編とゲーム編に分かれており、Pythonの基礎を理解している方の場合は基本編のPygameの章を読んでおくとよいでしょう。
第5章の「その他押さえておきたい事項」の章では、三角関数の基礎やIDLEでのデバッグの方法等、ゲームを作る上であったほうが良い知識が盛り込まれています。
後半には多くのサンプルが用意されていて、実際のコードから前半で学んだ文法がどのように使われているのか理解できる形になっています。
1つのゲームは1ファイルに収められているので自分で書いてデバッグして修正しての流れが気軽にできるようになっています。
初心者の方が楽しみながらPythonを身に着けるのにぴったりの書籍です。
また、Kindle Unlimitedだと読み放題対象なので、Amazonプライム会員の方は無料で読むことができます。
ゼロからやさしくはじめるPython入門 ~基本からスタートして、ゲームづくり、機械学習まで楽しく学ぼう!~
ゼロからやさしくはじめるPython入門 ~基本からスタートして、ゲームづくり、機械学習まで楽しく学ぼう!
本書は、Pythonの入門書となっており、プログラミングを初めて学ぶ人からゲームや機械学習に挑戦したい人を対象としている書籍です。
実際にプログラムを打ち込んで動かす事でPythonの基礎的な文法を学んでいくことができます。
初めての人でも堅苦しいものにならないように工夫がされていて、簡単で楽しいサンプルがたくさん用意されています。
また、最後の方の章になると他のPython×ゲームの入門書にはあまありない、文字認識や画像判定など機械学習や高度なゲーム制作の内容も盛り込んでおり、実践的な内容も含んでいます。
基礎を学んだうえで次のステージにステップアップしていくための準備もできるようになっています。
12歳からはじめるゼロからのPythonゲームプログラミング教室
12歳からはじめるゼロからのPythonゲームプログラミング教室
簡単なミニゲームを作りながらPythonを学ぶ、ライトな表紙に対してしっかり学べる良書です。
「12歳からはじめる」と言っているように、プログラム初心者でも読み進めることができます。また、本書ではIDEにVisual Studio Codeを使っています。
同IDEはフリーで動作が軽いながらも本格的な機能を提供し、追加パッケージをインストールすることで他の言語の開発環境にも適用できます。この本でVSCodeの使い方を学べるのでお勧めです。
「Pythonを独学で学びたい!」という方は以下の記事を参考にしてみてください!
機械学習に優れた言語「Python」を独学で習得する方法を紹介!Pythonでゲームを作るときに役立つコードサンプルを解説
pygameを使ったサンプル
pipでpygameをインストールするといくつかのサンプルゲームを実行できます。
python -m pygame.examples.
例えば、インベーダーゲームの場合は以下のコマンドで遊べるようになります。
python -m pygame.examples.aliens
これらのゲームのソースはpythonのコマンドが格納されているフォルダの下のLib>site-packages>pygame>examplesに格納されています。
こちらもゲーム作りの参考になりますので気になったら見てみるといいでしょう。
kivyを使ったサンプル
以下の公式サイトのギャラリーでは、kivyを使って開発されたゲームが紹介されています。
中でもゲームのDeflectouchやFishLifeなど、リンクが「Source Code」となっているものはGitHubにソースコードが置いてありますので、是非参考にしてみて下さい。
pyxelを使ったサンプル
Pyxelをpipでインストールすると、以下のコマンドを実行することでサンプルコードを見ることができるようになります。
install_pyxel_examples
上記コマンドにより、コマンド実行時のカレントディレクトリに「pyxel_examples」というフォルダを作り、Pyxelのサンプルコード一式をコピーします。
サンプルを実行するにはpyxel_examplesフォルダに移動してpythonコマンドでゲームを実行します。
例えばこのフォルダ直下にある02_jump_game.pyを実行するには下記のコマンドを実行します。
cd pyxel_examples
python 02_jump_game.py
【まとめ】Pythonを使って楽しいゲーム作りを!
「DMM WEBCAMP MEDIA」では、
- Pythonでのゲーム作りに使えるライブラリやゲームエンジン
- Pythonでのゲーム作りに参考になる書籍
- Pythonで実際に使えるサンプルコード
紹介してきました。
Pythonでゲームを作るためのゲーム用やGUIのライブラリやゲームエンジンにはどのようなものがあるかご理解いただけましたでしょうか。
Pythonの基礎を学んだら、サンプルコードの写経をしてみてください。
Pythonで実装されたゲームのサンプルコードは豊富にありますので、この記事に載っているもの以外でもGitHub、GitLab等で探してみてください。