https://web-camp.io/magazine/archives/20687
Pythonでゲームを作る 開発方法や参考書、サンプルコードを紹介!
Pythonはライブラリが豊富なことで有名ですが、ゲームを作るためのゲーム用やGUIのライブラリもたくさん開発されています。本記事では、Pythonでのゲーム作りに使えるライブラリやゲームエンジンのご紹介や、Python ...
web-camp.io
Pythonはライブラリが豊富なことで有名ですが、ゲームを作るためのゲーム用やGUIのライブラリもたくさん開発されています。本記事では、Pythonでのゲーム作りに使えるライブラリやゲームエンジンのご紹介や、Pythonでのゲーム作りに参考になる書籍、サンプルコード等のご紹介をします。
Pythonでのゲーム作りに興味はあるけれどどこから手を付けていいかわからないという方のご参考になりましたら幸いです。
ダウンロードなどの環境構築の段階からPythonを、学び始めたいという方は以下の記事を参考にしてください。
\参加者満足度99%!/ 無料カウンセリングに申し込む ※最短1分で申し込み可能 |
目次 1 Pythonでのゲームの作り方 2 Pythonのゲーム用ライブラリ 3 Pythonのゲームエンジン 4 ゲームの作り方を学べる参考書 5 参考になるコードサンプル 6 まとめ |
Pythonでのゲームの作り方
Pythonでゲームを作るには、Pythonでのゲーム作りに使えるPythonのゲーム用やGUIライブラリ、ゲームエンジンが大いに役に立ちます。
Pythonのゲーム用ライブラリは、ゲームを作るのに使える汎用的な機能や画像描画等をひとまとまりにした部品のようなものです。ゲームエンジンは、コンピュータゲームを作るのに共通して使われることの多い映像や音等の主要な処理を行う機能を持ったソフトウェアを指します。
ゲーム開発を一からやるとなると大変な労力がかかりますが、これらの部品をうまく組み合わせていくことでゲームでの高度な表現も出来るようになります。
Pythonのゲーム用ライブラリ
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のゲームエンジン
Pyxel |
Pyxelは、Pythonで作られたゲームエンジンで、レトロゲームを作ることができます。
仕様はレトロゲーム機ならではのチープかつシンプルな仕様になっているため、描画は16色まで、同時再生は4音までといった制限はありますが、気軽にゲームを作り始めることができます。
GitHubのREADMEでは詳しい日本語の説明もありますので、興味のある方は目を通しておくとよいでしょう。
Panda3D |
Panda3Dは、PythonとC++でゲームを開発するための3Dレンダリングおよびゲーム開発を行うゲームエンジンです。有名どころのUnityやUnreal Engineよりもとっつきやすく、多機能という点で注目している人も多いです。
ゲームの作り方を学べる参考書
Pythonでゲームの作り方を学べる参考書も多く出版されています。Pythonの基礎をサンプルを書いて手を動かしながら学んでいくものや、Pythonのゲーム用ライブラリを使ってゲームプログラミングの手法を学ぶ書籍等があります。
ゲームを作りながら楽しく学べるPythonプログラミング |
本書はPythonの基礎の習得を目的としているため、プログラミング初心者でもゲーム作りからPythonやライブラリのPygameについて学ぶことができます。
基本編とゲーム編に分かれており、Pythonの基礎を理解している方の場合は基本編のPygameの章を読んでおくとよいでしょう。第5章の「その他押さえておきたい事項」の章では、三角関数の基礎やIDLEでのデバッグの方法等、ゲームを作る上であったほうが良い知識が盛り込まれています。
後半には多くのサンプルが用意されていて、実際のコードから前半で学んだ文法がどのように使われているのか理解できる形になっています。1つのゲームは1ファイルに収められているので自分で書いてデバッグして修正しての流れが気軽にできるようになっています。
初心者の方が楽しみながらPythonを身に着けるのにぴったりの書籍です。
また、Kindle Unlimitedだと読み放題対象なので、Amazonプライム会員の方は無料で読むことができます。
ゼロからやさしくはじめるPython入門 ~基本からスタートして、ゲームづくり、機械学習まで楽しく学ぼう! |
ゼロからやさしくはじめるPython入門 ~基本からスタートして、ゲームづくり、機械学習まで楽しく学ぼう!
本書は、Pythonの入門書となっており、プログラミングを初めて学ぶ人からゲームや機械学習に挑戦したい人を対象としている書籍です。実際にプログラムを打ち込んで動かす事でPythonの基礎的な文法を学んでいくことができます。初めての人でも堅苦しいものにならないように工夫がされていて、簡単で楽しいサンプルがたくさん用意されています。
また、最後の方の章になると他のPython×ゲームの入門書にはあまありない、文字認識や画像判定など機械学習や高度なゲーム制作の内容も盛り込んでおり、実践的な内容も含んでいます。基礎を学んだうえで次のステージにステップアップしていくための準備もできるようになっています。
12歳からはじめるゼロからのPythonゲームプログラミング教室 |
12歳からはじめるゼロからのPythonゲームプログラミング教室
単行本で購入すると表紙が少し恥ずかしいという方は、Kindle版を購入すれば問題ありません。簡単なミニゲームを作りながらPythonを学ぶ、表紙の割に(!?)しっかり学べる良書です。「12歳からはじめる」と言っているように、プログラム初心者でも読み進めることができます。また、本書ではIDEにVisual Studio Codeを使っています。同IDEはフリーで動作が軽いながらも本格的な機能を提供し、追加パッケージをインストールすることで他の言語の開発環境にも適用できます。この本でVSCodeの使い方を学べるのでお勧めです。
参考になるコードサンプル
Webサイトや参考書等である程度Pythonの文法などを理解してきたら、GitHubやライブラリに付属しているサンプルコードの写経をしてみると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でゲームを作るための方法や参考になる書籍、サンプルコード等を紹介してきました。Pythonでゲームを作るためのゲーム用やGUIのライブラリやゲームエンジンにはどのようなものがあるかご理解いただけましたでしょうか。
プログラミング初心者でもゲーム作りをすることで学ぶことができる参考書もご紹介しました。Pythonの基礎を学んだら、サンプルコードの写経をしてみてください。Pythonで実装されたゲームのサンプルコードは豊富にありますので、この記事に載っているもの以外でもGitHub、GitLab等で探してみてください。
'描く' 카테고리의 다른 글
ソレキアの事業とサービスを紹介しています。以下のアイコンをクリックして、それぞれご確認ください。 (0) | 2021.07.02 |
---|---|
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル (0) | 2021.07.02 |
Oracleの階層問い合わせ(2) (Level,sys_connect_by_path) (0) | 2021.07.02 |
SAS言語派集まれ!SAS StudioからSASのAIを使ってみよう! (0) | 2021.07.02 |
100種類もあるもののレーベンシュタイン距離を効率的に求めたい (0) | 2021.07.02 |
댓글