見出し画像

MGL週報 #51 - 今週の作業内容

このエントリはゲーム開発用フレームワーク「MGL」の開発記録です。MGLはzlibライセンスの下に無償で提供されています。



お知らせ

先週の週報の閏秒に関する説明について、誤解を招きそうな説明がされていたため補足を追記しておきました。また、混乱を招く記述については一部を変更・削除しました。

ただでさえややこしい閏秒の問題をより一層混乱させてしまったことについて、お詫びして訂正いたします。


今週の作業内容

システムアクセス関連の整理

……Taigaにタスク化して作業するの忘れちゃいました。

先週お伝えした通り、日付と時刻に関わる大幅な整理を行いました。今までの実装を改めて確認してみると突っ込みどころ満載だったのはちょっと恥ずかしいところ。

先週言及した閏秒に関しては、MGLでは一旦対応しないことにしました。補正するための処理を入れることは可能でしたが、使い所が難しいうえに余計にややこしくなるだけという結論に至りました。

閏秒が問題になるケースは、それを跨ぐ場合にUNIX時間と実時間との間に差異が生じる事です。MGLがゲームクライアント向けフレームワークであることを考慮すると、これは大きな問題には至らないだろうという判断です。C++20以降であれば標準ライブラリに閏秒が発生した回数を取得するAPIがありますので、必要であればそれを使用してください。

実のところ、閏秒に関する問題を本格的に調査したのはここ最近になってからなのですが、どうやらちょっと補正をかけるくらいで解決できる問題でもなさそうなのですよね。廃止を求める声が少なくない理由が少しだけ理解できた気がします。

日付と時刻以外の部分でも、それなりに多くの変更を加えています。多くは名前に関する問題で、機能に対する名前が統一されていなかったり、英語としておかしい命名だったりといった問題に修正を加えています。これもちょっと恥ずかしい変更点です。

ツール作成のための調査

先週ちょっとだけ書きましたが、MGL関連で作りたいツールがあり、そのための調査を行なっていました。主に必要そうな機能のためのライブラリの選定や、その使用方法の調査です。

ここ最近はMGLのドキュメントを書く作業がメインとなりつつありますが、他の人が書いたドキュメントと比べてみると色々と学びがあります。オープンソース系のライブラリだと各々のAPIの説明は比較的簡素な反面、サンプルコードが充実している事が多い気がします。実際に動作するプログラム一式をケースバイケースでリストアップしてあったり等。

MGLにも実際にプレイ可能なレベルのサンプルゲームと、その実装内容を解説するような資料が欲しいですね。ああ、またやりたい事が増えてしまった。

それはさておき、ツール作成に関してはまだ検証レベルで実装作業には未着手です。ひとまずは1.1.12向けの作業が最優先であるため、その後の予定にもしかしたら組み込むかも、といった感じです。

ツール作成関連も悩みの多い分野ですので、その辺もいずれお話できればと思います。好きな分野でもあるのですけどね。


その他

今週もうんちく語りをする予定でしたが、ちゃんと書く時間が確保できなかったためまた後日にします。

ドキュメント書きもそうですが、長い文章は書いたら一晩寝かせたほうが良いですね。書いている最中も注意を払っているはずなのに、日を改めて読み返すと色々と問題を見つけてしまいます。(先週の週報のように!)

この記事が気に入ったらサポートをしてみませんか?