ゲーム屋のためのBREW開発のキモ

APIを整理する

 準備が終わって、設計にとりかかる際、まずすべきことは「機能を知ること」である。何ができるのか知らないと、リソース製作担当のチームメンバやクライアントに説明することもできないので、制作に取り掛かる前にある程度は知っておくのも重要だろう。

 BREWの場合、今風にサンプルプログラムを弄りながら学習しようとすると、よくわからないままとりあえず動くというものができてしまって割と危険である。BREWのAPIの規模なら、とりあえず一通りのAPIを頭に入れることは可能だ。

 とはいえ、BREWのAPIリファレンスは体系的に書かれていないので、すげー読みづらい。プログラムリファレンスは、サンプルプログラムが一々付いていて鬱陶しいw なので、大雑把にジャンル分けしてみた。

システム系
 IApplet, [IBase], [IFont], IHeap, ILicense, INotifier, IPeek, IQuery, IShell
 [ISource], ISourceUtil, ILogger, IModule, CALLBACK系, DBGPRINTF
 GETAPPINSTANCE, GETUPTIMES, ZEROAT, GETTIME系

C標準関数系
 ATOI, MALLOC, REALLOC, FREE, GETRAND, MEM系, STR系, WSTR系
 SPRINTF, VSPRINTF, float演算系

描画、サウンド、メディア系
 IBitmap, IDIB, IDisplay, IGraphics, IImage, IMedia, ISound, ISoundPlayer, ISprite
 ITransform, IMediaUtil, CONVERTBMP, SYSFREE, MAKERGB

3D系
 I3D, I3DModel, I3DUtil

ストレージ系
 IAStream, IMemAStream, IUnzipAStream, IFile, IfileMgr

コントロール系
 IImageCtl, IDateCtl, IDialog, IMenuCtl, IStatic, TTextCtl, ITimerCtl

Web系
 IDNS, IHtmlViewer, INetMgr, ISocket, ISSL, IWeb, IWebOpts, IWebResp
 IWebUtil, IX509Chain, HTO系, INET系, UTF8TOWSTR

端末系
 IAddrBook, IAddrRect, IPosDet, IRingerMgr, ITAPI, IVocoder, ICallHistory, ICamera

DB, Hashその他機能系
 ICipher, IClipboard, IDatabase, IDBMgr, IDBRecord, IGetLine, IHash, IHashCTX
 IRamCache, IRSA, IRecordStore, その他のヘルパー関数

Bluetooth系
 IBTAG, IBTSDP, IBTSIOPORT

 ざっとこんな感じである。(多分にゲーム屋感覚的なものである為、ストレージ系などにDBが入っていないとか変なところもあるかもしれないが、それは愛嬌ということでw 使っていないインターフェースもあるので間違っているかもしれない。それは追々直していきます)
 ちなみに、インターフェースとヘルパー関数を中心に分けている。~系というのは、そのプレフィクスで始まる関数のことで、複数存在する。基本的にはC標準関数の名前と一致しているが、独自に拡張された関数が追加されている系統のものもある。あと、カッコつきなのは、実際は利用しない抽象インターフェースである。

 こうやって分けると、作るものに対してどれを重点的に知っておけばいいのかの目安になるはずである。

 まず、システム系とC標準関数系は、一通りチェックしておく。
 次にゲーム屋にとって重要な画像、サウンド、メディア系と、データの読み込みや保存に必要なストレージ系をチェック。スタンドアロンなゲームなら、ここまででOKだろう。

 あとは、対話式HTMLライクなことをしたいなら、コントロール系。Webと情報をやり取りする必要があるなら、Web系。端末側情報を使いたいなら端末系をチェックしよう。

 DBやハッシュ、暗号、構文解析等を使うなら、その他機能系で使えるものがあるかもしれない。

 基本的にBREWのAPIは行き当たりばったりな構造である。特にヘルパー関数はその傾向が顕著だ。なので、Javaのように「用意されたメソッドをやりくりしてプログラムを構築する」感覚で作ると戸惑うだろう。どちらかというと「無いものは一から作れる」プラットフォームであるので、APIが用意されているかどうかを気にせず、バリバリ作ってしまうというのも手である。

| | コメント (0) | トラックバック (0)

ゲーム屋のためのBREW開発のキモ

 というのを書いてみることにした。あくまで自分用ではあるが、せっかくなので公開してみる。

 コンセプトは「BREWでゲームを作るときに抑えておきたいこと」。
 いわゆる「入門記事」ではない。BREWとはなんぞや。とか眠い話をすっ飛ばせる人対応w どちらかというと、「BREWの概要はわかったけど、APIやドキュメントが体系的でないから、なんかモヤモヤしている人」にわずかでも指針を示す目的の記事である・・予定。
(あ、あと最初に断っておくと、記事の正確性は結構アヤシイと思うw ので、古い記事も随時(こっそり)updateしていくつもりです)

 早速、準備編である。

 まず、押さえておきたいページ。BREWに関するリンク集である。
 BREW(Binary Runtime Environment for Wireless)
 ここからBREWに関する全てを辿れると言っても過言ではない。

 ちなみに、SDKはQUALCOMMのHPから入手できる。各種アドインもここから入手。au端末に関する追加APIや、端末ファイル(デバイスコンフィグレーションファイル)、ドキュメントはauのEZアプリ技術情報から。

 ドキュメント化されていない情報は、BREW JAPAN.COMのフォーラムが詳しい。

 既知のバグやAPIの不備などは、BREW技術情報のBREW Technical Tipsを常にチェック。

 あと、2chSophiaCradleの技術情報は、なにげに有用。


 記事の続きはゲーム屋のためのBREW開発のキモで。

| | コメント (0) | トラックバック (1)