本記事はPythonでゲーム制作を作るための実装例やノウハウについてまとめている記事です。
ゲーム制作をする場合に大きくわけて2つの処理があります。
「ゲーム画面の描画処理」と「リアルタイム処理」と2つです。
本記事では「ゲーム画面の描画処理」と「リアルタイム処理」を中心にゲーム制作の方法をまとめました。
主にiPhoneアプリ「Pythonista」を活用したアプリ作成例を紹介しています。
Pythonを例としておりますが、基本的な考え方はUnityなど、他の言語で実装する場合にも応用可能です。
目次
Pythonでゲーム画面描画に必要な処理
・オブジェクトの生成処理
・接触判定(当たり判定)
・背景・BGM・SEの追加
オブジェクトの生成処理
オブジェクトの生成処理は、各種オブジェクト(キャラクター・障害物・地面・壁・スコア表示など)を画面に描画する処理です。
画面に何もなければゲームとならないので、オブジェクトの生成処理は画面を制作する上で最も重要な処理となります。
オブジェクト生成処理によって描画されたオブジェクトはパラメータを書き換えることで移動したり、イメージ(見た目)を変更することが可能です。
オブジェクト生成処理は重い処理なので、更新ループ時に生成すると非常に重くなります。初期設定でできるだけ多くのオブジェクトを生成して画面外に配置しておきましょう。
Pythonistaのsceneライブラリ画像の使い方
【Pythonista+scene】文字を画面に表示する方法
接触判定(当たり判定)
ただ画面にキャラクターを配置するだけでは、キャラクター同士が接触した場合や壁にぶつかった場合でもすり抜けてしまいます。
なのでキャラクターや壁と接触したことを判定する処理が必要です。
接触判定を活用すればスマホのタッチ、マウスのクリックなどの接触判定もできます。
接触判定の方法としては以下のものがあります。
・オブジェクト同士の座標の差で求める
・三角関数を活用して距離を求める
「オブジェクト同士の座標の差で求める方法」が比較的簡単な接触判定の方法です。三角関数は少し理解が難しいですが、より精度の高い接触判定を作ることができます。
背景・BGM・SEの追加
背景やBGM・SEがなくてもゲームを作ることは可能です。が、やはり背景がなく無音のゲームだと味気ないですよね。
ゲームのベースができたら背景・BGM・SEを追加してゲームを装飾していきましょう。
リアルタイム処理を実行するための3つの要素
ゲームのリアルタイム処理を作成するためには以下の3つの要素について理解することが必要です。
・初期設定:オブジェクトの初期配置。背景やBGMなどを描画し、キャラクターを配置する
・更新ループ:画面情報をアップデート。キャラクターの移動・接触判定や時間で発生するイベントなどを実行する
・キー入力受付:ユーザーがキーボードやマウス・スマホのタッチなどの操作を行った時に行われる処理。
初期設定
初期設定はゲームが起動した時に一度だけ呼び出される処理、各種オブジェクトやイベントの初期配置を行うのがメインです。
ゲームに必要な背景やキャラクターなどは初期設定で描画します。
更新ループ
更新ループはゲームが起動している間繰り返し呼びされる処理で、時間に影響する処理を管理します。
代表的な処理としてはキャラクターの移動です。更新ループで少しずつキャラクターの位置をずらすことで、キャラクターがスムーズに移動しているように見せることができます。
その他特定の時間になった時に発生するイベントなども管理可能です。
Pythonista+sceneで歩行アニメーションを作成する方法
キー入力受付
ユーザーがキーを入力した時に行われる処理です。キー入力受付ではユーザーインターフェース(ゲームの各種操作)を実装します。
ユーザーが行った操作の内容によって処理を切り分けることも可能です。
例えば、キーボードの「Aキーを押した時は攻撃」、「Xキーを押した時はジャンプ」など押したキーの内容によって処理をわけられます。
また、マウスクリックした位置やスマホのタッチした位置によって処理を変えることも可能です。
Pythonista+sceneスマホの傾き処理の基本
Pythonista+sceneタッチ(タップ)処理まとめ
【Pythonista+scene】画面タッチでキャラクターを移動させる
リアルタイム処理については「【Pythonゲーム】リアルタイム処理の基本」をお読みください。
関連記事Pythonista+sceneで最初に理解しておくべき3つのメソッド
ゲーム制作に関するおすすめ本
「ファミコンの驚くべき発想力」
「ファミコン時代なんて考えが古いんじゃないの?」
と思うかもしれませんが、現在のゲーム制作にも応用できることもあります。
また、読み物としても面白い本のでゲーム制作を目指している方には非常におすすめです。
「Pythonでつくるゲーム開発入門講座」
Pythonで簡単なゲームを作るための入門講座です。
tkinterライブラリを活用する例とpygameライブラリを活用する例が紹介されています。
紹介されているサンプルゲームはアクション・パズル・落ち物・RPGなどです。
ゲーム制作の基礎知識・ゲーム制作の具体的な手順が理解できます。
Pythonの基礎も書かれていますが、ざっくりとした内容なので基礎に関しては入門書を別途買った方がよいですね。
終わりに
今回はPythonのゲーム制作について紹介しました。
Pythonはあまりゲーム制作向けの言語ではありませんが、Pythonistaのsceneやpygameなどゲーム制作用のライブラリも用意されているので簡単なゲームであれば作ることができます。
勉強がてら作ってみるのもありですね。
本格的なゲーム作りに挑戦したい場合は、Unity(C#)などゲーム向けの言語でやるのがおすすめです。
おすすめ記事Pythonistaの使い方まとめ