見出し画像

進捗週報 / サブプロジェクトベータ移行中・ゲームエンジンとライブラリ・その他


「天拝山クエスト」演出方面の作業に入りました。

オーディオ&ビジュアル

先週にアルファ版までこぎつけた「天拝山クエストねこねこパニック」ですが、数名に遊んでもらったところ、猫とのバトル?シーンに色々と意見・感想をもらったので、それを実装しまして、一応ゲームとして攻略できる程度の面白さは付加できそうな感じの仕様に着地しました。
ただ今だと猫さんみんなすぐ懐いてしまうので、データいじってバランス調整はしないと。

それとBGMやらSEを仮でつけて、また画像も若干仮のものを増やしています。
音がつくと俄然ゲームっぽくなるから良いですね。
菅原道眞ゆかりの天拝山が舞台なので曲が「とおりゃんせ」のアレンジで、今は仮なので低音質の小さいファイルでやってますが、それでも良い感じです。
画像は演出がらみでバトルシーンとか、そういうところに足しました。今は状況をいちいち文字で表示していて(結果がわからないとプログラムがあってるか判らないので)つまらないので、ある程度までは画面見てパッと状況が判らないとテンポ悪いですからね。

スプライトを使った動的な表現

あと、スプライトを使った雪の表現などは簡単にできるとあったので、早速試してみると良い感じで雪が降ってくれました。

#ここで雪を定義。面倒臭ければ最初の2つだけでもOK。
image snow = SnowBlossom("snow.png", count=300, xspeed=(260, 360), yspeed=(100,200))
#これで画面に雪が降ります。
show snow
静止画だとよくわからないけど、動くと良い感じです。

チュートリアルにもあったけど、PONGみたいなアクションゲームも作れる訳で紙芝居表現以上のことも十分可能なんだよな。やれば出来るじゃなくて普通に。

ゲームエンジン最高!そして極北を見た。

ゲーム開発環境を探す探求の旅

Ren'Pyに集中して取り組むまでは、いろいろなゲーム開発環境を味見していたのですが、その中でゲームエンジンとゲームライブラリを一緒くたにして味見してました。例えばPythonでいうならゲームエンジンのRen’Pyも、Ren'Py自体を作る構成要素であるpygameも選択肢にするという意味です。

最初のうちは自分の実力も身の程も知らず、なんとなくライブラリでゲーム作る方が自由度は高そうだし何よりカッコイイとか思ってたんですが、色々なライブラリにチャレンジしていくうちに、特にマルチデプロイ(いろんなOSやウェブやスマホなどで遊べるようにゲームをパッケージしてくれる事)してくれるゲームエンジンは本当に有難くて最高だな、と考えを改めました。

自分のような駆け出しゲーム開発者としては、1人でも多くの人に遊んで欲しくて、そのためには色んな環境でゲームが遊べるようにしたいのですが、ゲームライブラリでやろうとすると、これが大変なんですわ。
もちろん、マルチデプロイ出来るゲームエンジンもいっぱいある訳なんですが、インストールして設定ちゃんとして出来たゲームが動くところを確認するまでが上手くいかないことが多くて、それで諦めたものが死屍累々でした。まあ自分の能力・技能不足なんですが。

とはいえ、dllやdylibの相性で悩むよりはゲームバランスで悩んでいたいので「あれもやりたいこれもやりたい」を一旦やめて、自分の一番作りたいものだけに焦点を当てて、色々検討した結果Ren'Pyに決定したわけです。

おそらく「パワポケ」風になるであろうBaMaDiSを完成させるのが先決ではあるのですが、その先というものも漠然と考えていて、ストラテジーゲームやシミュレーション(といっても大雑把過ぎますが)といったジャンルもRen'Pyでいけるよな?うん、いけるいける!と結論づけていたのですが、先日これと出会いました。

renpy-chessのご紹介

え、Ren'Pyでチェス?

Ren'PyでPythonプログラミングできるので出来ておかしくはないんですが。
作者の人も全部自力で開発したわけではなくて、Pythonで書かれたチェスエンジンやAIを組み込んでいるみたい。

うぉ、ちゃんとvsCPUで遊べる!

そして、これを自由に自分のゲームに組み込んでOKとのこと。

これが出来るなら非リアルタイム系の思考タイプゲームならなんでもいけるでしょ。あーもうこの後一生Ren'Py付いていくわ。
これなら信長の野望・全国版とかHearts of Iron IIIとかRen'Pyで作れるんじゃない?

とは言えプログラミング自体もそれはそれで楽しい。

前段をひっくり返すようですが、とは言えプログラミング言語とライブラリでごりごり書くのも楽しかったりはします。
ただ、1人でも多くの人に自作ゲームを遊んでもらう、というならばゲームエンジンを採用する方が作戦としては正しい気がするので。

それで前々回に書いたような逃避の中で出会ったpythonに凄くよく似た文法のnimというプログラム言語と、ゲーム用ライブラリのraylib(switchとかでも採用例があるらしい)がとても判りやすくて楽しいので、折を見て触ったり調べたりしてみています。

とあるraylib用ライブラリと別のサウンドライブラリを合わせてみて動かしたりしました。
(静止画じゃ判らん、というのはゴメン)
nimで書かれたvimクローンのmoe。絵文字のアイコンがかわいい。

こういう色んな環境や言語をふらふらしているのは、Ren'Pyメインで行くと決めたのから逆行しているとも言えるんだけれど、ゲーム制作ではなくてプログラミングの事だし、楽しいから良いのだ、と言えます。

が!しかし!
実はnimはPythonとの連携が凄く楽なので、Ren'Pyで書いてて遅くてどうしようもないところをnimで書いたりもできるし、アクションや3Dのゲームを本気で作りたくなった時の選択肢としてあるGodot(これ自体もpythonぽいgdscriptで書ける)のプログラムをnimで書いたりできるので、ゲーム制作の面から言っても、自分の方針と全く関係ない訳ではなかったりします。

少なくともしばらくはnimでゲーム制作することは無いでしょう。
上の例で使ったサウンドライブラリは珍しいロシア産のトラッカーSunVoxのライブラリなんですが、ゲーム制作の合間にraylibとこれでボチボチと色々遊んでみる感じでしょうか。
ちなみにSunVoxのリバーブが綺麗な掛かり具合で好きなんです。


この記事が気に入ったらサポートをしてみませんか?