
【ゲーム制作日記】高校物理はゲーム制作のためにあったんだ
こんにちはtozicaです。
今日はすいすい水曜日!
ゲーム制作
プロペラちゃん
明け方に起きてからしばらくの間、Playdate向けのアクションゲームの制作を進めました。
前回ヒロインの子のスプライトが出来たので、ひとまずゲームに組み込んでみたりした。

ロックマンだと立ち状態とかジャンプ中はアニメーションせずにフレーム一枚で見せる形だったので今回はそれに倣って作ったんですけど、うーん、こうやって画面上で見るとやっぱりちょっと寂しい感じしますね。
今度ちゃんと立ち状態とかのアニメーションも作ろうっと。
そういえば、これまでのゲームクリエイター人生においてアクションゲームは何度か作ってきたわけなんですけど、今作は初めて、ゲーム内でちゃんと力学を扱う感じの実装にしてます。
というのも、今まで作ってきたようなシンプルなアクションだと、こういう力学的なものって別に扱わなくてもなんとかなってたんですよね。
位置と速度の情報さえあれば十分で、重力とかも「毎フレームY軸方向に固定値を足す」だけでOKっていう。
# Godot だとこういう感じの実装になる
func _process(delta_time :float):
self.position += self.velocity * delta_time
self.velocity.y += GRAVITY * delta_time
でも今作では「風を起こして物を動かす」がテーマなので、それだけだとやっぱり不十分なんですよね。
このテーマで色々アクションに深みを持たせようと思うと、やっぱり摩擦力とか空気抵抗とか反発係数とかそういう概念を扱いたくなってくる。
氷のブロックは一度滑らせると止まりづらいとか、風船は弱い風力でも動くけどあんまり速度は出ないとか、そういうことやりたいですもんね。
そんなわけなので、高校物理の情報サイトを眺めて昔の記憶を掘り起こしつつ、ゲームとしていい感じの手触りになるような按配を模索し始めてます。
高校で物理を勉強したのは今日この日のためだったんだ…!
シカクケス
シカクケスをPlaydateの公式ストアで販売してもらうための手続きをしました。
所得税の免税手続きとか、売り上げの入金方法の申請とか、ストアページのデザインとか文面をどうするかとか。
午前中の2時間くらいを使って取り組んでたんですけど、作業量もそこそこ多い上に全部英語なのでまあ〜〜大変。
とりあえず比較的すぐ終わりそうな項目だけは片付けたんですけど、残りはまた今度がんばろう…ってなった。
In the Festered Red
前回「ドロップ候補からプレイヤーに取得アイテムを選ばせる処理」を作ったので、昨日は「ドロップ候補を再抽選する処理」を作りました。
ついでにUI周りの見た目もちょっと整えたりしたので良い感じになってきた。

なかなか良い感じになってきた~~
ちなみに今作では、上のような「プレイヤーが自由に選べる選択肢」のほかに「基本的には確率で決まるがコストさえ支払えばプレイヤーが選べる選択肢」みたいなのもあるんですけど、そういう色んなタイプの選択肢を全て同じUIとフレームワークで扱えるように共通化を頑張りました。
こういうの、外から見ると簡単そうに見えるんですけど、実際に作ってみると意外と大変なことが多いですよね。
1つの要件を満たせばOKっていうのと、2つの要件を同時に満たせるようにっていうのとだと、後者の方が何倍も複雑で難しいプログラムになりがちな気がする。

コストが支払えない場合は真ん中のサイコロを選んでランダムに選択する感じ。
これでベースのシステムはだいたい完成したので、次からは本編部分の制作に移れそうかなー。
わくわく。