こんにちは、インストラクターのフクロウです。
ディープラーニングを使って、ゲームの攻略をする研究が話題になっていることをご存知ですか?
と驚かれている方もいるのではないでしょうか?ディープラーニングで使うPythonは実行速度が遅く、正直ゲームを実装するプログラミング言語としては向いてないというのが一般的ですよね。
しかし、PythonでもライブラリやUnityなどのゲームエンジンと連動させることで、ゲーム制作やゲームの操作をする事ができます。せっかくならPythonを学んでAiを活用したゲーム操作やゲーム制作を学びたいという方は多いのではないでしょうか?
そこでこの記事では、機械学習と連動させて様々なゲームを操作するために、Pythonでゲームを扱う方法をご紹介いたします。
【この記事でわかること】
- Pythonでゲームを作るライブラリ
- Pythonから操作できるゲームエンジン
- ゲーム攻略を行う深層学習モデル
Pythonでゲームを作ることは可能です
まず結論から言いますと、Pythonでゲームを作ることは可能です。これより実際にPythonを使って作られたゲームや作り方を紹介していきます。
しかし、本来Pythonは人工知能や機械学習の開発、データ分析や統計、Webアプリケーション開発において使われますので、その点は覚えておきましょう。
Pythonで作られたゲームの例
実際にpythonでどんなゲームが作れるのか?を紹介していきます。
まずはこちら、あのスーパーマリオもPythonで作ることが可能とのことです!
それ以外にも様々なジャンルのゲームがPythonによって作ることができます。
- ワードスライダー/パズルゲーム
- スペースエクスプローラ/シューティングゲーム
- ボンバーマンクローン/アクションゲーム
Pythonは完全にゲーム向きではないとはいえ、かなりクオリティの高いものが作れますし、色々な人が試作品と共にコードも公開しているので、見てみてください。
ゲーム作りに最適なのはUnityかC#
ここまでPythonでゲーム開発は可能であり、具体例も紹介してきましたが、冒頭で話したように本来Pythonはゲーム向きの言語というわけではなく、人工知能開発やデータ分析において使われることがほとんどです。
ゲーム開発に向いているプログラミング言語というと、以下の言語の方が向いています。
- Unity
- C++
- C#
- JavaScript
- Swift
- Ruby
もしあなたがゲーム作りたくて、なんとなくPythonが流行っているからという理由でPythonを選ぼうとしている場合は別の言語の検討もした方がいいかもしれません。詳しくは下記の記事をご覧ください。
「もう何を学べばいいか分からない」「おすすめの言語を知りたい」というあなたは、質問に答えるだけで1分であなたに最適な言語を診断するプログラミング言語診断アプリがありますので、下記のボタンより受けてみてください。
あなたに合ったプログラミング言語を診断する
Pythonでゲームを作る方法
それではPythonをを使ってゲームを作る2種類の方法について解説していきます。
- Pythonを使ったゲーム開発
- Pythonで開発した機械学習とゲームとの連携
Pythonのゲームライブラリを使う
Pygame
[Pygameのロゴ:https://www.pygame.org/news]
Pythonでゲームを実装すると言ったら、まず名前が挙がるのがこのPygameです。Pygameは長い間親しまれてきたゲームライブラリなので、比較的情報が多いのも魅力の1つです。
ちなみにPygameを活用すれば、Pythonだけでゲーム開発ができます。Pygameに慣れれば手軽にPythonの機械学習アプリのデモを作ることもできるようになりますよ。
ゲームに興味があってPythonを学習した方には是非使ってみてほしいライブラリです。学習用に日本語で代表的なブログ記事をリストアップしました。ぜひ参考にして下さい。
10年前の記事ですが、枠の表示からRPG、ライフゲームまで網羅されていて今でも参考になる記事です。私自身、非常に参考になったので、Pygameを試したい方はぜひ一読下さい。
こちらもシリーズもの。比較的新しい記事なので参考になります。
Kivy
kivyはPythonでGUIアプリケーションを作るためのライブラリです。
マルチタッチアプリのような凝ったGUIアプリが比較的かんたんに作成できます。
公式ドキュメントはもちろん英語なのですが、有志が日本語に翻訳してくれているので、途中までは日本語で勉強することができるでしょう。
また、Kivy-DesignerというGUIデザインツールも存在しています。
[画像はhttps://github.com/kivy/kivy-designer より]
アルファ版ですがコーディングの労力を減らすこともできるので、いろいろあるPythonのGUI作成ライブラリの中でも有望株ではないでしょうか。
深層学習と連動するゲームエンジンを使う
Unity
[unity ML-Agents: https://unity3d.com/jp/machine-learning/]Unityはマルチプラットフォームに対応したゲームエンジンです。その中でもML-Agentsという機能に注目。
PythonのTensorflowと協力して、強化学習などの機械学習手法をUnity上のゲームで試す環境を提供します。Unity自身はUnreal Engineと並び、現在のゲームエンジンにおける二強の一つですし、強化学習との連携ができるというのは非常に面白そうですね。
ゲーム攻略を行う深層学習モデル
DQN(deep Q-network)
有名な深層強化学習手法の一つです。
ゲーム攻略を行う深層強化学習モデルと言ったら、まずこれの名前が挙がるんじゃないでしょうか。解説は非常に難しいので、素晴らしい外部記事へのリンクを貼っておきます。
⇒DQN(Deep Q Network)を理解したので、Gopherくんの図を使って説明
Pythonのゲーム開発はまずは書籍で学んでいこう
Pythonのゲーム開発をするには、一冊通して手を動かしながら読み進めることで1つのゲームを作れる書籍を通じて学んでいきましょう。おすすめの本はこちらです。
本書は基本編とゲーム編の2部構成になっており、Pythonの基礎をしっかりと学びながら豊富なサンプルでゲームプログラミングが学ぶことができます。
実際にプログラミングしてゲームで遊びながら、Pythonをじっくりと学ぶことができるのでオススメの1冊です!
その他にもPythonでゲーム開発をするのにおすすめの書籍をこちらの記事で紹介しているので、複数冊から選びたい方はご覧ください。
本格的に学習するならプログラミングスクールへ
ここまで読んでみて、Pythonを使ってゲーム開発をし、のちのちはエンジニアとして仕事にしたいと考えているあなたはプログラミングスクールでの学習がおすすめです。
スクールに通うことで、独学よりも圧倒的に早いスピードで、転職できるレベルまでプログラミングスキルの習得が可能です。
弊社「侍エンジニア」では、下記の3つの特徴であなたのプログラミング学習をサポートします。
- Pythonのプロにマンツーマンでレッスンを受けられる
- あなたのオリジナルのゲームを開発して、それを元に転職活動が可能
- オリジナルのゲーム開発のためにフルオーダーメイドのカリキュラムで授業を受けられる
無料カウンセリングでは、そもそもなぜプログラミングを学びたいのか?なんの目的で?というヒアリングをさせていただいた上で、エンジニアとしてそれを叶えるキャリアの設計や、最適な言語と学習手順をご提案いたしますので、無料体験を受けるだけでも独学の学習効率が何倍にも上がる内容となっています。
下記のカレンダーより、お気軽にお越しください。オンラインも可能なので全国各地どこからでも承っております。

まとめ
この記事ではPythonによるゲーム開発や、深層学習と連動できるゲームエンジンについて紹介しました。
ゲームはその開発自体も面白いですが、機械学習と絡めて研究対象として見ても興味深いものです。
プログラミングを覚えたならば一度くらいはゲームを作ってみても面白いと思います。
是非ここで紹介したライブラリやゲームエンジンを触ってみてください。
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】