SDXFrameWork 0.09 SDXFrameWork

- Main Page
- Related Pages
- Classes

All Classes Namespaces Functions Variables Enumerations Enumerator Pages
SDXとは？

SDXFrameworkはC++で自由ゲームを制作するための、クラスライブラリです。
以下のような特徴があります。

特徴
1.マルチプラットフォーム
内部でSDL2.0を使っているので、多くのプラットフォームで動きます。
機能的にはSDL2.0+α程度ですが、SDL2.0に比べるとかなり使いやすくなっています

2.日本語による開発
主に2つの理由で英語でなく日本語中心で開発を進めています。
一つ目は差別化のためです
英語のドキュメントがあるライブラリは他に多くあるため、日本語のサポートを優先した方が差別化出来ます。
英語主体にすれば英語話者が多い分開発者が集まる可能性が高くなるのでは？と思う方がいるかもしれませんが、
OSSに参加したいけど英語はあまり得意では無い人に対してアピール出来るため、開発者が集まりやすくなります
この規模のOSSでは主要コミッタは数名で十分すぎる程なので日本語圏の人限定でアピールする方が現段階では有効だと考えます
二つ目は開発効率の都合です。
日本語の方が得意なので英語主体で開発を進めるのは効率が悪すぎます
特に仮引数は日本語にして、リファレンスを見る回数を減らせるようにした方が使いやすいです。
参加者が増えたので英訳しようとなる可能性も一応考慮しており
仮引数とドキュメント以外は英語風にしています、これで参加者が増えて後から英訳しようと思った場合も大きな問題は起こりません

3.コピーレフトなライセンス
SDXはコピーレフトなライセンスであるGNU Affero General Public License Version 3を適用しています。
AGPLを適用すると緩いライセンスに比べて利用者が減るので都合が悪いのでは？と思われるかもしれませんが、そうでは無いと考えています
以下に理由を説明します
ライセンスの方針は大きく3つに分ける事が出来ると思います。
ライセンスについては、経済的な視点、技術的な視点、政治的な視点で考えています。
[1.緩いオープンなライセンス]
例えばApache LicenseやMITライセンスは派生物に対してライセンス表記ぐらいしか求めません。
企業に支援される事を目標とする場合、あるいは規模が極端に小さく著作権を主張する意味が無い場合、
ライセンスを確認せずに使えるようにしたい場合、オープンにしても誰も利用しない場合、
利用者同士でコードを共有せずに競争させて良い物が出来れば良いと言う考えの場合、
GitHubを無料で使うためにコードを公開している場合等はApache License等を適用するのが良いと思われます
[2.不自由で対価を要求するライセンス]
利用範囲が狭いため誰も作りたがらない物を受託開発する場合、金銭を要求するのが妥当だと思われます。
無償の労働を強要する事があってはいけません。
この場合ソフトウェア完成後にライセンスを変更し自由なソフトウェアとして配布するのも選択に入ります
[3.コピーレフトなライセンス]
GPL等のコピーレフトなライセンスはユーザー同士が協力する事を強く推奨したい場合に良い選択です。
しかしながらライセンスが比較的ややこしかったり、権利を強く主張するので敬遠されがちでもあります
場合によっては緩いライセンスを適用した方が良いでしょう。
SDXがAGPL ver3を選択した理由
[1.経済的な理由]
ソフトウェアを有償で販売したい場合、ソースコードから派生物を自由に作れると経済的に成り立たない事があります。
企業から支援を引き出せるOSSはなかなか生まれませんので、GPLだとダンピングになると言った懸念は有り得ます。
しかしながらゲームの場合、イラストやBGMやシナリオを別のライセンスで配布すれば、ソースコード単体では動作しないので、
商業上の問題があまり発生しません。またゲームとサントラの値段があまり変わらないと言った事があるように、ソフトウェア単体での
価値下がりつつあるため、ゲームの価格に対して影響は殆どないと思われます。
また自分しか持っていない独自技術がある場合でも公開した方が有利な場合が多いです。
ゲームの場合、一番最初にそのジャンルを開拓したり新しい事をした場合、後続のゲームが登場する事は宣伝になる上、ファン層の拡大につながる事が多いです。
特にマイナーなジャンルは積極的に技術を公開する方がメリットが多いと思います。
あとはゲームを一部改変して遊びたいと言ったユーザーのニーズに答えやすくなる事や、ユーザーの支援が起こりやすくなると思います
保守コストは馬鹿にならないため、それらも重要です
ライセンス違反が問題になる可能性はありますが、ソースコードを公開しない場合と大きな差はないと考えています。
全体としてはソースコードを公開した方が有利であると考えています。
[2.技術的な理由]
経済上の理由で開発者が立ちゆかなくなると言った事が起こりにくいので、開発者同士で技術を公開しあった方があきらかに優位であると言えます。
コードを公開した所でゲームが簡単に作れる事にはならないので、全体の質は上がっても競争が激化する事もないと思います。
技術が上がれば、開発コストが下がり、クオリティが向上するため、経済的な利点にもなります
ライブラリ開発においては実際にどのような利用がなされているか調査したり取り込む事が楽になるのはメリットしかありません。
さらに後進の育成にも繋がります。教育機会均等の考えから言ってもコードの公開ぐらいはするべきと思います
[3.政治的な理由]
個人で自由ゲームを作っても、そういう事をしている人が少ないため、ユーザーから認知されにくいです。
また個人で活動している場合、ライセンス違反に対して行動を取りづらく泣き寝入りになる可能性が上がります。
ライブラリをコピーレフトにして、それを共有する形を取りコミュニティとして自由ゲームを作れば、開発者の横の繋がりが強化され集団として発言出来るようになります。
技術の向上や経済的なメリットはあくまで自由ゲーム作者が一定数いる事が前提になるので、ライブラリをAGPLにする事は単体のゲームが自由であるのと全く意味が違います。
それにコードが公開されていれば自由にソフトウェアが改変出来ると言っても、それぞれが全く違う環境をベースにしていると手を出しにくいです。
みんなで協力して自由ゲームを作る、それがSDXFrameworkの目的です
ライブラリ開発やコミュニティに興味がある人はSorceForgeの掲示板で気軽にお問い合わせ下さい。

対応開発環境
Windows7以降 + VisualStudio2013
MacOSX最新版 + Xcode最新版
解説を書いていないだけでSDL2.0が動く環境では大体使えるはずです

機能一覧
機能別、クラス一覧