MGLについて#

概要#

MGLはC++(C++17以降)用のゲーム開発用フレームワークです。拡張性と扱いの容易さを主眼に開発されており、緩い制限の元に無償で利用可能です。

MGLは標準でWindows、macOS、iOS/iPadOS、tvOSに対応しています。その他のプラットフォームについても、機能拡張の仕組みを用いることでMGLに手を加えずに対応可能です。

特徴#

MGLは標準で次のような機能を備えています。

  • 2Dグラフィックス描画

  • ユーザー入力デバイスの管理・取得(マウス、キーボード、ゲームコントローラ、タッチパネル等)

  • ファイルアクセス

  • オーディオ再生

  • タスクシステム

  • セーブデータの保存・読み込み

  • 実績、リーダーボードの実装補助

  • システムへのアクセス

  • その他ゲーム開発に必要な細かい機能

MGLの最大の特徴は、これらの多くの機能を外部からカスタマイズ可能な作りになっている事です。

例えば、MGLは標準で3Dグラフィックス機能を備えていませんが、外部の3Dレンダラを取り込んで併用することは可能な作りになっています。独自形式のアーカイブファイルをマウントしてその内容を通常ファイルとして扱うことも、BGMの再生にソフトウェア音源やネットワークストリーム再生を用いることもできます。これらはMGLのAPIを通して透過的に扱えるため、アプリケーション側はカスタマイズによる違いを強く意識する必要はありません。

また、MGLのコア部分はC++の標準ライブラリのみに依存しています。もしシステム依存のバックエンドを一通り用意できるのであれば、MGLが標準で対応していないプラットフォームにも対応可能となっています。

もちろん、カスタマイズの際にMGL側のソースコードに手を加える必要はありません。

MGLの概略図
_images/mgl-diagram.svg

MGLは「全てを用意はできないが、簡単に補える」システムを目標に作られています。しかし、拡張機能に頼らずとも、基本的な2Dゲームの作成に必要な機能は一通り備わっています。もし標準機能に不満が生じた場合は、個別の機能解説を参照しつつカスタマイズを検討してみてください。

ライセンス#

MGLのライセンス#

MGLはzlibライセンスの下に提供されています。

zlibライセンスの全文

Copyright (c) 2022-2023 Acerola Software

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

翻訳(参考)

本ソフトウェアは、現状のまま提供され、明示的または黙示的な保証はありません。本ソフトウェアの使用により生じたいかなる損害についても、著者は一切の責任を負いません。

本ソフトウェアを商業用途を含むあらゆる目的で使用すること、および本ソフトウェアを改変して自由に再配布することを、以下の制限のもとで誰にでも許諾します。

  1. 本ソフトウェアの出所を偽ったり、自分がオリジナルのソフトウェアを書いたと主張してはいけません。本ソフトウェアを製品に使用する場合は、製品のドキュメントにその旨を記載していただければ幸いですが、必須ではありません。

  2. ソースコードを変更した場合は、その旨を明確に表示しなければならず、オリジナルのソフトウェアであると誤認させるような表示をしてはなりません。

  3. この告知は、いかなる配布元からも削除または変更することはできません。

zlibライセンス以外の条件でMGLを利用したい場合は、作者に直接ご相談ください。

MGLは各プラットフォームが提供する公式なSDKのみを利用して作成されています。MGLを標準構成で利用する場合、そのプラットフォームのSDKに依存したものを除き、追加で生じる制限や義務はありません。

例外#

次に該当するプログラムおよびリソースについてはCC0 1.0を適用します。

  • 本ドキュメント内のサンプルプログラム

  • MGLの配布物に含まれるtemplateディレクトリ以下のファイル

  • MGLの配布物に含まれるprojectディレクトリ以下のファイル

これらの権利は可能な限り放棄し、改変も含め制限なく利用可能です。

CC0 1.0の詳細については次のリンク先、またはtemplateディレクトリ内に含まれるLICENSE.txtを参照してください。

連絡先#

質問や意見、不具合報告などのために、次の連絡手段を用意してあります。

Taiga#

MGLは進捗管理にTaigaを用いており、課題の投稿はログインユーザーであれば誰でも可能となっています。チームメンバーになる必要はありません。TaigaへのログインはGitHubまたはGitLabのアカウントでも可能です。

問い合わせ方法については次のWikiを参照してください。

メール#

作者に直接コンタクトを取りたい場合は次のメールアドレスへとご連絡ください。

スパムメールとの混同を避けるため、件名の最初に[MGL]と付けて頂けると助かります。

注釈

現時点では受け入れる準備が整っていないため、パッチやソースコードなどの提供は受け付けていません。不具合などでMGLへの変更を要する場合、お手数ですが上記のいずれかの連絡手段にてご報告ください。