ポイント計算

具体的な計算方法・設計思想

Last update: 2019年 8月25日 (version: 20190825)

※ version upに伴う変更の、より詳細な解説はこちらのページを参照してください

※ 本手法および各種パラメータは暫定的なものです。ご要望やゲームバランスを鑑みた上で再度修正する可能性があります。

・ポイントの計算方法

世界ランクの計算に用いられるポイントは以下の過程により計算されます。

A. 計算対象となるツイート

まずポイントの計算にあたり対象となるのは、以下の二つの条件を満たしたツイートです。

  • 過去90日前までの投稿の内、03:34:00.000 ~ 03:34:01.000 の間に投稿されたツイート
  • 以下に記載する公式クライアントを用いて投稿されたツイート

最初の条件は、換言すれば、記録が1.000秒 (1000ms) 以内の結果のみを反映させるということです。フライングしたり1秒より遅い結果は対象外となります。

二つ目の条件は、公式クライアントで投稿されたツイートのみを反映させるということです。ここで公式クライアントとは以下のリストに含まれるクライアントを指します。

  • Twitter for iPhone
  • Twitter for Android
  • Twitter Web Client
  • TweetDeck
  • Twitter for iPad
  • Twitter Web App
  • Twitter Lite

一般に、スマートフォンやPCで公式のアプリケーションで投稿すればほぼ間違いなくこれらのクライアントを用いて投稿されます。逆にサードパーティー製のクライアントは現時点ではポイントの計算の対象外となります。ご注意ください(※2・3)。

※2 利用者が多く自動化ツールの使用の心配が少ない信頼度の高いサードパーティ製のクライアントに関しては、ご要望と調査に応じて追加する予定です。詳細に関しては設計思想の項目をご覧ください。

※3 二つ目の条件を加味しない記録は後述の参考記録として同様にポイントが計算されます。


B. 記録→ポイントへの変換

次に、各記録からポイントへ変換します。n日前 (0≦n≦90)の記録をx秒 (ジャストタイム3:34:00.000との誤差)としたとき、ポイントf(n, x)は以下の式で表されます。

ただし、式中のα(n)およびβ(x)は以下の式で表されます。

このポイントへの変換式は以下の4点を意味します。

  • ジャストタイムで満点 10,000 pt
  • 0.1 秒 (100 ms) 遅れる毎にポイントが半分になる
  • 過去30日の記録(直近1ヶ月分)は減衰無し(α(n)=1.0)
  • それ以降の過去90日の記録(1ヶ月前〜3ヶ月前)は線形に減衰 (1日経つ毎に約3.2%減少)


C. 上位記録の平均処理

さてB.において各有効記録のポイントを求めたので、そこから累計ポイントを計算します。このとき有効記録の数は最大で91個になりますが、そのうちポイントの高い上位10個の平均を取り、それをそのPlayerの累計ポイントとします。ただし有効記録の数が10に満たない場合は、その和を同様に10で割って累計ポイントとします (規定数10に足りない分を0.0 ptとしてカウントし平均をとる)。

この累計ポイントに基づき、上から順番に順位をつけます。


・設計思想

ここからはポイント計算方法の背後にある設計の意図に関して説明します。


A-1. フライングに対する扱い

本計算方法では、フライングした結果は、ポイント計算の対象から外れます。すなわち陸上競技のように「失格」扱いとなります。当初はペナルティーを加えて計算対象に加えることも考えたのですが、妥当なパラメータの設定が困難なこともあり、なるべく公平さを担保するためにもこのような形にしました。


A-2. Botによる記録の判別・分離

お気づきの方も多いかもしれませんが、最近"334"において自動化されたクライアント(通称bot)やマクロツールを使用したと思われる投稿が散見されます。334_Rankerにおいては、運営者による恣意性を排して公正さを保つため、Twitter社の定める規約に抵触しない範囲での自動化ツールの使用は禁止しない方針であります(悪質なケースを除き計測からは除外しない)。一方でランキングを運営する上で、通常の手段による参加者と同じ尺度で計算した場合、どのような尺度でも自動化ツールを用いたPlayerが上位を独占することは容易に予想されます。これは他のオンラインゲームでも頻繁に問題視されるようにゲーム性そのものを損ないかねません。

本計算方法では公式クライアントを使用した投稿にポイントの計算対象を限定することでこの問題を回避します。上記に挙げられた公式クライアントは自動化ツールが使われる可能性が低く(※4)、したがって公式クライアントの使用の可否を判定することは、手動による投稿を判別するのに適しています。また統計によれば、過去全ての誤差一秒以内(±0.000~+1.000)の記録のうち約82.0%の記録が上記の公式クライアントによる投稿であり、仮に公式クライアントのみに限定しても十分な人数のPlayerがポイント計算とランキングに反映されることが期待されます。

なお今回公式クライアントに限定しましたが、サードパーティ製のクライアントに関しても、ご要望と調査結果に応じて、順次計算対象のクライアントに追加する予定です。現在こちらで考えている条件は以下の2点です。

  • API key流出の可能性が低い、また仮に流出したとしても不正利用を防止する手段が講じられているクライアント
  • 使用頻度がそれなりに高い (目安として過去1000回以上用いられている)クライアント

また先述の通り、クライアントによる判別を行わないポイントは参考ポイントとして同様に計算され提供されます。これはいわばレギュレーションの存在しない無差別級でのポイントであり、純粋に結果の是非によって決定される値になります。Playerの強さを図る尺度としてお使いください。

※4 上記の公式クライアントは、開発者が実際に調査しましたが、自動化ツールの使用を制限する何らかの機構が存在しているようです。


B−1. 相対評価の排除・絶対評価の導入

以前の計算方法ではその日の順位によって変わる相対的なポイントが加算されていましたが、今回の計算方法では相対的な要素を完全に排し、投稿の秒数によって決まる絶対的な要素のみでポイントが計算されます。またポイントの変換式β(x)において指数関数を導入し、よりシビアに評価を与えます。

絶対評価のみに絞った理由は、参加人数によって、同じ成績でも得点が変化することを防止するためです。一般に平日より休日の方が参加人数が多く、相対評価を導入した場合、平日のポイントが高くなる傾向にあります。"334"では陸上競技のように結果がそのまま実力の指標になるので、できるだけ実力をそのままポイントに反映させたいという思想が背後にあります。


B−2. 日付による減衰

ポイント換算式におけるα(n)は、プロゴルフのポイント計算法OWGRで採用されている線形な減衰を参考にして作られています。OWGRでは直近104週の記録が計算に加味されますが獲得ポイントが13週以降1週あたり1.087% (1/101)減衰されます。このような減衰は、記録が計算対象から外れて急激にポイントが変化し、ランキングが急激に変動することを防ぐために導入されます。


C. 好記録を重要視

"334"は一種のチキンレースと言えます。すなわちフライングの恐怖を克服していかにタイムを攻めるかという点に醍醐味の一つがあるでしょう。ポイント変換式にβ(x)において指数関数を導入したのも、よりシビアな結果に高評価を与えるためです。

この点を踏まえ本計算手法ではさらに、シビアな結果を叩き出した好記録を重要視すべく、高ポイントな有効記録のみを選択的に累計ポイントに反映させます。この操作により、シビアな結果を狙うモチベーションをさらに高める事が期待されます。