ユーザーとプレイヤー

人狼式ではユーザーとプレイヤーはそれぞれ関連した別のデータとして扱われます。 これは多くのオンラインゲームと同様に人狼式においても一人のユーザーが複数のプレイヤーとして振る舞う可能性があるためですが、それらのゲームと異なり人狼式ではログの記録が重要になります。
人狼式におけるプレイヤーには発言時点での情報を保持するために次のような特殊なルールがあります。

  • プレイヤーが死亡すると、死亡したプレイヤーが追加されます。
  • プレイヤーの役職が変化すると、新しい役職のプレイヤーが追加されます。
  • 新しい状態のプレイヤーが追加されるとき、元のプレイヤー情報は上書きされません。例えば死亡したプレイヤーが追加されるとき、生前のプレイヤー情報はそのままデータベース上に保持されます。

プレイヤーとユーザーの関係は多対一となります。プレイヤーはユーザーIDへの参照を持ちますが、逆方向の参照はありません。

プレイヤーIDとプレイヤー番号

このような実装では、同一人物であってもプレイヤーIDが時間経過と共に変化してゆきます。これに対して同じ人物を特定するためのローカルな識別手段としてプレイヤー番号が設けられています。

プレイヤー番号は従来のユーザー番号と基本的な互換性を持ちますが、キック処理による番号の整理は行われません。

憑依現象とプレイヤーの識別について

憑狼などの役職はプレイヤーを乗っ取ります。このとき、プレイヤー情報は次のように変化します。

  1. 憑狼するプレイヤーの死亡したプレイヤーが追加される
  2. 憑依されたプレイヤーの死亡したプレイヤーが追加される
  3. 憑依したプレイヤーの新しい役職のプレイヤーが追加される

このとき、同じプレイヤー番号のユーザーが二人発生します。これの識別方法は次のように行います。

  • 投票機能やプレイヤー一覧画面では、プレイヤー番号でグループ分けを行い最新のプレイヤー情報を集めることで、現在のプレイヤーを特定できます。これによって、プレイヤー一覧画面には元憑狼の死体と、生存中の憑狼だけが表示され、憑依された側のプレイヤーは表示されなくなります。
  • 憑依されたユーザーは、自身のユーザーIDを持つ最新のプレイヤー情報を取得することで現在操作中のプレイヤーを特定できます。
  • 憑依したユーザーも同様に、自身のユーザーIDを持つ最新のプレイヤー情報を取得することで操作中のプレイヤーを特定できます。

参考

ChatRoom クラス
概念と用語の一覧