Pythonをゲーム作りで学ぶ方法を解説!【サンプルコードあり】 | WEBCAMP NAVI
【2月の受講枠も残りわずか】

Pythonをゲーム作りで学ぶ方法を解説!【サンプルコードあり】

Python ゲーム

Pythonはライブラリが豊富なことで有名ですが、ゲームを作るためのゲーム用やGUIのライブラリもたくさん開発されています。

そんな豊富なライブラリを持つPyhtonで「自分でゲームを作ってみたい!」という方は多いのではないでしょうか。

そこで「WEBCAMP NAVI」では、

  • Pythonでのゲーム作りに使えるライブラリやゲームエンジン
  • Pythonでのゲーム作りに参考になる書籍
  • Pythonで実際に使えるサンプルコード

を紹介します!

Pythonでのゲーム作りに興味はあるけれどどこから手を付けていいかわからないという方のご参考になりましたら幸いです。

ダウンロードなどの環境構築の段階からPythonを、学び始めたいという方は以下の記事を参考にしてください。

python 【Python環境構築】ダウンロードから動作確認まで!

Pythonでのゲーム作りにはライブラリとエンジンが重要!

Pythonでゲームを作るには、Pythonでのゲーム作りに使えるPythonのゲーム用やGUIライブラリ、ゲームエンジンが大いに役に立ちます。

Pythonのゲーム用ライブラリは、

ゲームを作るのに使える汎用的な機能や画像描画等をひとまとまりにした部品

のようなものです。

ゲームエンジンは、

コンピュータゲームを作るのに共通して使われることの多い映像や音等の主要な処理を行う機能を持ったソフトウェア

を指します。

ゲーム開発を一からやるとなると大変な労力がかかりますが、これらの部品をうまく組み合わせていくことでゲームでの高度な表現も出来るようになります。

Pythonでゲームを作れるのか?詳しく解説をしてみ

ゲームの開発によく使われているプログラミング言語

Python以外にもゲームの開発に使われるプログラミング言語ほ多数あります。

Python以外のゲーム開発に使われているプログラミング言語の特徴を知ることによって、Pythonで作るのに向いているゲームを知ることができます。

特に使われているプログラミング言語は、

  • 処理速度が早く、C言語をより高度に使えるように拡張したC++
  • C++よりも書きやすく、開発の環境が整っているC#
  • ブラウザゲームの開発によく使われ、学習コストの低いJavaScript

の3つです。

それぞれが異なる特徴を持つため、作りたいゲームによってプログラミング言語を使い分けるのが一般的な方法とされています。

Pythonはこの3つに比べると処理速度は落ちますが、シンプルなゲームを作るのに適しているプログラミング言語です。


それぞれのプログラミング言語について詳しく知りたい方は以下の記事を参考にしてみてください!

プログラミング言語一覧 プログラミング言語一覧紹介!難易度や人気ごとにランキングで解説

Pythonでゲームを作るメリットは?

他のプログラミング言語もある中で、Pythonを使ってゲームを作るメリットは何なのでしょうか?

これはPythonのみに限った話ではありませんが、

プログラミング言語でゲームを作ることは非常に効率のいい学習方法

となります。

例えばPythonでゲームを作る時には

  • Pythonに関する基本的な知識
  • ゲームを作るために必要なコードの記憶
  • コードを組み合わせる能力

が必要となり、自分がこれまでに学んだことの総復習を行うことができます。

また、復習だけではなく新しいことも楽しみながら覚えられるのがPythonでゲームを作るメリットの1つです。


自分の実力を他の人に分かりやすい形で伝えられる、Pythonの資格について知りたい方は以下の記事を参考にしてみてください!

Pythonの資格を紹介!試験の概要や受験方法について (1) Pythonの資格!試験の概要や受験方法について解説

実際にPythonを使って作られたゲームを紹介!

シンプルなゲームを作るのに適しているPythonは、レトロゲームを模索したゲームを作るのに使われることが多いです。

ここでは実際にPythonを使って作られたゲームの実例を紹介します。

下記の画像をクリックすることで、プロジェクトページに移動してアクセスすることができます。

R-Typo

Mario Shell Defense

Falling Tetrominos

Pythonでよく使用されるゲーム用ライブラリ

ゲーム用ライブラリを活用することで、よりクオリティの高いゲームを作ることが容易になります。

この見出しではPythonでよく使用されるゲーム用ライブラリを紹介します。

  1. Pygame
  2. kivy

❶Pygame

Pythonのゲーム用ライブラリで一番有名なライブラリがPygameです。PygameはSDL(Simple DirectMedia Layer)とその補助関数のラッパーです。

SDLは、マルチメディア制御のためのクロスプラットフォームなCライブラリで、グラフィックの描画やサウンドの再生などのAPIを提供しています。

古くから親しまれているライブラリなので、学習するのに役に立つ国内外のサイトや書籍は見つけやすいです。


以下は、公式のPygameドキュメントです。

Pygameドキュメント

以下は、有志でPygameのリファレンスの日本語訳(一部)をされた方のドキュメントです。

Pygameドキュメント(日本語訳)

❷kivy

kivyマルチタッチのような入力方法も可能なGUIアプリが開発できるライブラリです。

OSに依存しないマルチプラットフォームな開発もでき、様々な入力デバイスに日々対応し更新されています。

例えばトラックパッドやTUIOというマルチタッチの通信プロトコル等をカバーしています。kivy-designerというkivyのGUIを設計するためのツールも合わせて使うことで、GUIの作りこみが簡単にできるようになります。


Pygameほど親しまれていないのか、あまり日本語の文献がありませんが、有志で日本語訳をされた方のドキュメントがあります。

kivyドキュメント(日本語訳)

Pythonでよく使用されるゲームエンジン

効率的にゲーム作りを行うためには、使いやすいゲームエンジンを使うことが重要になります。

この見出しではPythonでよく使用されるゲームエンジンを紹介します。

  1. Pyxel
  2. Panda3D

❶Pyxel

Pyxelは、Pythonで作られたゲームエンジンで、レトロゲームを作ることができます

仕様はレトロゲーム機ならではのチープかつシンプルな仕様になっているため、描画は16色まで同時再生は4音までといった制限はありますが、気軽にゲームを作り始めることができます。


GitHubのREADMEでは詳しい日本語の説明もありますので、興味のある方は目を通しておくとよいでしょう。

Pyxel READMEドキュメント

❷Panda3D

Panda3Dは、PythonC++でゲームを開発するための3Dレンダリングおよびゲーム開発を行うゲームエンジンです。

有名どころのUnityやUnreal Engineよりもとっつきやすく、多機能という点で注目している人も多いです。

Panda3Dドキュメント

Pythonでのゲームの作り方を学べる参考書おすすめ3選!

Pythonでのゲームの作り方を学ぶ方法の中でもおすすめなのが、参考書を使って勉強することです。

参考書の情報は信憑性が高く、基礎的な情報から応用まで幅広く紹介していることが多いです。

この見出しでは、Pythonでのゲームの作り方を学べる参考書おすすめ3選を紹介します!

ゲームを作りながら楽しく学べるPythonプログラミング

ゲームを作りながら楽しく学べる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にソースコードが置いてありますので、是非参考にしてみて下さい。

kivy ギャラリー

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を使って楽しいゲーム作りを!

「WEBCAMP NAVI」では、

  • Pythonでのゲーム作りに使えるライブラリやゲームエンジン
  • Pythonでのゲーム作りに参考になる書籍
  • Pythonで実際に使えるサンプルコード

紹介してきました。

Pythonでゲームを作るためのゲーム用やGUIのライブラリやゲームエンジンにはどのようなものがあるかご理解いただけましたでしょうか。

Pythonの基礎を学んだら、サンプルコードの写経をしてみてください。

Pythonで実装されたゲームのサンプルコードは豊富にありますので、この記事に載っているもの以外でもGitHub、GitLab等で探してみてください。

自宅にいながら、プロのキャリアアドバイザーに無料オンライン相談!

DMM WEBCAMPは転職成功率98%※1の全コースオンライン対応の転職保証型のプログラミングスクールです。短期間で確実にスキルを身につけて、ひとりひとりに寄り添った転職サポートで、未経験からのエンジニア転職を叶えます!

外出自粛期間中でも、自宅にいながらオンライン学習でスキルを高めることができます。

キャリアに迷ったら、まずはビデオ通話で無料キャリア相談を受けてみませんか?

自宅で過ごす時間が増えた今こそキャリアアップを目指しましょう!この機会を活用し、ぜひDMM  WEBCAMPの無料カウンセリングをご利用ください。

オンラインで実施中/
【無料】キャリア相談の日程を見る

※ 1 2020年4月時点