ねこべこ@ゲーム開発中
@nekobeko2024.bsky.social
110 followers 140 following 660 posts
個人事業主「クローブテック」 Unity でフライトシミュレーターを作ります。 CloveTek develops a flightsim. English users might prefer Discord https://discord.com/invite/uExFZQfVps
Posts Media Videos Starter Packs
Pinned
リプレイ重ね撮りでブルーインパルスの編隊飛行をひとりで再現!

『Dancing Wings - The Aerobatic Simulator』
(ダンシング ウィングス - ジ エアロバティック シミュレータ)

Steamストアページ開設しました。
store.steampowered.com/app/3728180/...

ウィッシュリスト…ナウ!

#スーパーゲ制デー
Dancing Wings - The Aerobatic Simulator on Steam
Team aerobatics flight simulator - do it solo. Fly, save the replay, fly in overlay mode, save the new replay, and repeat it up to six aircrafts. Realistic aerodynamics and landscape. Step-by-step tra...
store.steampowered.com
ユニットテストが期待通りに動かないが、自動操作だから一瞬で画面が切り替わってしまい、テストスクリプトのどこが間違っているのか分からない。

OBS Studio で自動テスト実行中を録画。VLC media player でコマ送り再生。で、間違いを見つけた。
メニュー構成が変わって動かなくなっていたユニットテストを、ひとまずリプレイ関連のテストだけ、動くようにした。

さらに先日のバグを再現するテストを追加し、
・現在のコードではバグが発生しないこと
・以前のコードでは、このテストでバグが再現できること
を確認した。
Windows11移行後
・アニメーション効果Off, デスクトップ1~4にそれぞれ個別の壁紙を設定
・エクスプローラの右クリックメニュー、regeditで
 ・旧版に戻す
 ・ターミナルを削除
Windows11 が起動した。あとは…何を消せばいい? まずは OneDriveを無効化するところから?
バックアップ…OK。
Windows11 への更新を開始する。
毎フレのログをコードと突き合わせて熟読し、 grep, sed でフィルタしたり、 Python で加工して CSVにして表計算してみたり、脳みそが茹で上がる感じになったが、どうにか、リプレイのバグが治った…と思う。
FixedUpdate, Update が呼ばれる回数とか、 ポーズ Time.timeScale=0; するタイミングによっては物理が動く(Updateが重いときは複数フレぶん動く)、などが絡むバグだった。
10回ほど再現手順を繰り返して大丈夫だった。

しかし別のバグを見つけた。リプレイ機体の位置が 1フレぶんズレる。
一定の手順により確率 p で再現するバグがある。これを「直した」あとに n 回テストして再現しなければ、C % の自信をもって、本当に直ったといえる。必要なテスト回数は

n > log(1-C) / log(1-p)

例: p=0.5, C=0.99 → n > 6.67 → 7回やってパスならOKとする。
#スーパーゲ制デー #スーパー開発デー #indiegames

ひとりで編隊飛行!
『Dancing Wings - The Aerobatic Simulator』
store.steampowered.com/app/3728180/...

チェンジオーバーターン、4番機コクピット視点多めのリプレイでお届けします。

進捗: 特定条件下でリプレイに誤差が出るバグの調査
ねこべこ@ゲーム開発中
@NekoBeko2024
#フラップ下げてやる

こうですか?わかりません!

store.steampowered.com/app/3728180/...
Happy #Wishlistwednesday!

"Dancing Wings - The Aerobatic Simulator"
store.steampowered.com/app/3728180/...

Formation acrobatic performance, all by yourself!

Change Over Turn
6th join up
Phoenix Low Pass

#indiegame #indiegames #indiedev #gamedev #Steam
よし、 Build And Run でも動いた。

リプレイの新機能、ゲームプレイを根本から変えるほどの機能だ。作った甲斐があった。

#unity #indiegame
たぶん DontDestroyOnLoad で UI Document を Sceneまたいでるのが原因。ちょっと構造を変えればシーン跨ぎしないで行けるはず。 #unity
Panel Settings を分けて表示順序バグを回避すると、ボタンへのフォーカスが正しく動かなくなる。ほかの回避方法を探したほうがいい… #unity
プロジェクトからできるだけ prefabや csを消した再現用プロジェクトを作り、 Unity Bug Reporter で送信した。

別の Panel Settings を作ることで回避はできるが…
Unity 6000.0.20f1 → 6000.0.58f2
Build版での UI Document の表示順序、治らなかった。
Unity 更新前に Build and Run で動作テストしておこう、と思って実行したら、HUD と MessageBox の UI Document の表示順序がおかしかった。Editor の Play Mode では大丈夫なのに。

Unity の新しい版では直っているという希望を抱いて、覚悟を決めて Unity を更新する…!!
#unity
Unity の脆弱性か~。この機能の実装と十分なテストが終わったら…やらなきゃ…
ログファイルが一定サイズを越えたら、末尾のログだけ残してクリアし、容量を制限するようにした。
メモリに溜めたログをファイルに書くとき、すでにログファイルに書いた普通のログも一緒に書くようにした。サイズはデカくなるが、ログを時系列で追いやすくなる。

このゲーム、雑に言えば「かっこいいリプレイを作るゲーム」なので、リプレイの誤差バグは徹底的に解析して直さねば。
もうひとつバグを潰した。ふだんから詳細なログをメモリに溜め込んでおいて、リプレイに誤差が出たときだけそのログをファイルに吐き出す、という機構が活用できている。
よし、ひとつリプレイのバグを解決した。新機能とはまったく関係ないバグだった。