見出し画像

ローグライク(仮)Windows版動いたっ

昨日難航していた Windows 版のビルドがうまくいった。

この画像のように Windows 上で動いている。ポストエフェクトは Direct3D か OpenGL のシェーダーを書かなければいけないのでポストエフェクト無しの状態だが、現状のコードはほぼ修正せずに動作した。なお、この Windows は英語版で動いているためゲームも英語版で動いている。

修正した箇所

主にビルド周りを修正した。静的リンクは諦めて、必要な DLL を EXE と同じ場所に配置するような CMake スクリプトを記述した。

また、スレッドを std::thread を使わず SDL_Thread を使うように変更した。こうしなければ正しくゲームロジックのスレッドが動かなかった。

もうひとつはバグの発見。このゲームは最高 60 FPS で動作する(秒間に60回のフレーム:ロジックの処理と描画、を行う)のだが、これは1フレームが16.666666....ミリ秒で動くということだ。しかし SDL の SDL_GetTicks という時間計測をする API の分解能が 1 ミリ秒であるため、また OS 依存でこれが少なくとも 1 ミリ秒以下にはならない事だけが決まっているもので、Windows だと macOS とは少し違う値が帰ってくる。そのためフレーム処理に障害が発生してうまく動作しなかった。OS やパフォーマンスの違いがあってもおかしな挙動にならないように修正した。

無事動いてホッとしている。重大な欠陥が見つかっていたらリリースが遠ざかってしまうところだった。これからは定期的に Windows 版のビルドも確認するように継続的インテグレーションが行える方法を探ろうと思う。

応援してくださると嬉しいです。よろしくお願いいたします!