よくある質問

Q1.YaneuraoGameSDK.NETは、いままでのYanesdkとどう違うんでしょうか?
Q2.ライセンスはどうなっていますか?
Q3.描画まわりはどうなっていますか?Linuxに対応できますか?また、3Dのハードウェアアクセラレーションの対応していない古いビデオカードで動く2Dのゲームを作りたいのですが、その場合どうなりますか?
Q4.入力まわりに関してはどうですか?JoyStickを使ったりキーボードの同時押しを認識したり出来ますか?
Q5.サウンドまわりに関してはどうなっていますか?wavだけでなくogg形式のものを再生したりもしたいのですが。
Q6.ファイルまわりはどうなっていますか?商用で使うのでデータが直接ユーザーに見られては困るのですが。
Q7.Yanesdk.NETのその他の予定について聞かせてください。
Q8.3Dエンジンの構想について聞かせてください。
Q9.Yanesdkで作ったソフトがユーザーの環境でうまく動かないんですけど。


1YaneuraoGameSDK.NETは、いままでのYaneSDKとどう違うんでしょうか?

1YaneuraoGameSDK.NET(通称Yanesdk.NET)とは、yaneSDK2nd/3rdおよびyaneSDK4thを統合し、.NETに対応させたものです。

 

(特徴)

 

.NET対応なので、C# , VisualBasic, C++/CLI , JavaからYanesdk.NETのコードを呼び出すことが出来る。(もちろん、そのほかの.NET対応言語からも呼び出すことが出来る)

SDLを利用するので、Linuxでそのまま動かすことも可能。

monoを利用すればネイティブコードの生成も出来る。

mono + SDLのおかげでMacOSXにも対応。

・開発言語(開発環境)にはVisual C# 2005を採用。

コンパイルだけならば.NET framework 2.0 SDKあるいは、monoC#コンパイラで代用できる。

Visual C# 2005 Express Editionが無償公開されたので、フリーの開発環境だけで、Yanesdk.NETを利用し商用開発をすることも可能である。



2.ライセンスはどうなっていますか?

2.Yanesdk.NETのライセンスについては、NYSLライセンス(http://www.kmonos.net/nysl/)を採用します。 (2009年7月10日に変更しました)

Yanesdk.NETが内部的に使用しているSDLなどはGPLおよびLGPLですが、これらとはダイナミックリンクしているので、このライセンスにYanesdk.NETは縛られる必要はないと考えました。

NYSLライセンスですので、Yanesdk.NETのコード自体は煮るなり焼くなりしていただいて構いません。つまり、Yanesdk.NET開発チームに断ることなく、Yanesdk.NETのソースコードを部分的ないし、まるごと商用ソフトに利用してかまいません。

もちろん、同人ソフトや教育目的で使ってもらうのも大歓迎です。




3.描画まわりはどうなっていますか?Linuxに対応できますか?また、3Dのハードウェアアクセラレーションの対応していない古いビデオカードで動く2Dのゲームを作りたいのですが、その場合どうなりますか?

3.描画ユニットは次のようになっています。

        描画ユニットは、OpenGLの上に3Dグラフィックベースレイヤを構築。

        bmp,png(αチャンネル付きにも対応),gif(透過キーつきにも対応),tiffに対応。

        SMPEGを用いた動画再生にも対応。動画の1フレームをOpenGL Surfaceに出来るので、それをジオメトリ変換(回転拡大縮小など)をして描画することが可能。

        パフォーマンス上の都合で、DirectX9にも対応させる予定でしたが、VistaOpenGLがネイティブドライバとしてサポートされると発表があったので、DirectX9に対応させないことにしました。(過度にライブラリが複雑になるのを避けるため)

・ 200610月現在、市場で出回っているビデオカードでOpenGLのハードウェアアクセラレーションが利かないものが存在しないので、yaneSDK2nd/3rdでやっていたようなソフトウェアでの描画は行なわないことする。

・ 2D描画も、OpenGLを利用する形で実装する。

・ 2Dグラフィックレイヤの上に2次元スプライトシステムや、マップ描画システム、シナリオ描画システムをモジュールとして構築する。

・ OpenGLには「 2の累乗サイズのテクスチャしか受け付けない」などの制限がある(ビデオメモリを無駄に消費する)が、OpenGL Extensionsが使える状況ならば、それを使うことによってなるべくパフォーマンスを出すように実装。

・ 3Dグラフィックベースレイヤの上に3Dグラフィックエンジンを構築する。

・ 3Dグラフィックエンジンは、汎用性の高いものにする。(予定)

        2D3D部分は併用できるようにする。

        文字表示はttfフォントによる日本語表示に対応。

        テクスチャー、グラフィックサーフェース等は読み込む上限を決めておき、それをオーバーすれば一番古くにアクセスされたものから自動的に解放するcache メカニズムを採用する。

 



4.入力まわりに関してはどうですか?JoyStickを使ったりキーボードの同時押しを認識したり出来ますか?

4.入力ユニットは次のようになっています。

入力部分には、SDLを利用する。yaneSDK4Dにあるコードに近い形になる。

キーボード(同時押し)JoyStick,マウスがサポートされる。

それ以外のGUI的なものについては、GTK+風のものを用意するかも知れない。

特殊なJoyStickに関しては、SDLのサポート範疇を超えるので、原則サポートしないが誰かがWindowsに特化したものを書くかも知れない。

またマウスに関しては、Windows環境であれば、拡張ボタン1,2の検知も行なえる。



5.サウンドまわりに関してはどうなっていますか?wavだけでなくogg形式のものを再生したりもしたいのですが。

5.サウンドユニットは次のようになっています。

SDL+SDL mixerを利用する。yaneSDK4Dにあるコードに近い形になる。

サポート形式としてはwav,ogg vorbisがメイン。一応、midiもサポートしている。mp3再生もサポートする。(SDL_mixerを使用)

(MIDIに関しては、SDL自体があまり正式なサポートをしているわけではないので、正常動作は保障しない)

サウンドは、各チャンネルに事前に読み込んでおくことも、ストリーム再生も出来る。

あと、サウンドのクロスフェード等もサポートする。

サウンドは読み込む上限を決めておき、それをオーバーすれば一番古くにアクセスされたものから自動的に解放するcache メカニズムを採用する。(SmartSoundLoader)





6.ファイルまわりはどうなっていますか?商用で使うのでデータが直接ユーザーに見られては困るのですが。

6.ファイルシステムに関しては次のようになっています。

通常のファイルのほかに、zipファイル/zip書庫をもサポートする。暗号化されているzip書庫もサポートする。

また、ユーザー側で定義された書庫もサポートする。

これらは、File Systemplugされるので、このFile Systemを用いるUnitからはシームレスにそれらの書庫のなかのファイルへアクセスできる。

SoundUnitGraphicUnitはこのFile Systemを用いるので、すなわち、テクスチャーファイル、グラフィックファイル、サウンドファイル、テキストファイル等、すべて暗号化zip書庫に格納しておくことが出来るし、ユーザー書庫に格納しておくことも出来る。

また、このplugされたarchiverは、直列的に多重にplugすることも可能である。すなわち、必要とあらば、暗号化zipファイルに対してユーザー定義のスクランブルを施したファイルフォーマットを用いる、なんてことも出来る。



7YaneSDK.NETのその他の予定について聞かせてください。
7.だいたい、以下のようなものを計画しています。

(ツール類)
・マップエディタ
・スプライトエディタ
・アニメーションエディタ
・シナリオエディタ
・モーションエディタ

(追加予定の機能)
・他スレッドをまわしての画像ファイル、サウンドファイルの自動的な先行読み込み
Lua,IOのようなスクリプト言語との融合
・ゲーム向けのシリアライズ機能



8.3Dエンジンの構想について聞かせてください
8OpenGLのみをサポートすることになったので、OpenGL Extensionが使える状況ならば積極的に使うようなエンジンにしようかと思っています。境界ボリュームの構築〜接触判定など、一般的な3Dのゲームで必要になると思われる機能はある程度盛り込むつもりです。



9Yanesdkで作ったソフトがユーザーの環境でうまく動かないんですけど。
A9.
ソフトが起動しない → .NET Framework 2.0をインストールし忘れていませんか?
起動直後に落ちる →  Yanesdk.dllのほかに dll一式を一緒に配布していますか?
しばらく動かしていると動作が遅くなる → テクスチャの解放を忘れていたりはしませんか?また、ユーザーのビデオメモリが十分に無いことが想定されるならば、SmartTextureLoaderを用いて、テクスチャのcache上限を設定しましょう。

 

また、そのユーザーのOpenGLの描画設定はきちんとされているでしょうか?例えば、Lets Noteでは、初期状態では、OpenGLのパフォーマンスが余り出ないように設定されているようです。

デスクトップで右クリック→グラフィックオプション→グラフィックのプロパティで「Intel(R) 82852/82855 GM/GME Graphics Controllerのプロパティ」のパネルを出し、OpenGLのタブを選択して、左のように設定すれば、描画が改善されます。

※ 「S3TCテクスチャの圧縮」と「ドライバメモリフットプリント」の項目が特に重要な項目なので、これをそれぞれ「はい」・「高い」に設定をします。

IBM ThinkPad / Sony Vaio系でも同様です。

Sharp Mebiusでは「デスクトップで右クリック→グラフィックオプション→グラフィックのプロパティ」で下図のダイアログが出ます。3D設定のボタンを押すと、上図と同じダイアログが出ますので同様に設定してください。

 

他のマシンでも描画が遅い場合、OpenGLの設定を見直しましょう。(「こうやればOpenGLの描画パフォーマンスが改善された!」という情報は掲示板にお寄せいただければ、ここにて紹介させていただきます。)

 


 


文責 : やねうらお    2006/10/20
改定 rev.1.0.3  やねうらお  2009/07/10 Yanesdk.NET自体のライセンスをNYSLに。
改定 rev.1.0.2  やねうらお  2006/11/05 mp3mpegtiffへの対応を追記。
改定 rev.1.0.1  やねうらお  2006/10/27 OpenGLの説明に追記。