yaneuraoGameSDK2nd紹介
やねうらお(yaneurao@gmail.com)
☆ yaneuraoGameSDK2ndの特長
このSDKは、ゲーム開発のための支援ライブラリです。BM98で使用していたものを大幅にリライトした、yaneuraoGameSDK、それをさらにプロフェッショナルユースにまで高めたyaneuraoGameSDK2ndです。
DirectX3を最低動作環境とします。(少なくともNT4.0で動作させるため) DirectX3以上のバージョンがインストールされていれば動作します。
DirectSound,DirectDraw(フルスクリーン/ウィンドゥ表示/パレット処理/256色,65536色,ハイカラー,フルカラー),DirectInput,JoyStick,MIDI Input/MIDIOutput/CD再生を完全に隠匿します。ユーザーは、必要最低限の関数を呼び出すだけでゲームプログラミングが可能となります。LZSS法によるファイル圧縮,AudioMixerによるソフトウェアボリュームフェーダー、複数CDの同時再生、CODECを利用したMP3の再生、WAVE,MP3のストリーム再生、Ogg Vorbisの再生、Ogg Vorbisのストリーム再生、Mersenne Twister法による高精度の乱数発生等幅広い利用者のニーズに合わせたさまざまなクラスを用意。
DirectDraw用の関数は、ビットマップファイルからの読み込み、スプライト機能、αブレンディング、転送先クリッピング、拡大縮小転送、ソフトウェアマウスカーソル、文字表示等、多数用意しています。
DirectDrawを使わないDIB系描画関数においては、通常の矩形転送以外に、ミラー転送、AddColor,SubColor、ブレンド、フェード、サチュレーション(AddColor,SubColor)、モーフィング、回転拡大縮小、αチャンネル付き画像等をサポートしています。
一応、オブジェクト指向してます(笑) DirectSoundまわりだけそのまま流用!なんてこともたやすいはずです。
また、dsound.dll,ddraw.dll等は、COM呼出しでダイナミックにロードしています。ロードできない場合、エラー表示をして終了します。
JOYSTICKは、Win32による入力に加え、DirectX5以上ならば、最大16本同時入力に対応できます。
そして、DirectShow / AVIStreamを使用した、ムービー再生を実装しています。
アプリケーションの二重起動を簡単に防げます。ぜひ、活用してみてください。
C言語ライクなプログラミング言語と、仮想CPUカーネルを実装しました。これにより、ゲーム中において専用のスクリプト言語のコンパイルと実行をサポート出来ます。相当、高度なことまで出来ます。このスクリプト言語だけでゲームを作ることも可能です。実際、yaneGameScript2000は、この機能を利用して作られたものです。あちらは、CScriptCompilerの機能リファレンスおよびサンプルを兼ねています。併せてDLされることをお勧めします。
html風言語で記述された、シナリオファイルを再生することが出来ます。これにより、ほとんどプログラムをしなくとも、本格的なビジュアルノベルが簡単に作れてしまいます!
今後の予定としてはネットワーククラス、Direct3Dを始めとして、やりたいことは数多くあります。
対象としているのは、プログラミング初心者ではなく、Windowsプログラミング初心者です。やはり、ゲームを作るとなると、ある程度のプログラミング能力は必要です。ただ、このライブラリを使用すれば、Windowsのプログラミングに関する知識はそれほど必要とされないのではないかと思います。
☆ 開発/公開の経緯
もともと、yaneuraoGameSDKというのは市販ソフト『盗撮マニア』の開発のときに副産物として出来たものです。基本的に、ライブラリなんて毎回作り直す(つもりでいる)私にとって、フリーウェアにして他の人に使ってもらうことによってデバッグしてもらうというような、さもしいコンタンは無いつもりです。(なかったつもりです。ただ時間の関係で以前のソースを流用するようなことはどうしてもあるのですが^^)
実際、いま作っているゲームも、このゲーム用に描画ルーチンから書き起こしていますし、ある人が「yaneSDKによって仕事を得て」と私のことをリンク紹介に書いていましたが、yaneSDKによって仕事を得たことなんて一度もありません。また、今後もそういう仕事は受けるつもりは無いでしょう。(そもそもそういう仕事は来ないでしょう) 受注したゲームのために特化されたルーチンを毎回書くぐらいの覚悟はありますし、いつまでもWindowsでアダルトゲームに固執するつもりもありません。(ちなみに私がアダルトゲームを作っているのは、作りたいからではなく、頼まれて仕方なしに、です)
そんな中で、yaneGameSDKやYGS2Kを公開に至ったのは、「BM98のソースを勉強のため欲しい」という要望があまりにも多かったからです。私にしても、人のソースやプログラムを逆アセして勉強して来た人間なので、「勉強のため」と言われると、断り辛いのです。だけど、どうせ勉強するのなら、もっとわかりやすいソースを見て欲しい。そう思って、仕事で作ったyaneGameSDKとYGS2Kを一般公開したのです。
使いたければ、使いなさいと。パクリたければ、パクリなさいと。それほど完成されたものではないが、少なくとも勉強にはなる。そういうつもりで公開したのです。
バグ報告には、親切な人がいて、ソース中のどこそこが間違っているので、こう直しなさいといくつか指摘を受けました。こういう指摘は願ってもいなかっただけに嬉しかったですね。逆に、YGS2K使ってやってんだから、俺の欲しい機能を早く付けろよ!と言わんばかりの人もいました。
要望は構いません。利用者として機能を要望するのは、一つの権利だと考えています。そして、要望はなるべく取り入れたいと思っています。バグも可能な限りなおしたいと思っています。しかし、フリーウェアである限り、私にはそれを断る権利、自分の判断に基づいて無視する権利(無視した理由を説明はしないかも知れません)も当然あります。私はこれでメシを食っているわけではないのです。あくまで好意に基づいた公開なのです。その部分だけ誤解なきようにお願いします。
yaneuraoGameSDK2nd(以下yaneSDK2nd)は、以前のバージョンを大幅アップさせたものです。描画まわりを大幅に書き換えてありますし、クラス性、モジュール性も格段に向上しています。初心者の人にとって使いやすいかはどうかはわかりませんが、ある程度C++をやっていた人にとっては、満足していただけるものに仕上がったと思っています。
yaneuraoGameSDK 2ndは、完全オープンソースかつ、ロイヤリティフリー!!です!!
商用目的であろうと、このSDKの著作権表示等を行なう必要はありません。
うるさいことは一切言わないつもりなので、引用、コピーなり、ご自由にどうぞ。
ただし、著作権は、すべて、やねうらお(M.Isozaki)にあります。
動作確認したのは、Visual C++5.0(SP3),Visual
C++6.0(SP4)です。
現在の進捗状況
あと、このライブラリ使って、市販ゲームを数多く作りました(笑)
だから信頼性は、それなりに..?
御質問等あれば、やねうらおまでメールをください。
その他、内容的なフォローは、私のホームページ
「スーパープログラマへの道」
「天才ゲームプログラマ養成ギプス」等で
行なって行く予定です。
お願い!
このyaneSDK2ndで開発したプログラムの商用利用も可能とします。
(商用利用される場合、事後でも結構ですんで、お知らせいただけたら幸いです)
ただし、このyaneSDK2ndを使用して、不都合が発生した場合などについての
責任は一切負いかねませんのでご理解のほどお願いします。
まだ開発途上段階のため、急激な仕様変更を伴う恐れがあります。
ご了承ください。
あと、何かバグ(?)を発見された方は、是非、メールでお知らせください。
すみやかに対応いたしますので。^^
募集!
このSDKを利用して何かプログラムを書かれた方は、公開してみませんか?
ホームページ上でリンクを張らせていただきますので。