2011年10月の日記

<2011年11月 2011年09月>

無題

カービィとかポケモンとかは残りの部分をゆっくりペースでぼちぼちやっていきながら、今後はゲーム以外のところをちょっと力入れていこうと思います。
そんなわけで、アンパンマンDB3のデータ登録プログラム構築中。
データベース構造が大きく変化したので面倒ですが、根本的にはアンパンマンDB2でやっていたことと変わりないので、さっさと作ってしまいたいところです。
これがないとデータ表示もできないし。

無題

星のカービィWiiクリアしました。
あの展開は想定の範囲内といえば範囲内かな。
ラスボスはカービィシリーズとしてはかなり強い部類に入りそうです。
これでとりあえず、「全体の半分」のようです。

無題

星のカービィWiiやってました。
多くは語りませんが、レベル5のボスは印象的な奴でした。
いよいよラストのようです。

無題

星のカービィWii、弟と一緒にやってレベル4までコンプリートしました。
基本的に一人でもクリア可能のようですが、二人のほうが都合のいい場合も結構多いですね。
失敗したときのリカバーができたり手がふさがっているときの護衛になったり。

無題

時間差ツイートできました!
色々とパラメータがいじれるので普通に時間差ツイートする以外にも色々と使い道ができました。

無題

時間差ツイートの続きです。
今まではただ一方的にツイートする機能だけでなんとかなっていましたが、時間差ツイートではタイムラインの状態も知らなければならないので、そのあたりから開発を始めています。
正直、手っ取り早い方法は他にもあるのですが、Twitter周りでは他にも色々やりたいので、後で気軽に拡張できるように今からしておくのです。

無題

TGWSAdmin作っていました。
TGWSの管理とは特に関係はないのですが、Twitter連携機能を使って、時間差ツイートを実現します。
これ、以前から作ろうとしていたのですが、データの登録を作る目処が立たなくて開発が停滞していました。
簡単に編集する方法を見つけたので、一気に作り上げられそうです。

無題

ポケモンホワイトで、海底遺跡に行ってみたのですが、案外何もないですね。
いえ、道具はたくさん落ちていたのですが、効果が他のと被っていたり、ただの換金用アイテムだったり…。
何か隠れたイベントでもあればいいんですけどねぇ。

無題

FNチェンジャー2.3.0公開しました。
内容としては、先日言っていた正規表現への対応です。
正規表現はぱっと見ものすごく読みにくいのですが、一度覚えてしまうといろんなソフトでも使えて結構便利です。

無題

ここの所暫くの間アクセスログを取れなかったのですが、サーバー管理者に問い合わせてまた取れるようになりました。
アンパンマンDBの最近のTOP10はアクセスログに依存しているので困っていました。

無題

ちょっとした理由があって、FNチェンジャーを改良していました。
具体的に言うと、文字列置換を正規表現に対応させていました。
そのときバグを見つけたので、すぐに直して、新機能を出す前にまずバグ修正だけしたバージョンを先に出しておきました。
バグ修正だけのバージョンアップなので、2.2.0→2.2.1に番号が変わっています。
今までのx.xx形式のバージョン番号だとバージョンアップのときに新機能を追加しなければいけないようなプレッシャーが生まれていたのですが、新機能追加とバグ修正で別々にバージョン番号を増やすようにしたので、そのあたりの心理的負担が少なくなって、バグ修正だけでもどんどん新バージョンを出していけます。
で、バグの内容ですが、「大文字小文字を変換しない」というオプションの処理に問題がありました。
言うまでもなくこの処理は「何もしない」のが正解ですが、その「何もしない」部分を、その部分を囲うif文ごとコメントアウトしてしまい、後続のelseの意味が変わってしまっていました。
この部分は別にコメントアウトしなくてもパフォーマンスには実用上意味のある変化をもたらさないので、コメントアウトせず愚直に「何もしない」を書いておきました。

無題

アンパンマンDB3のコラムと商品DBのデータベース構造定義を仮に作っておきました。
まだしっかり作りこんだわけではありませんが、細かいところは表示画面を実装しながらにしましょう。

無題

体調が悪くて寝込んでいました。

無題

アンパンマンDB3(バージョン3と書くと長いので略します)を作っていました。
今回は、データベース構成の省略時初期値を作っていました。
こうやってすべてのデータがあることを保障しておくと後々いろんなものが書きやすくなるのです。

スカイウォードソード

ゼルダの伝説の新作が来月発売ですね。
トワイライトプリンセスの流れを汲むキャラクターデザイン、風のタクトの方向性の演出、ムジュラの仮面のような作りこまれた世界、時のオカリナよりさらに前を描くストーリー、あらゆる面から楽しみです。
ただ、トワイライトプリンセスではWiiリモコンによる操作を受け入れ難かったのでその点だけが心配ですが、これもWiiリモコンプラスでどうにかしてくれると期待しています。
公式サイトは結構勢いよくネタバレしてくるので今後はあまり見ないようにしておきます。
最初のダンジョンまではいいけど、さすがにその先は…ね。

あと、カービィは今月発売ですね。
最近カービィのソフトは買っていないのですが、久々に楽しみなタイトルです。

無題

アキヤメの[アンパンマンキャラをポケモン風に]、根本的には何も解決していませんが、とりあえず見られるようにだけはしておきました。
おそらくライブラリ側の問題だと思うのですが、その問題を解消できそうな方法は、同じサーバーを使っている他の人にも影響が出る方法なので、高々アキタラヤメル企画ごときに使うようなものではありません。
とりあえず、読み込むデータを、問題回避できるように工夫することで、見られるようにしました。
将来的にはそういうライブラリを一切使わず、もっとしっかり動くもので実装しようと思っています。
まあ、飽きなければ、の話ですが。

無題

アンパンマン商品DBについて、外部サイトとの連携があるから他のデータベースと同じような実装は難しいとかつて書きました。
しかし、よく考えてみると、連携が必要なのは商品説明文と画像程度のもの。
だとすれば、アンパンマンDB自体に外部サイト連携機能を付け、商品DBでのみその機能を呼び出せばよいのではないかと思いました。
アンパンマンコラム共々、他のデータベースと同じシステムを使った運用が可能そうです。
また、商品は他の項目と違って名前が長くなりがちだったり、毎回必要な注釈があったりと、運用の効率性の面から商品DBに実装したい機能もあります。
とりあえずこれらの機能は片っ端から実装していって、商品DBでは機能ON、それ以外では機能OFFという運用にしていったらよさそうだと思っています。

アキヤメの[アンパンマンキャラをポケモン風に]が動いていないという報告を受けました。
ローカルではばっちり動いているので、ローカルと公開用の違いを意識しつつ原因を究明したいと思います。

無題

自作Twitterクライアントの置き場所だけとりあえず作っておきました。
それに伴い、Webアプリの一覧ページをリニューアルしました。
一覧だけのリニューアルでアプリそのものが強化されたわけではないので更新履歴には入れていません。
今はまだ一覧に載せるべき追加情報が何もないのでリストがテーブルタグで書き換えられただけですが、将来的にはアプリの説明や最終更新日などを表示できるようにします。

無題

なんかTwitterの公式クライアントが気に食わないので、自作しようかと考えています。
ええ、自作です。他社クライアントなんて使いませんとも。
とりあえず、トレンドとかお勧めユーザーみたいな雑音は出さない。広告は言わずもがな。
検索は常に「全て」を検索。公式デフォルトの「トップ」は見たいものが隠されてしまううえ、まるで無関係なツイートがなぜか表示されてしまう。これは検索と呼べる代物ではない。
リツイートは原則として表示。ブラックリスト方式で非表示。「○○がリツイートしたツイートは無視」、「○○のツイートはリツイートされてもタイムラインに出さない」の2点でOK。
URLはリダイレクトを展開して直接表示。リンクは面倒なので貼らない。
ハッシュタグは普通に扱う。

無題

データベースの自動インストールを実装しました。
インストール処理が実行されると0.15秒かかります。
1回や2回では気付かないような一瞬ですが、これを毎回やっていると、慢性的にワンテンポ遅れるのが体感的にもわかるので、この0.15秒も削るようにしています。
といっても、データベース定義ファイルの変化を検出するためのファイルを別途用意しておいて、それを使って変化が検出された場合のみインストール処理を実行するというだけの簡単なものです。
変化の検出にかかる時間は0.00005秒。
これはさすがに毎回でも気付くようなものではありません。
なので、インストールを管理画面専用にせず、ユーザーによるものも含め、すべてのリクエストで自動インストールを試みても問題はなさそうです。
管理画面専用にすると、定義ファイルが変更されてから管理人がそれを反映するまでの間にアクセスがあるとエラーが発生しますが、毎回自動インストールしていれば、ほんの一瞬の遅延と引き換えにエラーの出る瞬間が発生しない運用が可能となります。

無題

アンパンマンDBバージョン3開発中。
データベースの自動インストール周りです。
ここんところCREATE TABLEが反映されなくて困っていたのですが、この処理をトランザクション内で行おうとしていたのが原因でした。
また、インストールには数秒とはいえ時間がかかり、その一方で休止時間ゼロでの運用もしたいので、設定をリアルタイムに反映させつつその作業には極力時間をかけないようにする方法も考えています。
データベース定義ファイルの変更検出用の小さなファイルを作って、変更が検出された場合のみ自動インストールを行います。
データベース定義が変更されることは、運用開始後には少なくなるはずなので、ほとんどのケースでは体感できるほどの速度低下はありません。
また、インストール作業が入った場合にも、数秒なので、体感的には回線の調子が悪かったのとそう変わりないはずです。
もちろん、なるべくインストールは自分で行って、訪問者には数秒も待たせないようにしたいと考えてはいますが。

現行のアンパンマンDBの「今月の仲間」のページをこっそりパワーアップしました。
年月を選べるようになったのと、十周年単位での強調表示です。
メロンパンナちゃんが来年9月で20周年というのもわかるようになったのです。
将来的には、さらに拡張してアンパンマン年表のようなものにしたいと思っています。

ブラウザ版ふわふわふにゃ、iPhoneでの動作確認も取れたので、動作環境のところにiPhoneも追加しました。
少なくとも最新版のiPhoneならばちゃんと遊べると思います。

無題

弟がやっていたスーパーポケモンスクランブル、クリアしたようです。
結局まあ、いろいろとネジの話でした。

ゲームフリークのモリモト

ポケモンホワイト、ゲームフリークのモリモトと戦いました。
ひでりロコンでとりあえず晴れにしておいて、あとはアクアリング耐久型ガマゲロゲと炎タイプのメンバーで挑みました。
三猿がヤタピのみを持っていたのは予想外でしたが、みんな頑張ってくれてなかなかいい感じに勝てました。

無題

先日の今月の仲間と未記入キャラのページを改良しました。
未記入キャラのページについては、記入しなくてもいいキャラを表示しないようにしただけです。
今月の仲間は、レイアウトを調整したのと、URLで指定すれば年月を指定して表示することができるようになりました。
さらに拡張して仲間だけでなくイベントの予定や放送の記録なども入れてアンパンマン年表的なものにしてみるのもいいかもしれません。

無題

昨日に続けて、今度は未記入キャラを列挙するページを作ってみました。
処理の高速化と開発スピードのため、すべてカタカナにして処理しています。
これがキャラDB充実の助けとなるはず…!

無題

アンパンマンDBのメモページに「今月の仲間」を作りました。
トップの○○周年の月間バージョンです。
ちょっと変えればいろんな月の仲間も作れます。

無題

パネルγの公正なランキングシステムについて考え。
ゲーム開始時にサーバー側からキーを受け取る。
サーバーはキーを発行した時間を記録しておき、ゲーム側はそのキーを元にゲームを始める。
ゲーム終了するとキーとリプレイデータを送信し、サーバーはやってきたキーと自分で発行したキーを照合する。
そしてキーが正当なものであればリプレイデータを受理する。
こういうのならいけるんじゃないだろうか。

無題

それいけ!アンパンマンアニメ化23周年ですね。
だからというわけじゃないですが、トップページの○○周年のキャラクターの表記を改善しました。
今まではキャラクターがたくさんいても一人一行使っていましたが、初期エピソードや劇場版だと一度にたくさん出てくるので紹介が長くなりがちでした。
今回からは同期のキャラクターは一行にまとめてすっきりした表記にしています。

無題

ふわふわふにゃブラウザ版、1個バグを見つけたので修正しておきました。
最初のとげとげは上下左右のどこかの画面端から出てくるはずだったのですが、左端から出てくるコードを間違えて右端から出てくるように書いてしまっていたのでした。

それにしても、こういう、書いたコードがゲームとなって動き出すという楽しさ、最近はすっかり忘れてしまっていました。
なんというか、先のことを見越して、今はまだ形として現れない、地味なコーディングが多くて、プログラミングが最終目的のためだけの苦痛な作業になってしまっていました。
初心者が練習で作るような簡単なミニゲームを再び作ってみて、趣味のプログラミングに大事なことを思い出せたような気がします。

TGWS10周年です!

より正確には、TGWSの前身となる「Tokio's Web Site」から数えての10周年です!
そういうわけで、急ピッチで開発してきたWebブラウザ版ふわふわふにゃ、公開です。

ふわふわふにゃを含めたふにゃシリーズは中学校のときから付き合っていて、できたばかりの「Tokio's Web Site」のダウンロードコーナーを飾ってくれていた、思い出深いシリーズです。
10年目の更新にふわふわふにゃをぶつけたのは前から決めていたことではなく、たまたまJavaScriptでゲームを作ろうと思っていたときに10周年が迫ってきていたので日付を合わそうと考えたのですが、こういう記念の日に思い出のシリーズの新作を出せたのを嬉しく思います。

しかし、JavaScriptで作りたいというのが先立ってできた今回のゲームですが、単に今までと同じようなものを作ったというわけではありません。

例えば、今までのふわふわふにゃシリーズは上下左右の繋がった小さな部屋での出来事でしたが、今回は画面がスクロールしてどこまでも飛んでいくことができます(とげとげに当たりさえしなければ)。
実はふわふわふにゃに無限の広さを与えるのはひとつの夢だったんですよね。
この構想は、何年も前からやりたいやりたいと思っていたのですが、実現できずにいました。
こうすると、とげとげを「避ける」のではなくとげとげから「逃げる」というコンセプトが実現できます。
今回、これがついに実現できたわけです。

また、このスクロールするシステムは、マウス操作との相性も抜群でした。
以前のふわふわふにゃでもマウス操作は一応可能でしたが、マウスに振り回されるように動いて、思うようにとげとげを避けられなかったり、画面端での操作性がひどかったりして、なかったほうがましなレベルでした。
しかし、今回はスクロールのおかげで、マウスポインタは行く先にあり、追いついて振り回されるということは起こらなくなりました。
さらに、上下左右しかないキーボードの方向キーと違って、マウスであればかなり精密な入力も可能です。
もっとも、マウス操作にした理由はほかにあって、本当はキーボードを持たないスマートフォンに対応させたいという気持ちがあったからでした。
ただ、私はスマートフォンを持っていないので動作確認はできていません。

敵であるとげとげは、今回は「画面外」という概念がなくなったため、分裂で増えていきます。
分裂するときには直角に方向転換するので、ぐるぐる回って振り回していると唐突に横から飛んできたりします。
また、前作までと違い、追いかけるアルゴリズムに進路予測も入れているので、ふにゃの移動方向に応じて的確に追い詰めてきます。
ただ、これがあるとかなり難しくなるので、最初の1分は従来式のアルゴリズムで動いています。
ちなみに、従来式のアルゴリズムも精度が上がっているので、普通の状態でも割と正確に追ってきます。

ストーリーはその日にパッと考えて作りました。
ふわふわふにゃはもとより、ふにゃシリーズもずいぶんとほったらかしにしていたので、久々に戻ってきたような感じに作りました。
とげとげは久々の来客に喜んでいますが、ふにゃにとってはいつも通り狙われて迷惑なだけなのでした。

1317480695.png

<2011年11月 2011年09月>