OpenFeint または Scoreloop のいずれかを使用してリーダーボードを作成します (Openfeint から始めましたが、すぐに Scoreloop に移行しました。詳細が必要な場合は、理由を説明させていただきます)。
それができたら、それがより悪いスコアでスコアを上書きできるリーダーボードであることを確認してください。
ELO 評価計算機を実装します。参照: http://en.wikipedia.org/wiki/Elo_rating_system
各プレイヤーは特定のスコアから始めます (評価がチェスの評価範囲に似るように、1500 を使用します)。
試合終了時に、各ユーザーの新しい Elo 評価を再計算し、リーダーボードに投稿します。最終的に、スキルに応じて各ユーザーをランク付けするリーダーボードが作成されます。つまり、勝てば勝つほどスコアが高くなります。
編集: ユーザーのリクエストごとに - 彼女は私たちが Scoreloop に移行したいくつかの理由です:
- OF のドキュメントは、iOS から移植されたように見えますが、非常にひどいものです。たとえば、ドキュメントには、アプリケーション クラスで OF を初期化する例が示されています。これにより、ユーザーが他のアプリケーションの使用に追われているときに、「Join / Don't like fun」全画面ダイアログが突然表示されます。これは、メモリの可用性が変化すると、Android がバックグラウンドでアプリケーションを強制終了して再作成するためです。
- ScoreLoop は、ユーザーが登録/ログインしなくても、ユーザーの「userId」を自動的に作成します。これにより、ユーザーがログインする手間をかけずに、ユーザーのハイスコアを投稿し、ハイスコアを表示することができました。
- Scoreloop には「オフライン」モードがあり、より堅牢で、効率的で、正確で使いやすいものになっています。
- 不安定なネットワーク状況では、OF ログイン プロセスに非常に長い時間がかかり、ゲームのパフォーマンスに影響を与えました。(上記の #3 を参照)。
- OF では、スコア ランクを取得できません。ユーザーのランクを取得したい場合は、完全なリーダーボードを取得し、ユーザーのエントリが見つかるまで循環する必要があります。この「解決策」により、このオプションはほとんど利用できなくなります。
- Scoreloop は格子状のサポートを提供してくれました。私はいくつかのチケットをオープンしましたが、それらはすべて迅速かつ専門的に回答されました. これらの人はロックします。
このコードはしばらく前に書いたので、忘れている他の理由があったかもしれません。