ウェザタイ,ワード送信機能を搭載した版を開発版に公開。Pha-jtd さんによると「夢の機能」だそうだ。氏は ver1.0 の時からこの機能を欲しがっていたのである。今までは,自分でワードを作った場合,相手にあらかじめメール等で送り,同じファイルを使ってもらわなければならず,非常にめんどうだった。で,今回の機能によって,自分のマシンに入れておけば自動で相手側にも反映されるようになる,ということである。
ちょっと試してみたが,自分の知らないワードが出てくるのはなかなか新鮮でいい感じだった。
ウェザタイ,ワード送信機能を搭載した版を開発版に公開。Pha-jtd さんによると「夢の機能」だそうだ。氏は ver1.0 の時からこの機能を欲しがっていたのである。今までは,自分でワードを作った場合,相手にあらかじめメール等で送り,同じファイルを使ってもらわなければならず,非常にめんどうだった。で,今回の機能によって,自分のマシンに入れておけば自動で相手側にも反映されるようになる,ということである。
ちょっと試してみたが,自分の知らないワードが出てくるのはなかなか新鮮でいい感じだった。
ウェザタイにワード送信機能を搭載する。これは問題文章として,各プレイヤーのワードを順々に出題していくものだが,かなりプログラムを変更したので,少し安定するまで開発版には載せないでおく。
これを含めて安定したら,マニュアル等を整備して v1.3 公開にしようという感じ。ランキングに参加できる版を早く正式公開したいというのがあるので。
ウェザタイ(長いのでこれから略してこう言います)のおかげで毎日日記に書くことがあっていいなあ。
昨日 Hi-HO でランキング CGI のテストしてたら,数十秒反応がなくなって,hoge.pl.core を吐いて復活した。Hi-HO には内緒。だいたいうちの CGI も,昔に作った効率の悪いものなので本格運用に耐えられるのかちょっと心配。サーバに負荷かけまくってる気もするし。Hi-HO で,Perl じゃなくて使い慣れた C++ か Servlet が使えればもっと効率のよい & 安全な & 携帯でも使えるとか,そんなのが作れるのだが。
知り合いのサーバに移転するか,Pha-jtd さんがサーバ立てるのを待とうか,Perl CGI を構築し直すか検討中。
すごいバグを発見。今まで,画面を初期化するときは背景を読んで書き直す,画面全体を書き直すだけのとき(モード変更時等)は背景サーフェスから転送,としていたのだが,この条件分岐が間違っていた。ので,画面全体を書き直すときも,背景画像を読んで初期化していた。今まで,たかが 1 画面書き直すになんでこんなに時間がかかるのかずっと不思議だったが,こういうことだった。
で,これをなおしたらゲーム開始時や終了時も早くなって,「背景画像なし」モードも「背景色」モードもあまり変わらない速度になってしまった。今まで画面の再描画が遅いせいで対戦に負けていた人すみませんでした,って感じである。
まあ,背景色モードも,仕事中にやるときなどに役立つので一応残しておく。
お詫び(?)にランキング表示時にもう少し詳しい情報と,スクロールして多くの情報を表示するようにした。
掲示板に出ていた 3 人対戦の話。確認したいんだけど開発者が全然つかまらない。ここ読んでたら連絡欲しいなあ。まあみんな忙しいからしょうがないんだけど。
(Hi-HO じゃないアカウントでの)メールが 1485 通来る。携帯に転送してたらどうなってたことか。とりあえずメールボックスごとリネームして見なかったことにしておく。
Weather Typing。フルスクリーン時に Alt+TAB で最小化したのを戻す際,DirectDrawSurface7::Restore() を使っていたが,タイミングによっては失敗することが判明。どうやら画面モードが戻る前に Restore してしまっていたらしい。とりあえず成功するまでやってみることにした。こんなのでいいのかなぁ。
ネットランキング。段々人が増えてきてありがたい限り。そろそろデータを消すわけにもいかなくなってきたので,正式公開とします。アップロードのしかたをちゃんと書かねば。
Weather Typing ネットランキングを仮公開。やっぱりランキングがあると面白い,ということでネットランキングを作ってみた。
詳しくはWeather Typingのページを見てもらうとして,ここでは技術的なことを。
登録方法としては,CGI を使ってみた。専用のアップローダーが Hi-HO の Web サーバにつないでデータを送信する,といった感じ。
一応利点としては,
で,欠点は,
というのがある。一応送信している情報は,タイピング情報と IP アドレスだけなので安心して欲しい,というしかない。ネットワークに流れる情報を全て監視するソフトとかあれば確認できるかも。
Weather Typing 開発版。
Denasu System ページ全体をリニューアル。とりあえず今の私にはこれが限界。一応前の状態より幾分良くなったはず。
GANGAS – Type Well Fanさんから Weather Typing を紹介してもらいました。ありがとうございます(ってこんなところに書いても誰も気付かないけど)。ここのサイトは,私が今ほぼ毎日やっている「タイプウェル」というタイピングソフトのページですが,参加者のレベルが高すぎてなかなかついていけません。頑張らねば。
参考までに私が普段プレーしているタイピングソフトについて。
あとは市場調査と銘打って適当にネットでタイピングゲームを探してきてはプレイしてますが,なかなかずっとやり続けてるソフトはないですね。
Pha-jtd さんとの話し合いの結果,ウェブサイトをもう少し派手に改装することに決定。というか今が地味すぎなのだが。
とここに書いておけばあきらめずにやるかな,ってことで。
サポート掲示板を公開。Denasu System 開発ソフトに関して語り合う場所,ということだが,果たして一般の人からの書き込みはあるのだろうか。実は掲示板に関しては,昔に作って 2 年ぐらいそれなりにやっていたが,最後まで身内しか発言しなかったので,閉鎖したという経歴があるのだ。
まあ盛り上がるまでは気長に Pha-jtd 氏と Weather Typing のことを話していこうと思う。
もちろんこの日記への意見や感想等も歓迎なので,気が向いたら書き込んでやって下さい。
Weather Typing1.2 をアップ。もう少し機能追加する予定だったが,諸事情により忙しくなっているので今までの分をアップし,しばらく凍結。多分 7 月になったらまた作り始める,と思う。
K.F 氏に,IE で Alt+(右,左)を押すと前のページ,次のページへ行けるというのを教えてもらう。これは便利。ちなみに BackSpace は何故か知っていた。
ファイルダイアログ。最初のディレクトリがカレントディレクトリの時とそうでないときがある。これは,*.bmp 等のフィルタをかけてある場合,実際に *.bmp のファイルがある場合はカレントディレクトリ,ない場合はそれ以外になるらしい。
CFileDialog::m_ofn::lpstrInitialDir にディレクトリを指定すればそのディレクトリで表示される。
Weather Typing 1.11 をアップ。「ん」と「っ」が連続している問題の修正のみ。今後は新機能をどんどん追加していくので,次の正式バージョンアップはかなり先になると思う。
Pha-jtd 氏の家にて Weather Typing をコンパイルしてみる。しかし,ワークスペースが開けず,VC が落ちてしまう。で,「サービスパックは?」と聞くと,なんだか分からない仕草をしていた。つまりサービスパックを入れていなかったわけだが,本人曰く,「サービスパックなんていうのがあることを教えてくれていたら入れてたのに。そんな当たり前のこと誰も教えてくれなかったからぁ。」ということで,Pha-jtd 氏の手元にずっとあった C マガ付属のサービスパックを入れ,無事にワークスペースが開けた。
「絶対他に知らない人いるよ」という Pha-jtd 氏の言葉を受け,ここに書いてみた。
Weather Typing。「ん」と「っ」が連続しているとき,ローマ字がおかしくなるバグを発見。修正し,開発版においておく。まあ付属のワードにはそんなのは出てこないので発見する人はあまりいないと思う。
#ちなみに TOD ワードを打ち込んだものを試していて発見した。
Weather Typing。一回 Pha-jtd 氏に Win95 での動作を確認してもらって「Win95 対応」としたのだが,Pha-jtd 氏の家にて対戦を試してみると動作しない。Pha-jtd 氏のマシンのせいなのかなんかのか分からないが,とりあえずもう 1 度非対応ということにしておく。
Weather Typing。背景・ワードを Pha-jtd 氏にちょっと変更してもらい,これまでの変更・修正を含めたVer1.1を公開。
Weather Typing。ワードを打ち終わったとき,両方同時に打ち終わると,両方とも点数が入る,仕様だったのだが,そうなっていなかった。のでそうなるように修正。まあこのせいで最後に出る完了ワード数が 10/20 vs 13/20 のように全員足すと合計を越えてしまうのだが,仕方がない。一応これで全プレイヤーが同条件になった。
というところでそろそろ新たに変更した点も含めて安定化してきたので,ver1.1 に正式バージョンアップしようと思う。後はタイピングスピードが各プレイヤーで同じ値になるようにしたら,公開する予定。
ほとんど毎日デバッグにつきあってくれている Pja-jtd 氏に感謝。
フリーソフトのページによくあるご質問を公開。とりあえず DLL をダウンロードできるようにしておいた。
Weather Typing の変更点をまとめて。
タイピングスピード測定だが,単位は(ローマ字)/(分)。つまり 1 分間にどれだけアルファベットを打ったか,としている。ちなみに私の場合正確性を 97~98% くらいに心がけたときで 430 くらいだった。
この速度,ローカルマシン上で計算しているので,相手に表示される数値と自分に表示される数値は異なる。さらに,遅延が大きいと一瞬でたくさんの文字が送られるため,恐るべき高速度になったり,逆に全然文字が送られてこなくて恐るべき低速度になったりする。将来的にはローカルで測定したスピードを他の相手に送るようにしようかと思っているが,今のところ電話回線を用いた対戦では信用できない。
現在の正式版では,
場合,前の文字列での入力が次の文字列に持ち越されてしまい,その文字が偶然次の文字列の最初の文字と重なってしまうと,ミス入力になってしまう。
これは,LAN 対戦のような遅延の少ない環境だと,次の文字列を打ってしまったことが自分で分かるのでまだいい。しかし,遅延が大きい場合は,画面上は先行入力で打ち終わっているのに,実際には打ち終わってなく,入力が次の問題に持ち越されるので何故ミスになったか分からなくなる,ということになってしまう。(分かりにくくてすみません)
そのため,現在は
という処理を行い,回避することにした(現在の開発版)。
ハンデ機能については,ハンデを指定したプレイヤーは最初に一定時間入力ができなくなる,という感じにしてある。基本的にはハンデ 1 に対し 0.4 秒くらいのハンデタイムになっていて,問題が短いと短く,問題が長いと長く,というようになっている。
Alt+Tab については,Win98(フルスクリーンモード)+ DirectX(Input?)では何故か Alt+Tab でのタスク切り替えができなかったので自分で最小化するようにした。Win2000 では問題なく Alt+Tab が効くし,Win98 でもウィンドウモードでは効くので,何故 Win98 フルスクリーンモードだけ効かないのかは分からない。
Weather Typing。得点が最大点を上回った際,プログレスバーがはみだしていた。最初はちゃんとやってあったが,いろいろあってこうなってしまっていた。修正。
Weather Typing。最後のランキングで,ミスが 1~2 回の場合,正確性 100% と表示される。これは printf が浮動小数点数を丸めているかららしい。一応修正。
BGM ファイルを置いてある場合,Type.wav もしくは Miss.wav がないと,BGM が止まってしまう。原因は,IDirectMusicPerformance8::StopEx を行ったとき,セグメントが NULL の場合に全てのセグメントの再生が止まってしまうためらしい(ドキュメントには書いてないので,おそらく NULL を渡してはいけないはず)。修正。
近頃ずっと「ネットワーク対戦タイピングソフト Weather Typing」というのを作っていた。一応完成のめどが立ったので予定だけアップしてみた。
ネットワーク対戦タイピングソフト Weather Typing
このソフトは,当初,電話回線を使ってタイピング対戦は可能なのか,という興味から作り始めたものだが,意外によくできたので完成させてしまった。
VC。F8 で選択(Shift)をロック,アンロックできることを発見。ってこれはどうでもいいか。
DirectPlay8 を使ってみる。DirectPlay4 とはえらく違ってていやな感じだが,なんとかセッションの作成までやってみた。で,たまたま電話回線(というかモデムか?)を使用中に立ち上げてみると,Windows 全体がフリーズした。何もできなくなる。DirectX8 SDK サンプルをやってみてもフリーズする。
どこでダメなのか調べてみると,EnumServiceProviders のところで,モデム関連を調べていて落ちている模様。そこで,レジストリエディタでモデムその他 TCP/IP 以外の設定を全削除してやってみたところ,うまくいった。なんなんでしょうか。
VC。アウトプットウィンドウにエラーが表示されているときに F4,Shift+F4 を押すと次々に該当場所へ移動できる(分かりづらい)ことを発見。
乱数。srand を使って乱数を初期化していたが,いつも同じ系列になる。原因は,乱数を初期化する方と使う方が別のスレッドであったため(だと思う…)。
Dena’s Image,Pha-jtd 氏の助言により,
バイト先の MK 氏に触発され,Dena’s Image の最新版を公開。このソフト,いきなり MDI 化したらバグが出まくってたため公開は見送っていたのだが,氏から「減色すると落ちるよ」という指摘を頂いたため,急いでバグを直し,公開してみた。MK 氏にはこの場を借りてお礼を申し上げたい。
あとくまのおえかきアルバムで,アルバムファイルを開くときに BMP を開くと落ちるという指摘を頂いた。で,修正しようと思ったら,当時のソースの一部は既に新たなソースに生まれ変わっていて,コンパイルすら出来ない状態になっていた。ので,当分このままかも。
XML4C を使って XML を出力することを試みる。が,XMLPlatformUtils::Initialize で,「XML4C Panic Error」というエラーで終了してしまう。で,トレースしてみると,エラーコード U_FILE_ACCESS_ERROR というエラーを返している。
結局,Unicode 変換用データベース icudata.dll がない,ということだった。何か,VC のデバッグ用作業ディレクトリに入れといただけじゃダメで実行ファイルのあるディレクトリに置かないと認識してくれなかった。まあいいや。
早いものでもう 2 月も終わりになりますが,って日記何も書いてないなぁ。卒論が終わってからずーっと PC 版 The Typing Of The Dead やっててプログラミングはほとんどやってなかったせいなわけで。ま,いいか。
再び Y 氏から教えてもらった Tips(というか仕様だけど)。Excel でグラフを描いていて,線の点(?)の種類が少ないよう,と私がだだをこねていると,「背景をなしにするとバツとか出るよ」とのこと。Excel のグラフの線のプロパティから背景をなしにすると白抜きの丸とかバツとかが表示された。ちなみに背景を黒とかにすると黒い丸とかが出てくる。
Y 氏から教えてもらった Tips。DOS プロンプトでコピーアンドペーストをするにはシステムメニューから選ぶというのは有名(?)だが,文字列を選択して右クリックすることでもコピーができるという。ちなみに Enter でもよい。