Pythonでゲームを作るメリットは?プログラミング初心者を脱する入門編!

Pythonでゲームプログラミングをするメリットはあるのか?

プログラミング初心者脱出入門編をご紹介します。

PythonはどちらかというとAIや機械学習、IoTの分野を得意としていて、ゲームプログラミングには不向きと思う人が多いです。

プログラマー志望者プログラマー志望者

実際にゲーム開発ではKotlinやSwift、UnityやUnreal-Engineが主流になっていて、Pythonを利用したゲームプログラミングはあまり聞きません。

ただ、ちょっと待ってください。

それだけで「ゲームに不向き」と結論付けてしまうのは早計です。

プログラミング言語を一つの方向や一つの流行でしか見ていないという可能性があります。

発想の転換で視野を広げれば、Pythonはゲームプログラミングの分野でも十分に機能を発揮できる言語です。

また、Pythonによるゲームプログラミングを推奨する人もいます。

中にはPythonの弱点を克服するような構成でゲーム開発を行って、実際にサービスとして稼働している事例もあります。

この記事ではPythonでゲームを制作するメリットから、簡単なゲームが作れるようになるまでの全ての手順を解説し、ゲーム制作をの一連の流れを体感していただきます。



Pythonでプログラミングゲーム制作に入門しよう

Pythonはプログラミングをする上で非常にシンプルな言語構造しているので習得しやすい言語になります。

そのシンプルさはゲーム制作にも適していますし、実際にいくつかPythonでのゲーム作成の事例もあります。

Pythonはゲームプログラミング初心者がゲームプログラミングの世界に踏み出す最初の一歩として物凄く適したプログラミング言語になっています。

この章ではまずPythonを理解してもらうために

  • Pythonとはどんなプログラミング言語か
  • Pythonでゲームを作るメリットは?
  • Pythonではどんなゲームが作れるのか?

以上の3つに分けて解説します。

Pythonとはどんなプログラミング言語か

Pythonとは1991年にグイド・ヴァンロッサムによって設計、開発された言語になります。

現在はPythonソフトウェア財団によって運営が行われ、2021年2月19に最新のバージョンである3.9.2がリリースされました。

Pythonのプログラミング言語としての特徴は非常にシンプルな作りかつ、充実したライブラリが大きな特徴になっています。
プログラミングジャパンプログラミングジャパン

Pythonがシンプルである大きな理由としては「充実したライブラリ」は外せない理由になります。

実際にプログラマはプログラミング言語そのものを理解することは苦労しません。

しかし、このライブラリを覚えて使いこなすために時間をかけて勉強する必要があります。

また、中には独自でライブラリを作成する必要があります。

実際に仕事をする上では、サードパーティ(別の会社が作成した製品)のライブラリを利用を禁止している場合もあります。

機能実現とライブラリの利用の間で苦悩するプログラマはかなり多いです。

それらのプログラマとしてジレンマを、Pythonの充実したライブラリにて解決してくれます。

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

Pythonでゲームを作るメリットは、コードがシンプルなことです。

簡易的ゲームならばプログラミング初心者でも簡単に作れます。

実際にPythonは3Dモデリングや複雑なフラグ制御といった面でゲーム開発として主流のUnityやUnreal-Engineには劣ります。

しかし、UnityもUnreal-Engineもプログラミング言語(C#やC++)を覚える以上にライブラリの種類であったり、組み合わせを意識しながら細かいプログラムを組む必要があります。

ライブラリによって突然バージョンが上ると非推奨になってしまったり、急に使えなくなってしまうということがかなりあります。

使えるにしても、組み合わせをしっかり意識しなくてはメモリを物凄く消費したり、性能面でC#やC++を利用しているにも関わらず性能が劣るケースもあります。

そのため、C#やC++の実務経験を数年積んだエンジニアでも使いこなすことは困難な言語になっています。

その点、Pythonは多少はライブラリについて意識をする必要はあるものの、AIや機械学習に関するライブラリや演算に関するライブラリが非常に充実しています。

そのため、複雑なライブラリの組み合わせであったり、ライブラリの相性や推奨・非推奨など気にすることなくプログラミングをすることができます。

Pythonはインタプリタ型言語の中では処理速度は非常に遅い言語だと言われています。

そのため、FPSゲームやグラフィカルな演出を伴うカジノゲームには不向きです。

しかし玄人の中にはその弱点をライブラリを調整することで補い、格闘ゲームを作成したという事例もあります。

「Pythonだから」というだけでゲーム開発を諦めるのは早計です。
補足:インタプリタ型言語とは

プログラミング言語の命令を一つずつ,機械語に解釈しながら実行する方式で,解釈実行方式とも呼ばれています。

作成したソースプログラムをコンパイル無しに実行できるという点がこの方式のメリットです。

一方、解釈しながら実行されるために、すべて機械語に翻訳されたコンパイル型言語と比べるとどうしても処理性能が落ちます。

また、繰り返し呼ばれる部分についても、都度機械語に翻訳をしているため性能を出すためにはプログラミングのセンスが問われる一面もあります。

Pythonではどんなゲームが作れるのか?

Pythonによるゲーム開発の事例を調べてみると少し懐かしいゲームが開発事例として存在します。

プログラミングジャパンプログラミングジャパン
また、レトロゲームのみならず、グラフィックにかなり力を入れたゲームが数多く公開されています。

エンジニアエンジニア

例えば、

などが挙げられます。

勿論、初心者や入門者がこのクオリティーのゲームを開発することは不可能です。

しかし、Pythonの特徴を理解し、弱点である処理性能と向き合って本当の意味で「習得」すればこれらのゲームも開発出来ます。

これらのゲーム開発は

  • 格闘ゲームであればUnreal-Engine(C++)
  • グラフィカルなRPGやシミュレーションであればUnity(C#)
  • マリオはC++やC言語、昔であればAssembler

と言われていたゲーム業界での常識を覆すものであり、今後のゲーム開発の市場に新たな選択肢をもたらしたことになります。



Pythonでプログラミングするための環境構築手順

Pythonを使うための環境構築手順を説明致します。

プログラミングジャパンプログラミングジャパン

環境についてはWindowsについての説明になりますが、Macについても同様のものとなっています。

章の最後におすすめのエディタも紹介しています。

Pythonをダウンロードする

Pythonの公式サイトを開き、Python本体をダウンロードします。

「Downloads」にカーソルを当てるとインストール可能なOSおよびバージョンが表示されます。

対象のPython(例では3.9.2)をダウンロードします。

ダウンロードしたインストーラを実行する

インストーラのダウンロードが完了したら、インストーラを実行します。

「Add Python3.9 to PATH」のチェックについては必須ではありません。

しかしチェックをしない場合は自分であとから環境変数を設定する必要があるため、初心者の方は入れておきましょう。

チェックが完了した「Install Now」をクリックします。

「Install Now」の下に表示されているフォルダにPythonはインストールされます。

インストールが開始するので、しばらく待ちます。

インストールのプログレスバーが最後まで行けばインストールが完了します。

時間にして10分足らずでインストールが完了します。

「Setup was successful」という画面が出ればインストールは正常終了です。

Pythonがインストールされたかチェックする

Pythonが正常にインストールされたかチェックするためにコマンドプロンプトからPythonのコマンドを実行します。

まずコマンドプロンプトを立ち上げます。

「Windows」+「r」キーを押下して「ファイル名を指定して実行」のポップアップを表示します。

「名前」のところに「cmd」と入力し「OK」ボタンをクリックします。

コマンドプロンプトが起動したら、インストールされているPythonのバージョンをチェックするコマンドを入力します。

コマンド:python –version

画面キャプチャのように現在インストールされているバージョン(例では3.9.2)が表示されていればインストールが成功しています。

ここでコマンドエラーが発生した場合は

①–versionの前に半角スペースを入れ忘れた

②環境変数でパスが通っていない

の何れかになります。

①の場合はもう一度スペリングを見直して実行してください。

②の場合は手動で環境変数を設定することもできますが、間違えたり、必要なものを削除してしまうとパソコンの動作に影響があります。

エンジニアエンジニア

パソコンやOSについて理解が深まるまでは一旦アンインストールしてから「ダウンロードしたインストーラを実行する」の手順を再度実行してください。

Pythonでコーディングする際のおすすめエディタ

Pythonでコーディングをする際に明確な統合開発(IDE)の指定はありません。

そのため、テキストエディタでプログラミングをする必要があります。

その中でオススメなのは

になります。

サクラエディタはメモ帳の代わりに使ったりしている人が多いので割愛します。

Microsoft  Visual Studio Codeはコードを書くことに特化したフリーのエディタになっています。

インデント(字下げ)の設定であったり、特定のフォルダの下のファイルをツリー表示したりできて、実際のVisual StudioやEclipseに似たような機能が備わっています。

Pythonの他にもHTMLやCSS、Javascriptの開発もできます。

エンジニアエンジニア

作成したPythonのプログラムをWebシステムと連動して開発を行うといったことも可能です。

しかもVisual StudioやEclipseに比べて消費メモリが少なく非常に軽いため、多少スペックについて心配があるパソコン上でも問題なく動作します。



Pythonのゲーム制作入門におすすめの参考書籍

Pythonでゲーム制作入門のためにおすすめの参考書籍は

になります。

独習Python

独習Pythonはゲームのみならず、Pythonについて幅広く記載した書籍になります。

総売り上げ部数は110万部に到達しており、プログラミングの書籍の中ではかなりのベストセラーになっています。

「独習」シリーズは他の言語でも出ており、エンジニアやIT企業にも重宝されています。

レベルとしては入門者よりは少し高めの人から中級者をターゲットとしています。

そのため初心者は少し理解が出来ない部分があるかもしれないので、反復学習が必須になっています。

また、同じ章の中でもいきなり専門性が増したりする箇所があります。

そのため、よく「XXページ学習した」「XXの構文について学習した」という詰め込みの学習では理解することは難しいでしょう。

各章をしっかりと理解するまで学習して1冊読み終えた頃には簡単なカードゲームやRPGが組めるようになっているはずです。

Pythonでつくる ゲーム開発 入門講座

Pythonで作るゲーム開発 入門講座は初めてPythonでゲームを作りたいという人をターゲットにした書籍になっています。

著者はナムコや任天堂といった大手ゲーム会社に所属していた経歴を持っており、プログラミングの教育指導にも力を入れています。

そのため本も物凄くわかりやすくなっています。

細かいプログラム例や説明がされており初心者でも多少苦労はするものの真似をすればゲームが作れるようになっています。

ゲームのジャンルもクイズ、すごろく、おみくじ、迷路ゲーム、診断アプリ、落ち物パズル、本格RPGの基礎を網羅しています。

エンジニアエンジニア

きっと作りたかったジャンルのゲームが作れるようになりますよ。

Amazonのレビューも4.5と高評価であることから、書籍としての支持率の高さが伺えます。



まとめ

Pythonは確かにその処理性能の遅さからゲームには不向きだというのは現在のゲーム業界の定説になっています。

「ゲームを開発しよう」となったときに「C#」「C++」「Java」は出てきますが、「Python」という単語はほぼ出てきません。

しかし、この記事で紹介したようにPythonで作られたゲームは存在し、一定の性能を出していることが分かっています。

現在は遅くても、ライブラリが改善されたり、コンパイラと同居できるようになったりした場合、

もともとの強みであった機械学習やAIの分野を応用したゲームが数多く輩出される日が来るかもしれません。

あるいは処理性能の遅さというのを逆手に取って細かいグラフィックを挿入した映画のようなゲーム、駆け引きを楽しむようなゲームが出てくる可能性もあります。

特にPythonの場合はリリースノートを見ると1年の間に何回もバージョンアップや改良が行われていることが分かります。

Pythonのこれからの進化や参入業種の拡大はPythonソフトウェア財団だけではなく、私達一人一人のエンジニアにかかっています。