「アイディア」に関する日記(4)

<前 次>

アンパンマンDB

アンパンマンDBをよく見ている人は、アンパンマンDBには情報提供のコメントがしばしば来るということは知っていると思います。
そして、その反映には非常に時間がかかっていることもご存じだと思います。
そんなにみんなで作りたいなら、作れるようにしたらいいんじゃないか、と考えることがあります。

Wikiは一人で記事を全面改訂できる性質上、悪意ある少人数が暴れるだけで簡単に崩壊してしまいます。
他の人がやっていたこともありましたが、実際に崩壊しました。
間違いを書く労力が非常に少ない一方、間違いを見つけ出す手間や、それを正す手間は、非常に大きくかかります。
Wikipediaは強力な管理体制がありそこそこうまくやっているようですが、サイト自体がアンパンマン向けではないため、あまり充実させることが望まれません。

私がWikiを作るというのもなしです。
私の作ったコミュニティコンテンツは総て例外なく失敗して潰れました。
だいいち、アンパンマンDBだけでも管理が追い付いていないのに、追加でより大変なものを管理するなんてだめです。

あればいいなと私が思うのは、極力メンテフリーで、みんなの「総意」が自然に表れるような、そんなコンテンツなのです。
方向性は違いますが、Anpanatorなんかは、そういった「総意」ベースで動いていて、そこそこうまくいっているようです。
例えば、キャラクターの属性とかに対して、当てはまるか当てはまらないかをみんなで評価していって、その平均値でキャラクターの性質を表していけば、みんなで作るコンテンツっぽくなるのではないかなと考えています。

“板と針”思想

思えば、ふにゃシリーズはいつも、「平らな床」や「平らな壁」に向けて、キャラクターの範囲を示す「棒」を伸ばして、その交差を持って当たり判定としていた。
いわば、“板”に“針”を刺さるかどうかで、当たっているかどうかを判断していたのだ。
ふにゃは、体の中心線から四方に伸びた針で当たり判定を行った。
落ちるとげとげは上方向の針をオミットしており、横に動くとげとげは崖っぷち判定に変則的な位置に針を持っていた。
ギヤバネは四方に加えて崖っぷち判定用の針を持つ。
ウナギカズラは状態別に異なる針を持ち、本体上部には乗れる板も持っていた。
この“板と針”思想が、知らず知らずのうちに、ずっとふにゃシリーズを支えていたのだ。
それがまた、すり抜けバグという厄介な問題も生んだが、funyakにおいて、非対称に針を伸ばすという方法で解決を見た。
ふにゃらしい当たり判定を、統一的に、広範に適用するならば、“板と針”思想を意識していくことが必要になるだろう。

CharacterHarasser

なんだかろくでもないアプリを思い付いた。
文章を入力すると、ひらがなカタカナ大文字小文字全角半角をごちゃ混ぜにして出力するやつ。

ふわふわふにゃ on web browser

ついでに載せる機能を作り込むためにリリース時期が延びるのも何なので、改善だけでいったんリリースしました。
次に載せたい機能というのは、出合い頭の正面衝突を避けるために、とげとげの初期位置をふにゃの進行方向と逆位置にするというやつなんですね。
それ以後にやりたいのとしては、スコアを何らかの形で残すための機能ですね。スコアを保存したりランキングするのではなく、TwitterとかFacebookとかに共有する機能でもいいんじゃないかと思い始めています。

mifumitter

Twitterの障害時や反応が遅いときなどは、以前のAPIの結果を使って最低限何かを表示するように修正。
あと、GitHubとBitbucketの課題を一度に一覧する何かを作ろうとしてみたり。
まあ、どっちも私自身の個人プロジェクトですね。

ゲーム記といっしょにチョキッとスニッパーズとfunyakとアンパンマンDB

ゲーム記

アフィうぜーボタン実装。
実際には「商品リンク消すボタン」と表記するようにしました。
このボタンを押すと、商品リンクが消えて、その代わりに、下のほうの邪魔にならない場所に、「商品リンク復活ボタン」が出てきます。
ボタン一つで簡単に切り替えられるので、特に確認メッセージなどは出ず、すぐに反映されます。
んで、とりあえず、最近アクセスの多いページから商品リンクを付けてみました。
商品リンクとアフィうぜーボタンは、明日公開予定です。

いっしょにチョキッとスニッパーズ

ゲーム自体は特に進んでいないのですが、ゲーム記にユニークなカタチのことを追記したので、上記公開と同じタイミングで公開します。
というか、お役立ち情報に当たるこっちのほうをメインに据えます。

funyak

昨日のアレをfunyakにも参戦させるとしたらどうなるだろう、と考えて、今のfunyakはあまりにもそれぞれを個別実装しすぎていることを思い出したのでした。
当たり判定も個別対個別に行っているので、マップオブジェクトの種類がN種類あると、N^2オーダーで当たり判定のコードが増えてしまうことになります。
ふにゃさんのキャラクターはそれぞれがすごく独特な役割を果たしていたから、個別実装しかなかったんだけど、funyakでは、全く役割が被らないものしか作らないなんて制約は付けたくないんですよね。
部分的に役割が被る部分があっても、差別化可能であればいてもいい、と。
そうすればゲームとしての幅が広がる、と。
そのためには、よくあるパターンの組み合わせから成り立つキャラクターが必要ということになるのです。
せめて当たり判定だけでも、よくあるパターンの組み合わせに落とし込めれば…。

アンパンマンDB

また変なコメントが増えてきたので、ちょっと制限を増やしましたよっと。
それだけなのも何なので、以前からちょくちょく言っていた差分検出について。
管理用に入力データの更新差分が必要な場合にはこれまでに実装した差分検出で充分なのですが、ユーザーに見せるための差分情報となると、必要なものが異なってきます。
ユーザーからすると、見えている情報がどう変わったのかが気になるわけで、見えない内部データよりも、自動生成されて表示されるデータのほうが重要なわけです。
今度はそこんとこを意識した差分検出を作っていこうかなっと。

コードネーム:テツ

  • 爆弾の事故により右半身を失っている。
  • 失った半身は機械化している。
  • 爆弾に深い恨みを持つ。
  • 好きな食べ物はいちご大福。

Bomber丸Worldに登場させることを意識したキャラクター案。
爆弾使いとはとことんそりが合わない厄介者というイメージで。
考えただけで、本当に登場させるかは不明です。扱いにくいのは最初から確定だし。

ドラゴンクエスト10とTGWSDQXとゲーム記とアンパンマンDB

ドラゴンクエスト10


メロディアトップス&スーツの試着。
ショップのポイントが200ポイント余っているから、なにかと交換できないかなって思っているんですよね。
ちょっとほしかったシンプルTシャツは300ポイント…ちょっと足りない。

TGWSDQX

タイトルバーに処理の進捗を表示するように改良。
UWPでも、Windows Formsほどわかりやすくはないけど、簡単にタイトルを変更することができるんですね。
タイトルにはちょっとした制約がありますが、それはまあ別にいいかな。

ゲーム記

Amazonアフィリエイトリンクを設置できるようにしました。
データはこれから入れていくところです。
アンパンマンDBみたいに効率よく管理できるような仕組みを作ろうかとも思ったのですが、一度置いたらもう管理することもないだろうし、Amazonのサイト内から取ってきたHTMLをそのまま貼り付けることにしました。

で、ちょっと考えていることが。
こういうアフィリエイトリンクって、人によっては結構嫌悪感があると思うんですよね。
ましてやうちは売り上げを出す目的でサイト運営しているわけでもないので、非表示にされても別に構わない。
アンパンマンDBでも、商品情報を非表示にすることができたりするんです。
これを、ゲーム記にも取り入れられないかな、と。
「アフィうぜーボタン」を一発押したら消えますみたいな感じで。

アンパンマンDB

いよいよ差分検出が完璧に。
こうなったら更新情報配信ももう一工夫してみたいところですね。

アンパンマンDB

情報提供のコメントがある程度さばけてきたら、質問箱を再開してもいいかなーとか考えています。
昔のままのやり方だともちろん無理ですが、情報提供をあしらうみたいに気楽に答えるとか、手に負えない質問はコメントで他人に丸投げするとか、負担の少ないやり方はあると思うのです。

アンパンマンDB

映像・音楽以外も充実させようかと考え中。
アンパンマンの原点と言える絵本情報や、主力商品となるぬいぐるみ・おもちゃ等の情報です。
あと、デフォルトの並び順も見直したいところですね。50音順が必ずしも正しいかどうか…。

アンパンマンDB

情報提供の扱いについて考えています。
すごくたまっているので、使うか捨てるかしなきゃいけないんだけど、真偽の調査や、掲載にふさわしいかの検討に、一つ一つ時間がかかるんですよね。
本当に完全に問題外なのは初期チェックの時点で捨て去るのですが、それ以外にも見当外れなのはたくさんあって、それが邪魔になっているのです。
また、コメントで情報提供をする都合上、提供する側にとっても、情報提供は煩わしい作業となります。
そこで、コメント欄とは別に、情報提供のための記入しやすく確認しやすいフォームを設置することを考えています。

アンパンマンDB

カテゴリ再編検討中。
ごった煮状態になっているキャラクターの性質や特徴などを、カテゴリーの種類ごとに分けて独立項目のように表示するというのを考えています。

ドラクエ10とアンパンマンDB

ドラクエ10

昨日からの流れで、また今更ながら、モンスターシール始めました。シールを集めても特に何もないそうなので、あまり必死に追いかけるつもりはありませんが、まあ、時間が合えば会いに行こうかなと。

アンパンマンDB

あんまりいろいろシステムを追加すると、作るのも使うのも大変になってしまうので、カテゴリの定義については、単に文字列として登録できるようにしようと思います。
そうすると、同じような文面がたくさん必要になるわけですが、「同じような文面をたくさん作ること」にこそ新システムを作ればいいのではないかと考えました。
これなら、使わないなら使わないでいいし、カテゴリ以外への応用も可能なのです。

日記

日記にもAjaxによるカテゴリ提案実装。

んで、カテゴリが扱いやすくなったので、カテゴリを細分化して大幅に増やしてみました。
ゲームはシリーズごとに分けるのではなく、1作品1カテゴリで、自作ソフトも、開発中止を一つにまとめたりはせず、各々のソフトにカテゴリを設定。
細分化したのにはもう一つ野望があって、ゲーム記からプレイ日記にリンクしたいなって思ったんですね。例えば、「ドラクエ」でまとまっていたら、ドラクエ3の日記を見たいのにドラクエ10の話ばっかりしてる、なんてことになりかねないわけです。細分化すれば、そんな悩みともさらばです。

ただ、全部の日記に一気に細分化したカテゴリを付けるなんて無茶なわけです。
ということで、まだカテゴリを付け直していない日記を見つけるために、更新日の古い日記を探す機能を付けました。ありし日の日記へどうぞ。なお、普通の人が見て楽しくなる要素はないと思うので、上のナビメニューに入れていません。
それにしても、あの日の私は…懐かしくも痛々しい…。

アンパンマンDB

もうひとつのカテゴリ案。
一致度は設けず、一致するか否かが明確になるよう定義と領域を設定する。
データ修正だけなので、プログラムの修正が必要なくなる。
とにかく、プログラムが複雑になり過ぎないように、データが膨大になり過ぎないように気を付ける必要がある。

アンパンマンDB

アンパンマンDBのカテゴリに一致度という概念を取り入れようかと以前から考えていたが、一致度未記入をどうするか、データ量が膨れ上がらないようにするにはどうするかが課題だった。
カテゴリの一致度とは別に、可変長の記入進捗データを用意し、完全に記入完了したものは短い表現のデータに置き換える。一致度データなし、かつ、記入完了扱いされているカテゴリは、不一致とみなす。これでいいのではないか。
あと、管理メモに置いてある、ギミック付きのページを管理メモから独立させたい。なるべく楽に量産できるような仕組みで。

プログラミングコーナー

シンタックスハイライトについて検討中。
今まではSHJSを使っていたけど、古くて更新も途絶えたライブラリなので、代替になるものを。

サーバーサイドで色付けしてしまうGeSHiがひとつ。
クライアント側に負担をかけないというのが長所。
ただ、直接style指定していて、事実上色のパターンを選べないというのが欠点。

もう一つが、JavaScriptでハイライトするhighlight.js
割と評判がよくて、今でも更新が続いているライブラリです。
言語は自動判定が可能(というよりそれがメイン)で、カスタムパッケージとして、必要な言語だけをインストールすることも可能。
スタイルも各種用意されています。

うん、特別な事情がない限りは今後はhighlight.jsがいいかな。

プログラミングコーナー

プログラミングコーナーこそWordPressとかのCMSで実装したらいいんじゃないか?と考えています。
理由は主に3つ。

  • ページごとの個別のロジックや凝った構造があるわけでもないからCMS任せでも大丈夫
  • カテゴリなどの、似た記事を探す機能が豊富
  • コードのシンタックスハイライトをJavaScriptに頼らず自動化できる!

過去のコンテンツを移行するかどうかはさておいて、検討の価値はあるんじゃないかなと思います。

CocosSharpとMarkdownとWordPressとアクセス統計とMifuminator

CocosSharpとか使えるかなーとか思ったり。
サンプルがビルドできないけど。
funyakのフロントエンド開発には何を使うかいまだに決まってないんですよね。
一応WPFでそれっぽいものは作っているけれど。

各コンテンツで使っているマークアップ言語についても検討中。
アンパンマンDBははてな記法に似せて作ったTGWS_Wiki構文を使っているけど、手早く自作したものだから、機能不足なんですよね。
Markdownが最近ははやっているらしいけど、あまり私の理想には合わないような…。
段落を自動で入れてくれて、テーブルを簡単に作れて、柔軟なリンク指定ができて、普通の文章でマークアップが誤爆しにくく、カスタマイズ性が高い、というのが欲しいんですよね。
やっぱりTGWS_Wikiを改良するかな…。

WordPressのアカウントを管理者アカウントと投稿用アカウントに分割。
管理者アカウントは表に見せたくないものでね…。
いざWordPressを設置してみると、他のサイトで間に合うことが多くてなかなか最初の記事作成に着手できないですね…。

恐らく私以外誰も見ていないであろうアクセス統計のページを微修正。
ランク外に出たものは統計の対象外になってしまうために、再びランクインしたときに、ランクアップしてきたのか、全く新規の項目なのか区別がつきませんでした。
ランク外に出て見えなくなってしまった項目も、内部的には記録するようにして、正確なランク変動がわかるようになりました。

Anpanatorの実装のMifuminator、Packagistに公開しました。
mifumi323/mifuminator - Packagist
使い方とか全然書いてないし、requireしただけでは何も動かないので、まだ一般には使い物にはならないとか思いますが、Packagistの練習も兼ねて。

アンパンマンDBと六甲山

アンパンマンDBのカテゴリに関する構想。
カテゴリに、合致度の概念を導入し、良く合致する、少し合致する、全く合致しないなどの、段階を設ける。
「全く合致しない」も記録することで、「合致する」でないのが未考慮ゆえか本当に合致しないかを見分けられる。

六甲山。
Twitterに書いたのをまとめなおすのも面倒だったので、モーメントで済ませておきます。
⚡️ 「六甲山」

<前 次>