お兄ちゃん、ねつきのサイトに毎日来てくれる?(´∀`)
…急にどうした。
いやね、考えてたの(´∪`)
個人サイトって、わざわざ来る理由がないと、来てもらえないでしょ?
まあ、SNSと違って通知もないしな。
そう!
だから「毎日来たくなる仕掛け」が欲しかったの(´∀`)
毎日1回だけ
で、何を作ったの?
スライドパズルにデイリーランキングをつけたの!(≧∇≦)
デイリー…毎日変わるやつ?
そうそう!(´∀`)
今日のパズルは、今日だけ。
明日になったら、新しい配置に変わるの♪
Wordleみたいな。
そうそう!
Wordleがバズった理由って、「1日1問だけ」っていう制限だったでしょ?(´∀`)
好きなだけ遊べるゲームは、好きな時にやめちゃう。
でも「今日の問題は今日だけ」だと…
また明日来ようと思う。
そう!(≧∇≦)
希少性が習慣を生むの♪
でも、ちょっと不安
…でもね、正直に言うと、不安もあるの(>_<)
何が?
誰も遊んでくれなかったらどうしようって(´∪`)
個人サイトだから、プレイヤーは多くない。
誰もいないランキングって…ちょっと寂しいなって。
確かに、閑散としたランキングは虚しいかもな。
でしょ?
だから考えたの。
「誰もいないランキングに、意味はあるのかな?」って(´∀`)
みんな同じスタートライン
ランキングの意味ねえ…まず、なぜランキングを作ろうと思ったの?
デイリーにしたことで、みんな同じパズルを解くことになるの♪
今日の配置は、誰がアクセスしても同じ。
だから記録を比較できる(´∀`)
条件が揃う、と。
そう!
毎回ランダムだと、「Aさんは簡単な配置、Bさんは難しい配置」ってなっちゃうでしょ?
それだとスコアを比べても意味がない。
でもデイリー配置なら、条件は平等なの(´∀`)
技術的にはどうやって「同じ配置」を実現してるの?
シード値っていう考え方を使ってるの(´∀`)
日付を数値に変換して、その数値を「乱数の種」にするの。
同じ種からは同じ乱数列が出てくるから、同じ日なら同じシャッフル結果になる♪
擬似乱数か。
そうそう!
mulberry32っていう軽量なアルゴリズムを使ってるの(´∀`)
数行で実装できて、外部ライブラリも不要。
でも乱数の品質はしっかりしてる♪
一人でも意味がある
話を戻すけど、誰もいないランキングに意味はあるのか?
ねつきなりに答えを出したの(´∀`)
ランキングの意味は、他人との競争だけじゃないの♪
どういうこと?
今日のベストを目指す楽しさがある!(≧∇≦)
毎日パズルの配置は変わるから、単純に比較はできないけど…
「今日はこの配置で何手でクリアできるかな?」って挑戦になるの♪
日替わりチャレンジか。
そう!
それに、続けてると上達を実感できるの(´∀`)
最初は60手かかってたのが、だんだん50手台、40手台になっていく…
その感覚って、他の誰かがいなくても味わえるでしょ?
なるほど。ランキングの本質は「他人との競争」じゃなくて…
「自分の成長の記録」かもしれない!(≧∇≦)
毎日同じ人が1位でも、その人には意味がある。
「今日も挑戦した」っていう足跡が残るから♪
手数 vs タイム
ランキングは何で順位が決まるの?
手数優先にしたの(´∀`)
まず手数が少ない方が上位
同じ手数なら、タイムが短い方が上位
タイム優先じゃなくて?
うん!
スライドパズルって「最短手数で解く」のが本質だと思うの(´∀`)
速くタイルを動かすことより、効率よく解くことの方が「上手」でしょ?
確かに、闇雲に動かしても解けないからな。
そうそう!
それに、タイム優先だと「連打が速い人が有利」になっちゃう(´∀`)
手数優先なら、じっくり考える人も勝てるの♪
名前を聞かなかった理由
ランキングに名前は出ないの?
うん、匿名にしたの(´∀`)
なぜ?
理由は3つあるの(´∀`)
理由1: 入力の手間
クリアした瞬間に「名前入れてね!」って言われたら…
ちょっとテンション下がらない?(´∀`)
ゲームセンターのハイスコア入力みたいで煩わしいの。
理由2: プライバシー
名前を保存すると、個人情報になっちゃうでしょ?(´∀`)
サイトのポリシーとして、ユーザーが入力した情報を保存したくないの。
理由3: 不適切な名前問題
これが一番大きいんだけど…(>_<)
名前を自由入力にすると、変な名前を入れる人が絶対いるの。
モデレーション問題か。
そう!
大手のサービスなら監視できるけど、個人サイトでは無理(´∀`)
だから最初から「名前なし」にしたの♪
でも自分がランクインしたかはわかる?
わかるよ!
IPアドレスのハッシュで識別してるから、自分のエントリーだけハイライトされるの(´∀`)
他の人には「謎の誰か」だけど、自分には「これ私!」ってわかる♪
ベストスコア制
何回でも挑戦できるの?
うん!何回でも遊べるよ(´∀`)
でもランキングに載るのはベストスコアだけ。
1人1エントリーってこと?
そうそう!
10回遊んでも、100回遊んでも、ランキングには一番良い記録だけが残るの(´∀`)
自己ベストを更新したら、自動で上書きされる仕組み♪
なぜそうしたの?
2つ理由があるの(´∀`)
理由1: 上達の楽しさ
「さっきより良い記録出すぞ!」って何度も挑戦できるでしょ?(≧∇≦)
1回きりだと、途中で電話かかってきたりしたら終わり。
それって運ゲーになっちゃう(>_<)
理由2: 公平性
たくさん遊んだ人も、1回だけの人も…(´∀`)
ランキングに載るのは「その人の最高の1回」だけ。
回数じゃなくて、実力で競えるの♪
鳥が先か、卵が先か
結局、誰もいないランキングに意味はあるのか?
ある!(≧∇≦)
さっき言ったように、競争相手は他人だけじゃないから。
でも、やっぱり誰かと競いたいって気持ちもあるんじゃない?
そうだね(´∀`)
だから、こう考えることにしたの。
どう?
鳥が先か、卵が先か(´∀`)
ランキングがあるから人が来る。
人が来るからランキングに意味が出る。
どっちが先かわからないけど…
まずは作ってみないと始まらない。
そう!(≧∇≦)
「誰もいないかもしれない」って怖がってたら、何も作れないでしょ?
まずは器を用意する。
器があれば、いつか誰かが使ってくれるかもしれない♪
希望的観測だな。
えへへ、そうかも(´∀`)
でも個人サイトってそういうものだと思うの。
誰かに届くかもしれないって信じて、コツコツ続けるしかないの♪
「また来よう」を作りたかった
お兄ちゃん、最初の質問に戻るね(´∀`)
ねつきのサイトに毎日来てくれる?
…日記を更新してくれるなら。
それ!(≧∇≦)
日記は毎日書けないけど…
スライドパズルは毎日配置が変わるの♪
日記の代わりにパズルで呼び込む作戦か。
そうそう!(´∀`)
今日のパズル → 今日だけ
今日のランキング → 今日だけ
明日は新しい体験 → また来てね
…っていう流れを作りたかったの♪
まとめ
今日の話をまとめるね(´∀`)
デイリーランキングの狙い
- 「また来る理由」を作る(希少性 → 習慣)
- 同じ条件で競える(公平なランキング)
- 一人でも上達を実感できる(自己成長)
ゲームデザインの工夫
- 手数優先のソート(考える人が勝てる)
- 匿名制(モデレーション不要)
- ベストスコア制(実力で競える)
技術的なこだわり
- シード値で決定的シャッフル(同じ日 = 同じ配置)
- mulberry32で軽量な擬似乱数生成
結構考えて作ってるんだな。
えへへ〜(〃´∪`〃)
ゲームって、遊ぶ人の気持ちを想像するのが大事だから…
「どうしたら楽しいかな」って、いっぱい考えたの♪
で、今日のランキングは?
まだ誰もいないよ!(´∀`)
お兄ちゃんが1位になるチャンス♪
…結局それが言いたかったのか。
ばれた?(≧∇≦)
でもホントに待ってるからね!
明日になったら配置変わっちゃうよ〜?
わかったわかった。
やったー!(〃´∪`〃)
お兄ちゃんの記録、楽しみにしてるね♪
…ねつきより速かったら、ちょっと悔しいけど(´∀`)