Pythonでゲームプログラミングをするメリットはあるのか?
プログラミング初心者脱出入門編をご紹介します。
PythonはどちらかというとAIや機械学習、IoTの分野を得意としていて、ゲームプログラミングには不向きと思う人が多いです。
実際にゲーム開発ではKotlinやSwift、UnityやUnreal-Engineが主流になっていて、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は3Dモデリングや複雑なフラグ制御といった面でゲーム開発として主流のUnityやUnreal-Engineには劣ります。
ライブラリによって突然バージョンが上ると非推奨になってしまったり、急に使えなくなってしまうということがかなりあります。
使えるにしても、組み合わせをしっかり意識しなくてはメモリを物凄く消費したり、性能面でC#やC++を利用しているにも関わらず性能が劣るケースもあります。
そのため、C#やC++の実務経験を数年積んだエンジニアでも使いこなすことは困難な言語になっています。
そのため、複雑なライブラリの組み合わせであったり、ライブラリの相性や推奨・非推奨など気にすることなくプログラミングをすることができます。
Pythonはインタプリタ型言語の中では処理速度は非常に遅い言語だと言われています。
そのため、FPSゲームやグラフィカルな演出を伴うカジノゲームには不向きです。
しかし玄人の中にはその弱点をライブラリを調整することで補い、格闘ゲームを作成したという事例もあります。
補足:インタプリタ型言語とは プログラミング言語の命令を一つずつ,機械語に解釈しながら実行する方式で,解釈実行方式とも呼ばれています。 作成したソースプログラムをコンパイル無しに実行できるという点がこの方式のメリットです。 一方、解釈しながら実行されるために、すべて機械語に翻訳されたコンパイル型言語と比べるとどうしても処理性能が落ちます。 また、繰り返し呼ばれる部分についても、都度機械語に翻訳をしているため性能を出すためにはプログラミングのセンスが問われる一面もあります。 |
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分足らずでインストールが完了します。
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万部に到達しており、プログラミングの書籍の中ではかなりのベストセラーになっています。
レベルとしては入門者よりは少し高めの人から中級者をターゲットとしています。
また、同じ章の中でもいきなり専門性が増したりする箇所があります。
そのため、よく「XXページ学習した」「XXの構文について学習した」という詰め込みの学習では理解することは難しいでしょう。
各章をしっかりと理解するまで学習して1冊読み終えた頃には簡単なカードゲームやRPGが組めるようになっているはずです。
Pythonでつくる ゲーム開発 入門講座
Pythonで作るゲーム開発 入門講座は初めてPythonでゲームを作りたいという人をターゲットにした書籍になっています。
著者はナムコや任天堂といった大手ゲーム会社に所属していた経歴を持っており、プログラミングの教育指導にも力を入れています。
そのため本も物凄くわかりやすくなっています。
ゲームのジャンルもクイズ、すごろく、おみくじ、迷路ゲーム、診断アプリ、落ち物パズル、本格RPGの基礎を網羅しています。
きっと作りたかったジャンルのゲームが作れるようになりますよ。
Amazonのレビューも4.5と高評価であることから、書籍としての支持率の高さが伺えます。
まとめ
Pythonは確かにその処理性能の遅さからゲームには不向きだというのは現在のゲーム業界の定説になっています。
「ゲームを開発しよう」となったときに「C#」「C++」「Java」は出てきますが、「Python」という単語はほぼ出てきません。
現在は遅くても、ライブラリが改善されたり、コンパイラと同居できるようになったりした場合、
あるいは処理性能の遅さというのを逆手に取って細かいグラフィックを挿入した映画のようなゲーム、駆け引きを楽しむようなゲームが出てくる可能性もあります。
特にPythonの場合はリリースノートを見ると1年の間に何回もバージョンアップや改良が行われていることが分かります。
Pythonのこれからの進化や参入業種の拡大はPythonソフトウェア財団だけではなく、私達一人一人のエンジニアにかかっています。