
300 YEN server が落ちる件でいろいろと対策をしたので「実験しておいて」と言われたので実験しようと思ったのですが、今日は時間がなさそうなので協力してくれる人募集的なカンジで告知という形で協力しておきます。
- 「ED_Alloc: no free edicts」というエラーでサーバーが落ちる
- マップHydroで落ちるという報告が多い
- beetlemod の挙動があやしい
ということで Hydro と beetlemod をはずして稼働中とのこと。
遊んでいてサーバーが落ちたりした時はブログとかに報告してもらえるとありがたいとのことです。
それにしても、簡単に引き受けたけどこの条件↓はアレすぎる。
13:40:41 (mou) yossy 300yen beetlemod外して32人にしといたから、夜満員にしてテストしてくださいw
13:40:58 (Yossy) はいよ
普通にプレーしてたら満員になりますけど。


コメント (4)
ED_Alloc: no free edicts ってのは、要するにリソースが足りませんってことです。
専門的な話をすると、TF2のクライアント自体が、基本24人を最大として使用リソースの見積もりがされていると思うので、24人超のプレイヤーを無理やり詰め込んだ場合、発生するパーティクルやエンティティの数が、許容量をオーバーする可能性が出てきます。ゲーム開発の場合、動的なメモリ確保を使わず、サイズ決め打ちで配列を確保することがほとんどなので、制限コードをハックした32人サーバーは不安定になる可能性が非常に高いです。
極端な話、たとえば、クライアントのコード中で、
CPlayerData g_allPlayers[24];
とかやってたら、32人接続した場合、明らかにバッファーオーバーランになります。
BeetlesMod の場合、作者は24人サーバーでテストしてるみたいなので、32人サーバーの場合、同様の理由で不安定になる可能性が高いです。
ただ、32人サーバーの申し子 SourceOp や、汎用性の高い SourceMod なら、多少安定性が改善する可能性があります。Mod の変更を検討してみるのも手じゃないでしょうか。
投稿者: hanatyan | 2008年1月 8日 02:37
日時: 2008年1月 8日 02:37
すんません、「クライアント」→「サーバー」と置き換えて読んでください。
投稿者: hanatyan | 2008年1月 8日 02:43
日時: 2008年1月 8日 02:43
なるほど。
32 は設計外なので不安定ということなんですね。
MOD で拡張したら人数制限も変わるというのはおもしろいなあ。
SourceOp というのは知らなかったので後で検索してみようと思います。
ちなみに、昨日 IRC で報告してもらったところ
4時間くらいプレーしている人がいるので、安定したかも!?とのことでした。
ナイステストプレーヤー!
投稿者: Yossy | 2008年1月 8日 14:46
日時: 2008年1月 8日 14:46
参考になりました thx!
とりあえず、modを外してみたところ、
上記のエラーは出なくなってます。
投稿者: mou | 2008年1月 8日 20:40
日時: 2008年1月 8日 20:40