コード整理しながらテストを書きまくってるからここに出す進捗が特にない...😭
200個ちょっとテストコードが増えてるのが進捗ということにしてください
@nellepas.bsky.social
ゲームを作ろうとして無限回挫折を繰り返している社会人です。死ぬまでに1作品くらい作ってみたい。本職エンジニアなのでコードを書くのは好き。
コード整理しながらテストを書きまくってるからここに出す進捗が特にない...😭
200個ちょっとテストコードが増えてるのが進捗ということにしてください
ここらへんで一旦コードを整理したり、今後の開発のためのちょっとした機能を追加する時間取るか
30.06.2025 08:21 — 👍 0 🔁 0 💬 0 📌 0諸々入ったら焼けるようにするだけでも結構な数のシステムが必要なんだけどこれにサーバー/クライアント間のことを考慮しないといけなくて頭がおかしくなるかと思った
やっぱ既存のゲームたちはすごいよ
雑だけどようやく設置したかまどにアイテムと燃料を入れて焼けるようになった🥺
#ゲーム制作 #indiedev
コードもシステムも人もコミュニケーションも、わりと色んなものに対して「こうすれば綺麗に噛み合うんじゃないか」を考えるのが好きすぎるんだよな〜
26.06.2025 14:44 — 👍 0 🔁 0 💬 0 📌 0実際のところ書く前に思い浮かんだ共通化がそのままいけることばっかりかというと、実際書いてみるとそうもいかないところも割とあるんだよね
だから今日も僕は想像上の綺麗なコードの誘惑に歯ぎしりしながら重複だらけのコードを書いている
作り慣れてない分野だから自分の設計感は信じないで「まずは泥臭く作って実際に共通点がコードに出てきてから共通化する」という方針を取ると決めてはいるんだけど、書く前から「こうしたら使い回せるんじゃ?」を無限に思いついちゃうので滝のように涙を流しながら泥臭いコードを書いてる😭
26.06.2025 14:31 — 👍 0 🔁 0 💬 0 📌 0設置物を右クリ長押しで回収できるようにした。プログレスのUIはいつかゲームの雰囲気が定まったら変えると思う。
#ゲーム制作 #indiedev
粗々の実装だけど設置できる系のアイテムは持った状態で設置できるようにした。建築物系じゃないアイテムは床に落とすことはできても設置はできない。
かなり粗々だから回転とか重なり判定とかアンカーポイントとかはその他諸々はこれから><
rustだとtraitとtagged unionでうまくやる感じになるんかな
typescriptの直和型の楽さを知ってると他の言語のtagged unionの表現が冗長になりがちなところちょっと不快に感じちゃうところあるよね(そのトレードオフとしてより堅牢だったりするんだが)
マスターデータ的なのをtypescriptで書いてる感覚の構造で管理したくなるけどあそこまで使いやすい(type narrowingとか備わってる)直和型のある言語じゃないから、その感覚で作ろうとするとしんどくなりそうだな
10.06.2025 13:34 — 👍 0 🔁 0 💬 0 📌 0ようやくインベントリ内でのアイテム操作が大体実装できた。半分だけ掴んだり一個ずつ置いたり入れ替えたり大体の操作はできるし、ちゃんとサーバーとも状態を共有してる。
enzakiさんに教えてもらったbevy_framepaceのおかげで追従もあまり気にならなくなって◎
#ゲーム制作
インベントリ周りの実装を進めてるけど、サーバー/クライアント間の整合性とレイテンシのことを考えると想像以上に考慮しないといけないことが多い
05.06.2025 12:21 — 👍 0 🔁 0 💬 0 📌 0カーソルに掴んでいるアイテムを全部もしくは一つずつフィールドに落とせるようにした
ちょっとそれっぽくなってきた
!
なるほどフレームレート…ちょっと手が空いたときに試してみようと思います🙏
僕自身じゃ疑えなかった部分なのでめちゃ助かりました!ありがとうございます🙏
bevy_framepaceを使うとラグを減らせるようです
github.com/aevyrie/bevy...
ただそっちに時間取られたり、そっちの更新が億劫になって開発が滞る不安もあるのよねぇ〜
29.05.2025 14:03 — 👍 0 🔁 0 💬 0 📌 0いつかゲームが完成したときに、このアカウントのポストを見返して「こんな状態のときもあったんだ」と振り返れるように細かく進捗を残すように心がけているんだけど、それはそれとして自分自身のため、そしていつかbevyを触ってみる人のためにもうちょっとコードのことにも触れる内容でブログに残したくもなってきている
29.05.2025 14:02 — 👍 0 🔁 0 💬 0 📌 0インベントリ内のアイテムをクリックしたらアイテムを掴んでいる状態に見えるように実装できた
素直に毎フレームごとカーソル位置にアイコンが追従するように実装してるんだけど、なんか一般的なゲームに比べて追従がラグい気がするな〜...プロダクションビルドだとマシになったりするだろうか🤔
#ゲーム制作 #indiedev #bevy
アイテムを拾ったらインベントリに反映されるようになった...!ようやく前のゲームエンジンで実装できてたところを越えた👏
27.05.2025 08:38 — 👍 0 🔁 0 💬 0 📌 0床に落ちているアイテム(緑色のダミー画像)をFキー押しながらカーソルをあわせることで拾えるようになった(アイテム以外にカーソルが当たっても画面から消えない)
この操作のクセだけで何リスペクトなのか分かる人には分かるだろうな
Fキーを押したときにマウスカーソルの位置にSensorが追従するようになった
あとは当たり判定処理を入れたら落ちてるアイテムの取得ができるぞ
独自id->entity idのマッピングだしアドホックな条件で組み合わせ作りたいわけでもないからナイーブにHashMapで持つようにするかー
10万個くらい生成しても空間量は数MBくらいだろうし
bevyはid指定でentityを生成することはできるけど、クライアン側固有で作るentityのidが共有するentityのidと被らないようにidの生成範囲を制限するいいやり方はまだなさそう
17.05.2025 04:29 — 👍 0 🔁 0 💬 1 📌 0github.com/bevyengine/b...
entityのidを合わせるか、bevy_mod_indexみたいなやり方でマッピングを作っておくか
みたいな感じか
サーバーとクライアントでデータをsyncしたいけど、コンポーネントで独自のidを管理してそれを見て更新する場合どうやるとパフォーマンスいいんだろ
entityのid以外でパッと引けないからサーバーから送られてきた更新データそれぞれにクエリを舐めないといけなくてO(n^2)かかって渋い
採用する通信ライブラリを検討して、一般的にマルチプレイがどういうデータのやりとりで実現されているか調べて、自分のゲームでのフローとプロトコルを考えて、試行錯誤しながら全部コードで実装する...
エンジニアとして生を実感できる楽しすぎる時間だ
やっとbevyでプレイヤーが参加してきたときに他のプレイヤーの画面でもスポーンするところまで実装できた...
godotならmultiplayerspawnerを置けばすぐできるところが実装時間もコード量も30倍くらいかかる...でも、それがいい
bevyが理想のエンジンかもしれん(おい
07.05.2025 02:42 — 👍 0 🔁 0 💬 0 📌 0めっちゃ良い記事だった
deadmoney.gg/news/article...