スマートボールとビリヤードをやってきた。というか物理シミュレーションのために観察してきたというか。
物理シミュレーションって結局は現実世界で現実世界をエミュレーションしようとしているわけで,ファミコンでファミコンエミュを作ってるような感じがしてある意味不毛なんだけど,ボールの重さが1つ1つ違うビリヤードはどうなるのかとか現実とはちょっと違うことを試せるのは十分価値があると思った。
スマートボールとビリヤードをやってきた。というか物理シミュレーションのために観察してきたというか。
物理シミュレーションって結局は現実世界で現実世界をエミュレーションしようとしているわけで,ファミコンでファミコンエミュを作ってるような感じがしてある意味不毛なんだけど,ボールの重さが1つ1つ違うビリヤードはどうなるのかとか現実とはちょっと違うことを試せるのは十分価値があると思った。
Dependancy Walkerをずっと使っていたが,Profile機能があるという情報を4号に聞いた。4号も昨日知ったらしいけど。フックを行って使っている関数を監視する。
しばらく書きためていたインストーラについてのTipsを公開してみた。ま,とりあえず置いておけば後で役立つかな的な感覚で。
円盤をサポート。まだ当たり判定が地面とだけだけど。
で,今日の不思議。10円玉を指ではじいて回転させるデモを作ってみたが,最後に直立してしまう。バグってるぽい気もするが,まっちーさんがいうには10円玉は完全な円盤ではないからじゃないか? とのこと。本来なら直立するのが正しいのだろうか。
もう一つ。回転が遅くなってくると机上を旋回し始める。これは以前のボーリング理論でいうと,回転が遅くなることで回転軸が斜めになって曲がってしまう,のか?
うーむ。まだすっきりしない。4号と相談してみよう。
夏休み。
前半は物理シミュレーションの高速化をやっていた。今まで衝突判定のスピードを考えず,直方体なら面6つと点8つに分解して「面と点」など汎用的な処理にしていた。で,それだと直方体4つくらいで10FPSまで落ちてしまったので,結局「直方体と床」とか「直方体と球」とか個別に判定するようにして,なんとか直方体15個で30FPSくらいまでにはなった。まだ遅いような気はするけど。
後半はサーブレットとJSPの勉強。仕事とも趣味とも全く関係ないけど,やっぱり広く浅く知るには試験勉強でしょ,ってことでSUNの試験を申し込んでいる。ぷよSUNが懐かしい。
あれ,夏休みに読み切る予定だったハリーポッターが10ページしか進んでない…。
物理シミュレーションはサイコロ+球までは再現できるようになった。そろそろ重くなってきたのでスピードを気にしていかないと。
実装していると物理の勉強では不思議に感じなかったことが不思議に感じてくる。とりあえずメモ。
Darren ShanのDemonata(Lord Loss)を読み終わった。次は買ったけど積んであったハリーポッターだけど,電車で読むためにはまた上中下に分ける必要がありそうな分厚さ。
どうやらウェザタイで何か動きがある模様。ここで書いてもいいのかなあ。
まっちーさんに触発されてゴールデンウィーク辺りから物理シミュレーションの勉強中。てことでウェザタイの開発は全然やってないのでこの日記もあまり更新してなかったりする。
表示部分は,3Dシューティングを作ろうとしていたときのソースがあるのでそれを流用。ようやくサイコロが転がるくらいまできた。問題はこれで何を作るかということだが。とりあえず前からやりたかったドミノ倒しでも作ってみますか。
先週あるつてでVisual Studio2005セミナーに行ってきた。2002-2003のマイナーアップデートとは違っていろいろ変わっている。気になるところでは
実際にβ2を入れてみたが,重い以外はなかなかいい感じ。
PocketPC2003 SEエミュレータでLobby for PPCを動かしてみた。最初に古いバージョンとかの警告が出る以外は動作に問題はなさそう。ちなみにVGAで動かすと,文字が大きいだけでちゃんとフルスクリーンで動作している。LandscapeやSquareにするとスクロールバーが出ているのがちょっと変だけど。
ロビーサーバは5/3の早朝,復活した模様。原因の詳細は聞いていないのでよく分からないのだが,電源が落ちていた,のかな。
PocketPC版ロビークライアントを公開。ほとんど自分で使うためのものだけど,もしかしたら誰か必要としているかも知れないので公開。
そのうちちゃんとしたドキュメントは書くつもりだけど,以下開発メモ。
どうもbeanfan.comにつながらない。管理者連絡待ち。
というところで急遽マトゥ氏管理の第2ロビーサーバを昇格させてみたのだが,どうも動きがおかしい。ソースを見ていると,排他制御が変な部分があって,既存のメンバのメッセージが到着しないと新規メンバが参加できないという状況だった。beanfan.comではある程度切れ目無くメッセージが届いていたということか。とにかくその部分は修正し,稼働中という状態。
.NET Compact Framework。いろいろと制限はあるものの少しずつロビークライアントを実装してみる。以下開発メモ。
とりあえずTips的なものはMSのFAQが詳しい。
Visual Studio.NET 2003にはPocket PC 2002エミュレータというのが付属していて,VirtualPCっぽい感じ(というか提供元Connectixってなってるし同じものなんだろうけど)で使いやすいのだが,以下の設定でつまづく。
HttpWebRequestでWebサーバにアクセスすると「チャンクの長さは無効です。」というエラーが表示される。これは.NET Compact Framework最新版では直っているようなので.NET Framework 1.0 SP3をダウンロードし,ファイル共有経由でnetcf.core.ppc3.x86.cabをエミュレータに配置して実行。
4号(誰)情報によると,.NETでは他のスレッドにメッセージを投げるとうまくいかないということでInvokeを使うらしいわけだが,.NET Compact Frameworkでは引数を付けてInvokeを呼べないという制限がある。で,スレッド上でのメソッド パラメータの呼び出しに載っているControlInvokerを使った。
ロビーの緊急待避モードの拡張を行う。とりあえず緊急待避モード時はタスクトレイに入るようにする。以前電卓を作ったときは意識していなかったが,Explorerを再起動したときにタスクバーからアイコンが消えるのは何とかならないかなあ,と検索してみる。IE4.0以上がインストールされているときはExplorerが再起動したときにTaskbarCreatedユーザメッセージが送られるとのことなのでそのタイミングでアイコンを再登録すればいいらしい。
ついでに緊急待避モードは今のままではウィンドウがアクティブの時にしかできないので,ウィンドウが隠れているときでもきくようにホットキーを設定できるようにする。制限事項として,他のアプリケーションと競合したらだめってのがあるが,とりあえずかぶらないようにして下さいというしかないのかな。
掲示板にも書いたが,しばらくPC環境のない場所へ行ってしまう。PocketPC+AirEDGEがあればある程度のことはできるが,それにも限界があるわけで。ま,しばらく様子見。ちなみに,最長で5月という噂。
それに先駆けていろいろと整理。しばらくメールがサーバにたまってしまうので,デナスのページから作者のメールアドレスを消した。今まではランキングのパスワード変更とか雑誌の掲載時とかの連絡用にメールアドレスを公開していたが,1日に50通くらい来るしウィルス付きだったりするので,しばらく削除しないとHi-HOのメールサーバがいっぱいになってしまう。これでどのくらいSPAMが減るのだろうか。
うーむ,こんなことなら早いところPocketPC用ロビーでも作っておくべきだったか。
Weather Typing 2.0.1を公開。修正点は以下の2点。リビジョンアップなので基本的にバグ修正のみ。
なお,WeatherTyping.exe自体は開発版で公開していた物とほぼ同じ(バージョン情報のみ違う)なので,既に開発版を使っていてリプレイビューアを使っていない方はダウンロードし直す必要はありません。
掲示板の,「リプレイビューアで総時間が0になる」問題。リプレイファイルが複数あり,旧バージョンが新バージョンよりも位置的に前にある場合に発生する。かなり以前から存在した問題のはず。てことで,リプレイ対戦の問題も含めて今日か明日中には2.0.1として正式版として公開する予定。
Vectorからウェザタイ2のダウンロード数が来た。ちなみにウェザタイ2の場合,Vectorのダウンロード数は全ダウンロード数の約30%ほどなので,デナスからのダウンロードをVectorへのリンクにすると3倍以上のダウンロード数になるわけだ。ま,やらないけど。
Cマガを立ち読みしてて,DirectPlayが今後なくなる予定だということを知った。とりあえず原文は…ってことで以下に書かれている。DirectX 9.0 SDK Update – (December 2004)1月以上前の情報ですね。ウェザタイはどうしよう。今後のDirectXでもランタイムは使えるんだろうけど,開発用ヘッダやライブラリが付いてこないというのはもう諦めろってことですか。次回バージョンではWinSockで書き直すのか…かなりめんどい。
MSDN オペレーティングシステムのDVD 10枚が送られて来た。っていってもOSは2003と2000サーバ以外元々正規のものが手元にあったのであんまり意味はないんだけど。てことでWindows2003でActive Directoryを使ったサーバ構築をしてみた。いろいろ日記ネタができるかと思ってたけど本を参照しながらだったので割とすんなり完了。
3連休。ウェザタイのテストという名目でずっとVirtualPCにOSのインストールをしていた。とりあえずWin95/98/Me/2k/XP/2003では動作することを確認。ちなみにダメなのはWin3.1/NT。
掲示板で報告されているが,ウェザタイ2.0でリプレイ対戦ができないというバグがあった。どうやら2.0.0.0から1.8.9相当にロールバックしたときに戻し忘れた部分があったせいらしい。とりあえず影響はリプレイ対戦のみであり,正式版だと2MB以上をまたダウンロードしてもらわなければならないため,正式版とはせず開発版とした。
やっぱり年越しはロビーなのでロビーへ。そして,今年中にウェザタイを2.0にするという目標があったので開発版をそのままWeatherTyping2.0として正式公開。
ロビーサーバは今のところbeanfan.comで動いている模様。管理者情報によるともう1回引っ越しがあるようなのでそのときはまた停止することになると思う。
で,ロビーサーバ休止中に運営しようとしていた仮サーバ。マトゥ氏に作業をしてもらったのだが,どうもつながったりつながらなかったりでそうこうしているうちに本サーバが復旧してしまったのでとりあえず第2サーバとして残している。
DELLから電源ケーブルが届いたので交換。
2つ目のMSDN契約。どういう扱いなんだろう。
ロビー停止中,かな。情報によるとサーバPC破損との噂。本人から聞いてないのでよく分からないけど。てことで一時的にマトゥサーバを間借りしようと思っているのだが,早くJava入れてアカウントください>マトゥ氏って段階。
12/19-12/26まで開発版として公開していたWeatherTyping2.0(ファイルバージョン2.0.0.0)だが,どうも過去バージョンとの互換性が完全に取れないことが判明。これを直すには過去バージョンとの互換性を切る必要があるのだが,どうせ互換性を切るなら次バージョンでプロトコル自体を新規に設計し直したい。そこで,以下のように方針を決定。
WeatherTyping2.0はファイルバージョン1.8.9.1+バグ修正のみとしました。2.0.0.0は破棄とし,2.0.0.1を公開しましたので,2.0.0.0を使っている方は申し訳ありませんが2.0.0.1にして下さい。
おそらくこれで特に問題がなければそのままWeatherTyping2.0正式版になると思われる。
その他修正。ロビーのタスクバー点滅をOFFにするオプションを追加。
品質向上その2。特定条件においてワードがプレイヤーごとに違うものになる場合があるのを修正。って結構致命的な気が。まあこの条件が揃うことはあまりないとは思うけど。
品質向上その1。ロビーサーバから強制切断されたときにもう一度ログインするとフリーズする現象を修正。LeaveCriticalSectionを呼びすぎていた。