05_ステートフルで大規模アクセスのあるsoft-realtimeなゲームサーバーをeasyにつくる
ステートフルで大規模アクセスのあるsoft-realtimeなゲームサーバーをeasyにつくる
INTRO
開発思想/理念
- 後からメンバがJoinしやすいように、できる限りレールは引いた(libraryの列挙と説明)
- GenServerでの想定のコツは、多人数のケースを想定せず、2人のケースで想定すれば十分。
設計
Channel
- matching Channel
- PvP Channel
- 理由;Matching条件が複数あるので、複数あるので、分離したいので。
HotCode
HotCodeDeployは行ってない。大変なので。下記で行ってる
- Deploy処理
- 各ServerへKill予定の通知
- Phoenixへの接続がなくなるまで待つ
- なくなったら、Deploy
Data
- 作業内容をすべて履歴として残す。
- あとで、joinしたユーザはこの内容を元に描画する(たぶん、イベントソーシング思考ってこと
- または、この情報をAI化する
Knowledge
PhoenixのLoggerが1プロセスしかない。なので、大量Loggingがあると
- msgが詰まる
- Log出力の実行プログラムがLog実行と同期的になってしまう。
Compile_time_purge
の設定は大きくしておくと良い。