SDXFrameWork  0.13
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Q&A

よくありそうな質問



Q.何故緩いライセンスではなくAGPLver3なの?

A.
 最大の理由は利用者同士がお互いにコードを共有した方が、開発者とユーザーの利益になると思うからです.
詳しくはSDXとは?を読んで下さい.
 AGPLなのはWebGLに対応したくなった時に困りそうだからです.


Q.どういう人向け?

A.
 デスクトップ環境中心の2Dゲームを作っており、Androidでも動くとなお良く、日本語ドキュメントがあるライブラリが必要で、AGPLでも構わない人向けです。
SDLをC++と組み合わせて使おうと思ったけど面倒そうに思えた人にはお勧め出来ます。

 利用者が増えれば簡単にコードを入手可能になるメリットが生まれるのですが、現状では利用者数は伸びておらず、改変したいゲームが当ライブラリを利用している場合もそんなに無いと思います。
あとは3D機能、広告機能、SNS機能、動画機能、物理演算等が欲しい場合は他の開発環境使った方が楽な事があると思います。


Q.ライセンスが英語なのでよくわからないです

A.
 非公式ですが、こちらが参考になると思います
http://www.ipa.go.jp/osc/osslegal.html#GNUGPL1
ライセンスについてはこちら。
ライセンスについて
このライブラリを使ったソフトウェアを配布する場合ソースコードを入手可能にしライセンスをAGPLver3にする必要があります、
画像や音声、シナリオ、スクリプト等の外部ファイルのライセンスはAGPLver3にする必要はありません。

入手可能であれば良いので
①誰でもダウンロード出来る形でGithub等で公開する
②プログラムと一緒に配布する
③問い合わせ先を明記して要求があればコードを送る
のように手段は問いません

 あと著作権表記を忘れずに行って下さい。


Q.不注意や勘違い、あるいは故意にライセンス違反したらどうなるの?

A.
 ライセンス違反を発見した場合、是正を要求すると思いますが、訴訟とかは余程の事が無いとあり得ません。
ただ何にせよライセンス違反は好ましくありませんので、疑問があればフォーラムで質問するなりして下さい。


Q.SDXのコードを読んでアルゴリズムや設計を勉強した後、一から似たようなコードを描いた場合AGPLで公開する必要はありますか?
SDXの実装を参考にしてSDL2.0を使ったソフトを作り非GPL配るとかはOK?

A.
 アルゴリズムや設計、デザインパターン等は著作権で保護されないので、GPLのコードを読んでプログラミングを勉強したからといってGPLで公開する必要はありません。
コードを読んで記憶を頼りにほぼ同じソフトを作るとか、コードを横に並べて変数名やら細部を微妙に変えたコードに書き直すとかする場合はGPLにする必要があると思います。
実装の参考にするとかの場合、どれだけ参考にするかで変わってくると思うので何とも言えません。


Q.破壊的変更って何?

A.
 ライブラリ利用者が新しいVerに上げた時、今までのコードにエラーが出たり挙動が変わったりする修正の事です。
バグの修正や未実装機能の実装によって、正常な動作になる場合は破壊的変更とは書いていません。
 SDXでは必要があったり、使いやすさが向上する場合破壊的変更を行った過去があるので、Verを上げたら大量のエラーが出る事がありました。
現状大体の問題は解消したのですが、今後も無いとは限りません。
修正内容については更新履歴を確認して下さい。

 Verを上げた時に利用者のコードを修正する必要があるのは好ましくないのですが、破壊的変更を行わず使いにくいままにするより、修正を行ったほうが良い事もあるので、ご了承下さい。


Q.Appstoreで配布出来ない?
このような事情があり配布は困難です。
年齢制限等は緩和されましたが他はあまり変わっていません。
http://sourceforge.jp/magazine/08/04/17/0141213
 いわゆる脱獄アプリとして配布する事は可能ですが、メーカー保障が切れるそうなので推奨はしていません。
Appstore等で配布したい場合、別のライブラリを使う事をお勧めします。
Appstore以外でも秘密保持契約が必要だったり、DRMを付けないといけないプラットフォームでは基本的に配信出来ません。


Q.SDXFrameworkのソースも一緒に配布する必要はありますか?

A.
 SDXFrameworkのバージョンと入手方法を明示していれば、ライブラリの部分は配布しなくてもかまいません。
ライブラリに何らかの修正を加えた場合は、少なくとも変更した箇所のコードを配布する必要があります。

 一応サーバーからデータが消えるとかそういう事もあるので、一緒に配った方が確実ではあります。


Q.関数の使い方はどうやって調べるの?

A.
 リファレンスやサンプルコードを読んでください。

"Sample/Sample.h"をincludeして、Sample~で始まる関数を呼び出すとサンプルコードを実行する事が出来ます。
サンプルコードで使用している画像ファイルはdataフォルダ内の物を使って下さい。


Q.未実装機能とは?

A.
 クラスの詳細か関数の説明の後に[未実装]とある場合は未実装です、今後実装しない可能性もありますが、出来たら実装したい機能です.
"未実装関数とクラス一覧"


Q.図形描画機能が貧弱だし、動画も扱えなくて不便、ネットワークや3D機能はなんで実装しないの?

A.
 基本的にライブラリ開発者がゲーム開発に必要としている機能を優先する方針で開発しています。
必要としていない機能は、レビューが困難ですし、実装するモチベーションも上がりません。
動画とか、ネットワークとか、画像処理は必要としている開発者がいないため今の所、実装される予定がありません。
必要になれば追加される可能性はあります。



Q.なんで引数だけ日本語でクラス名とかは英語なの、ルー語?

A.
 普段日本語で思考しているので、日本語の方がライブラリが使いやすく開発が楽だからです。
というかわざわざ全部の識別子を英語にする理由がありません。

 仮引数やローカル変数だけの理由は、android-ndkの対応状況を考慮したのと、
なんかの拍子に利用者が増えたので英訳しようとかなった場合も、仮引数だけなら翻訳が楽だからです



Q.何故管理がGithubとOSDNに分かれているんですか?

A.
 Githubの方が使いやすいので、ソースはGithubで管理しています。
安定版をOSDNに置いているのは、Githubより検索にかかる可能性が高いのと、バイナリの配布が楽だからです。


Q.SDXの意味は?

A.
 SDの部分はSDL、DXの部分はDXLibから取っています。最初はDXFrameworkという名称でした。
DXLibのラッパーとして開発していたのを途中で内部実装をSDLに変更したので、現在DXLibは使っていません。
しかしながら機能分割の粒度や関数の命名等でDXLibを参考にしているので、敬意を表して名称に残しています。


Q.何故DXLIB版の開発を辞めたの?

A.
機能はDXLibの方がSDLより豊富ですが、プラットフォーム対応の関係でSDLに専念する事にしました。


Q.SDL2.0の参考サイトとかありますか?

A.
こちらや
http://lazyfoo.net/tutorials/SDL/index.php
ドキュメント日本語訳のプロジェクトが参考になると思います
https://sourceforge.jp/projects/sdl2referencejp/


Q.初期のバージョンはzlibだけどこれはどうなるの?

A.
 ややこしいので、公式に旧verの配布はしていませんが、以前に公開していたverのライセンスはそのままです。
なので旧バージョンはzlibライセンスで利用する事が出来ますし、再配布も可能で、開発を引き継ぐのも特に問題はありません。


Q.ttfを全部bmpフォントに置き換えたのでSDL2_ttfが必要なくなったのですが?

A.
ソースコードに『::define OMIT_SDL2_TTF』を定義するとttf関連の機能が無効になります。
そうするとttf関連のdllやframework等を削除出来ます。
Android向けの場合、各種Android.mkファイルで設定を変更して下さい。


Q.分からない事があったら、どうすればよいですか?

A.
 掲示板で「新しい話題を始める」から質問して下さい。
<ahref="http://sourceforge.jp/projects/dxframework/forums/31378/"target="_blank">SDXFramework:ヘルプフォーラム
書き込んだら作者にメールが行くのでそれなりの早さで返信します。

 作者のtwitterや、メール、ブログ等で質問されると確認が手間なのと、他の利用者と共有しにくいので、
公式フォーラムの利用を推奨しています。(twitterはbotなので、殆どチェックしません)