2004年9月アーカイブ

Mobile Hotmailer

MSNが運営するHotmailには、"HTTPメール"と呼ばれる機能があります。POP/SMTPで実装されている現在のメール送受信の仕組みを、HTTP上に実装したものです。まぁWevDAVでXMLメッセージを送受信してるんですがね。そのプロトコルについてはHTTPMailプロジェクト(sourceforge)が詳しいです。

で、幸いなことに現在のケータイのJava(MIDP)では低レベルのHTTPアクセスができます。まぁHTTP以外の通信ができないともいえるわけですが。メソッドの種類やレスポンスコードの取得もできるのでがんばり次第では"HTTPメール"対応もできるわけです。(HTTPConnectionMIDPのHTTPConnectionの仕様)

ただ、実際に対応されるとなるとやらなきゃいけないことが多いです。Redirectやらのレスポンスコードへの対応はもちろんきっちり書かなきゃいけないですし、Digest認証部分も自分で書かないといけないですし、XMLパーサなんかも自分で書かないといけないですし・・・慣れないプロトコルとフォーマットの対処ばかりに力を入れないといけないわけです。

JHTTPMailという、上のHTTPMail仕様を満たすJavaのライブラリを作ろうという動きもあるんですが、ココは表ばかりで実際の活動形跡が見あたりません。。。。MathLibraryだったり縦書きだったり、たいていの部分は他人のがんばってくれた成果を利用してこれまでアプリ作ってきたんですが、今回はそうもいかないようで。まぁそうならアプリ作らないだけなんですがね(ぉ)

たとえばWindowsでは、縦書き表示するための専用のフォント(@から始まるやつ)を指定すればおしまいです。あとは表示位置を調整すればいいだけ。んで、今回のターゲットはケータイJava。

ケータイJavaのベースであるJ2ME/CLDC+MIDPでは、Graphics#drawStringというメソッドがありますが、これはもう横書きしか想定してへんのとちゃうんと言わんばかりのAPI仕様となってます。で、ことケータイに限ってはフォントの種類自体がありません。書体は実質1種類です。当然縦書き専用フォントなんて期待もできません。

つーことで、ちまちま縦向けに修正する必要があるわけです。はじめは半角文字だけ回転させればいいかなぁと思ってたんですが(com.j_phone.util.GraphicsUtil#drawRegionで回転可能)、実はそうでもないらしく、たとえば"「"は回転する必要がある、"ぁ"は表示位置をずらす必要がある、"。"も表示位置をずらす必要がある、などを考えないといけなかったわけです。ああめんどい。

テキストビューアを書籍を読むためのものとして使うためには、さらに追い出し・追い込み・ぶら下げの各種禁則処理もいるわけですが、ここまでくると読み込み時の処理にまで手をつけないといけなくなるため、ここは見送り。回転・表示位置ずらしの必要のある文字一覧は「縦やオラ! for Java」のソースを参考にさせてもらいました。ありがとうございます。。

WinXP環境にしてからなんですが、適当な窓を閉じた直後にexplorer.exeプロセスが3秒ほどメッセージ処理せず結果フリーズしたような現象になることがしばしば起こってました。あれこれ探し回るも原因わからず、非常に困り果ててたんですが、ついに原因わかりました。ありがとうウィンドウズ処方箋

で、該当するのはこれ「ときどき、XP のタスクバーやエクスプローラが反応しなくなります」 ATOKを使ってるんですがMS-IMEなんていらないので切り替えバー必要なし、Ctrl+F10使ってるから言語バーなんていらないし、ってことでまさしく該当してました。「音声認識機能」「東アジア」なんて言葉がWindowsXPで説明として使われてたんで触ってなかったんですが、やっぱちゃんと調べるもんですね。Microsoftの日本語訳はいい加減すぎる。

rarul.comの帯域制限開始

Apacheのmod.bandwidthを使って、www.rarul.comのアクセス時の帯域制限を開始しました。理由は・・・オンラインゲーム時にちょっと大きめの画像にアクセスされると、ゲームでラグが発生して相手にやられてしまうのが悔しいからで(ぉ

こちらのページを参考にしました。ほぼそのまんまです。
LoadModule bandwidth_module modules/mod_bandwidth.so
AddModule mod_bandwidth.c
BandWidthModule On
BandWidth 192.168 0
BandWidth 127.0.0.1 0
BandWidth all 51200
LargeFileLimit 200 2560
てな感じです。これまで(ADSLのため)最高70KB/secほどだったのを50KB/secほどに制限するので、体感的にはあまり変わらない・・・わけないか。

これで、BF1942プレイ中敵にばったりであって弾ち合ってる最中にラグって相手がワープしたかと思った瞬間やられているなんてことが減ることでしょう。。。。まぁどうせヘタレなんでラグらなくても相手にやられるんですがね・・・

なつゲーの正式サービススケジュール

なつゲーの正式サービススケジュールが発表されたわけですが、マジであのまま正式サービス開始するそうです。アフォとしか言いようがない。

まず、必須ともいえる対戦機能が実装されてません。「大運動会」で一度はリリースされたもののどうやら理想的なLAN内でしかテストしてなかったような感じで、インターネット越しのたとえばpingに50msecかかるような状況ではまともに動いていません。いや、まともじゃないんだって。やばいくらい動かないんだって。で、現在は公開停止中です。

なので、対応ソフトはそこそこ増えてきそうなんですが、このままではオフラインプレイに終わってしまいそうです。それで1プレイ30-80円ほどを取るのはさすがに高いでしょう。24時間の定額制も検討しているそうですが、せめて1週間300円程度でないと・・・1週間300円にしても人が来るかどうか怪しいのに・・・

もしくは数で勝負とか。1週間1000円で全ゲームやり放題だと来る人もいるんじゃないでしょうか。もちろん30ゲームくらいあるのが前提ですが。

いずれにしても、まともなレベルでオンライン対応できるかどうかが、サービスが成功するかどうかの大きな境目になると思います。まぁソースレベルでいじってないそうなのでおそらく無理でしょうけど。

Eclipseってホントに便利なの?

ケータイ向けのJava開発のために、前々から気になっていたEclipseを導入してみました。この辺とか参考に。

で、入れてみた感想なんですが・・・環境変数やらランタイムやらパスやらがどうなっているのかを理解するのに非常に苦労します。表面的にしかわからないんで、結局コード保管付きエディタ+Antという使い方しかできてません。おそらく便利な機能のうちの2割くらいしか体感できてないんだろうな。

でも慣れるまでの敷居も高くてなかなかなじめません。結局、Antと10時間ほど戯れた結果、以前のMakefileの環境へと戻るのでした・・・もうね、Makefileと*.jadとMANIFEST.MFのファイルを自動生成するためのスクリプトだけで十分の気がしてきた。

BF日記アンテナ設置

BF日記アンテナなるものを設置してみた。まぁ要するに、BF日記を書いてるWeb上の誰かさんのページの更新状態をチェックするというよくあるアンテナなんですがね。

某所の内輪だけのアンテナがあるんですが、これがやけに便利なもんで、BFに関する日記を書いてる人たちのサイトへのリンクを拡張させ、アンテナとして公開することにしました。

追加してほしいサイトがある場合は個別に私までお問い合わせくださいませ。。登録のための条件は、BFに関することを書いてる・BFプレイ時の名前をさらしてる・ちゃんと更新している、の3つです。

LimeChatマクロのDLL拡張

LimeChatというIRCクライアントソフトにはマクロ機能がついているんですが、これ結構高機能でたとえば外部DLLの関数呼び出しなんかが可能です。LimeChat用DLLをVisualC++6.0で製作ページが詳しいです。

んでこれを使って私も小物を作成。どんなものかといいますと、PC向けゲームであるBF1942を動かしているときは「BF中です」といったメッセージ応答するというもの。このゲームはDirectXのフルスクリーンで動作するため、たとえばIRCで呼ばれたとしても反応しづらいんですよね。そこで、BF1942.exeプロセスをチェックするようなDLLを作ったわけです。BF中にIRCで名前呼ばれたらメッセージを返すLimeChat向けボットマクロDLL

まぁDLL呼び出しが可能なので、やりようによってはほぼ無限大の記述ができるわけです。こんなのあればいいなという機能を模索しようかと思っとりますです。

なつゲー2次β当選

1プレイごとに課金ししかも高い、「いっき」を1プレイでしかできない、オンラインゲームといいながら全然オンライン対応してない、無料ベータテスト中なのに人がほとんどいない、というすばらしいなつゲーですが、このたび2次βテスタ募集に当選しました。んでさらに、くにおくんの大運動会が追加されるそうで。で、本題はここから。

MYCOMにレビュー記事があがってます(みんなが気になる「いっき」なわけ、「なつゲー」のナゾをまとめて聞く)が、どうもNTT Comにその気がないというかそんな印象を受けるインタビューになってます。DRMには気を配ったエミュレータで動作させているようですが、オリジナルの「ソースコードがない」らしいです。え?ないの?本当にエミュレータ動作させているだけ?そんなんでオンライン対応させられると思ってるの?やばいよマジで。

NESやらSNESやらの名称でエミュレータが出回っているのはもはや周知の事実ですが、これらには実はオンラインプレイ機能が搭載されてる本体が多いです。が、やはりどれも安定度が低いようで、たとえばLAN内での対戦にもかかわらず途中でネット動機がうまくいかずに落ちてしまったりもするようなレベルです。そんなのに真っ向から対応させるのはおそらく無理ですよ・・・オンライン対戦機能が未実装なのはこのあたりに起因しそうです。

オンライン対戦機能に対応させられないのなら、月額料金取って正規サービススタートさせるのは無茶すぎ。10月の正規サービスまでにはオンライン対戦機能つける予定だそうですが、私の予想ではたぶん実装できないんじゃないでしょうか。

私の提案としてこんなのがあります。エミュで違法か違法でないかきわどいレベルで昔のゲームがプレイされているのは周知の事実です。なので、ここに目をつけ、昔のゲームを完成度の高いエミュレータで合法的にプレイできる環境を整えるという方向です。課金は非常に安い値段しかできないでしょうなぁ、ゲームタイトルのメーカはもっと大きなビジネスチャンスの可能性があるかもしれないから安い値段でOKは出したくなく渋るかもしれないですが、かなりはしたがねでもほっとくだけでお金が入ってくるモデルにはできると思うんで、そこでうまくNTT Comタンが交渉して・・・やっぱ厳しいな、無理か。

というわけで、オンライン対戦機能に対応しつつ月額定額制で比較的安い値段設定しない限りなつゲーは終わるでしょう。あとこういうなつゲーは、ゲームの数をそろえてナンボでもあるんで。ライバルはハンゲームでしょうかね。

WinXP+RegisterHotKey+DirectX+フルスクリーン

WinXP+RegisterHotKey+DirectX+フルスクリーンという組み合わせでは、RegisterHotKeyしたキーでホットキーイベントがやってこないという、仕様なのかバグなのか、はたまた私の環境が悪いだけなのか、よくわからない現象が起こります。

まぁ例の、レスキルしたい人専用ソフト(bfcounter.zip)なんですがね。(詳細はBF1942のページへどうぞ)

っつわけで、キーボードフックで実装したバージョンに変更。フックがDirectXゲーム動作に悪影響するかもしれませんが、まぁ他の手段がないんで仕方ないでしょう。

あとあと、慣れないWin32プログラミングの教師になってくれたにとよんサンクス。

このアーカイブについて

このページには、2004年9月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2004年8月です。

次のアーカイブは2004年10月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0