見出し画像

MGL週報 #38 - ほぼ雑記

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


今週の作業内容

タスクシステムの並列実行改善

あれこれ悩みながらではありますが,タスクシステムの並列処理の改善は進めています.

リンク先のユーザーストーリーにおおよその仕様が書かれていますが,やろうとしている事を簡単に要約すると次の2点です.

  • アップデート処理をバックグラウンドに回せるようにする

  • その処理の完了を特定のタイミングで待ち合わせる仕組みを入れる

この方法の利点は,並列化を考えずに作った既存のプログラムを簡単に並列実行できるという点です.「このタスクは時間がかかるし,すぐには処理結果を必要としないからバックグラウンドに回そう」といった具合に,気軽に並列化を行えるようなものを目標としています.

このように,処理結果の取得を後回しにして,その間に並列に動作させることで実行時間を短縮させる手法は「futureパターン」と呼ばれています.C++にもこれを実現するための機能が標準ライブラリに用意されており,std::futureがそれに該当します.ですので,実のところMGLが対応せずとも似たような事が既に可能だったりします.

それでもタスクシステムに並列処理を取り込みたい理由は色々とあるのですが,その辺は仕様が確定してから語ることにしましょう.


開発中のゲームあれこれ

ここ最近MGLの作業が再び停滞していますが,理由はゲームそのものの開発を進めているためです.

MGLの発展において,MGLを用いてゲームを作ることは機能の追加やドキュメントの作成と同等かそれ以上に重要な事です.既に度々述べていますが,この手のライブラリは使わなければ育たず,育ってなければ使われません.現在のMGLはこの点が最も不足していて,唯一リリースまで持っていけたゲームが「ぺぐそり+」のみとなっています.

……などと理屈を捏ねていますが,私もやはりゲームが好きで作りたくなっちゃった人間ですので,たまにはゲームの開発もやりたいというのが本音です.

現在進めているゲームはちょっと特殊なものでして,ゲームプログラミングとしてはやや一般的でない手法で作っています.これはこれでMGLの実験材料にならなくはないのですが,一方で「普通の」プログラミングスタイルを用いるゲームで検証したい事も多々あります.

と,そこで登場するのがこちら.

アニメーションgifを用意したのだけどアップロードに失敗するので静止画で……

これが何なのかというと,かれこれ2年ほど前に少しだけTwitchでゲーム開発の作業配信というものを行なった事があり,その際に作っていたものです.

大変残念な事に,その配信は3日間しか続きませんでした.続ける気はあったのですが,色々と事情が重なって配信できない状態が続いてしまい,その間に進めていた「ぺぐそり+」のほうに本格的に移行してそれっきりになっています.

この2年前に3日間だけ作ったゲームですが,続けるとしたらMGLの実験材料には丁度良い素材なんですよね.何より,理由があったとはいえ文字通り3日坊主になっている事に長らく後ろめたさを感じており,この悔恨の念を解消したい気持ちも強かったりもします.

両方進めたいけど,今この状況で2つ同時進行は厳しいよなぁと思う気持ちを抱きつつ,ちゃんとお金になる仕事の合間を縫ってあれこれ進めている状態です.


その他

note1周年記念のバッヂを取得して「あれ,そうだっけ?」ってなりましたが,アカウント作ってから丁度1年間だったみたいです.

という事は,去年の今頃はMGLの一般公開に向けてドキュメント書きまくっていた頃なのですね.今年は色々と動いたためか,かなり前の事のように感じてしまいます.

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