タグ

ブックマーク / hackerslab.aktsk.jp (2)

  • Redis、計算量の恐怖 | Akatsuki Hackers Lab アカツキハッカーズラボ

    はじめまして。アカツキのサーバエンジニアのこうのです。サウザンドメモリーズで主にサーバ側のプログラム・インフラを担当しています。 今回はサウザンドメモリーズで発生した、Redisにまつわるトラブルを紹介したいと思います。 TL;DR RedisのSorted SetのZRANGE系のコマンドは計算量がO(log(N)+M)(Mは取得結果の数)になるので、 適切にLIMITをつけるなどして取得結果数を制限しないと負荷が高くなってしまいますよ、というお話。 背景 サウザンドメモリーズではバトル出撃時に一緒に出撃するフレンドやランダムに選ばれた他のプレイヤーを選択することができます。 この「ランダムに選ばれた他のプレイヤー」の選択ロジックに弊社ではRedisのSorted Setを利用した実装を行っています。 ランダムといってもすべてのプレイヤーからランダムで選んでしまってはアクティブでないプレ

    Redis、計算量の恐怖 | Akatsuki Hackers Lab アカツキハッカーズラボ
  • そのガチャの確率、本当に合ってます?〜RSpecで統計的に確認する話〜 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

    背景 ソーシャルゲームでよく見かける「ガチャ」ですが、この記事ではその重み付き確率の保証方法を紹介します。 ガチャは売上・ユーザー体験・ゲームバランスに直結するので、意図通りの動作をするか慎重に確認する必要があります。 またアカツキではTDD (Test Driven Development)を採用しているので、 実装したプログラムが想定している確率に従っているかを確認するためのスペックが必要となります。 理論 使用する数理モデルは「離散確率密度変数」です。 例えばガチャで入手できるキャラクターのIDが であり、 その入手確率が (実装の便宜上自然数としますが、非負の実数としても一般性を失いません)によって重み付けされているとします。 このとき、ID のキャラクタが入手できる確率は、 となります。 さて、10000回の試行(ガチャを引くこと)をしたとき、入手できる確率が50%のキャラクタを

    そのガチャの確率、本当に合ってます?〜RSpecで統計的に確認する話〜 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
  • 1