自販機脱出アクション
#自作 #gamedev #あほげー
https://scrapbox.io/files/69be2b70b9e150750aed65a6.webp
https://u9-games.vercel.app/games/vending-machine/index.html
缶ジュースは自動販売機から脱出する!
あほげー第49回お題「自動販売機」提出作品
缶が転がる音とか良い感じにするのを頑張ったかな…
物理演算とかAIに作らせて一発でうまくいったので良かった、物理演算っていうか普通にゲームの挙動を書いて作らせたらなんか良い感じにしてくれてた、線や曲線があって滑るように動くみたいな指示だったかな…
ステージ編集機能をAIに作らせたら超楽で良かった、公開してる版にも無駄にエディットモードは残ってて、タイトルでEキー押すとステージ編集シーンに入れます
最近q5.js使って作ってるゲームがあるのでそれのコードを流用して作成した
q5jsのバージョン上げたらなんか仕様が変わったのか色々動作が変でよくわかんねーと思ったがGoogle AntigravityでAIエージェントがなんとか解決してくれました
座標がなんか変わっててc2dだと左上基点でWebGPUだと中央基点になるという互換性おかしい動作、navigator.gpuの有無でtranslate()した
WebGPUが使えない環境だと自動的にc2dにフォールバックされ、フォールバックされた時に基点が違うので盛大に画面がズレる、普通にバグだと思うんだけど…
WebGPUはlocalhostかhttps:の環境でしか使えないのでそれ以外の所で見るとc2dになってバグるという状況だった
WebGPUも以前は左上基点だった
q5jsはなぜかBun addに失敗するのでgithubのリンクでBun addしてる
TypeScript用の型定義が一部ちゃんとしてなくて型エラー出るが動くコード、というより型がバグってて型エラーになる書き方しないといけない場面がちょいちょいある、なんでやねん
なんかバグってるのか時々数秒固まる問題があったのでC2Dモードにした
await Canvas(window.innerWidth, window.innerHeight, "c2d")というような感じでオプションにc2dって書いたらC2Dモードになる(通常はWebGPUが使えるならWebGPUモードで動くが、これがなんか不安定なので)
q5jsの意味ねー、p5js使おうかな
今回のあほげーの他のアイデア、自販機ヒットマンとか言って自販機を操作してなるべく動き回って炭酸ジュースを射出してターゲットに勢いよく当てるゲームというアイデアもあったが、なんか無駄にタイトルロゴをAI生成で作らせようとしてやってたらなんかイマイチ気分じゃなくなった
あと、自販機脱出アクションは最初Unity3Dで作ろうとしてたが、なんか物理演算が気持ちよくいかないし3Dの回転がうまくいかない事だらけだし、3Dのステージ作る(考える)の大変で諦めて途中でq5jsで2Dゲームにやり直したという経緯がある
AIコーディングもプレイヤーの動作制御をうまく作れなくてダメだった、3次元は難しい…