Wataru, Согласен. Вопрос в соотношении количества игроков и размера пространства. При заполненности каждой ячейки дерево квадрантов займёт гораздо больше места, чем простой двумерный массив, а скорость перемещения элемента в дереве будет в любом случае ниже, чем в массиве, особенно когда придётся постоянно удалять опустевшие узлы и добавлять заполняющиеся.
Тут и дерева не надо. Достаточно разбиения пространства квадратной сеткой с размером ячейки равным дальности связи. При этом для каждого игрока достаточно будет проверить игроков в его квадрате и 8 соседних.
MaxxDamage, Ну вот, у вас маршрут по умолчанию через leased81.121.33 (eth0). Если хотите, чтобы пакеты шли через 82.33.118.99 (eth2), то он должен быть маршрутом по умолчанию. Или надо добавлять отдельные маршруты для адресов, на которые надо ходить через 82.33.118.99.
MaxxDamage, У вас маршрут не через ту сеть. Сответственно, пакеты уходят через один интерфейс, а возвращаются через другой. Вывод команды route покажите.
m4son, Одна пустая строка всё равно будет, поскольку fputcsv выводит символы переноса строки.
Ну и убедитесь, что завершающий тэг убран во всех скриптах цепочки, по которой вызывается этот скрипт.
szQocks, Скорее, многие-ко-многим.
С сокетами всё зависит от нагрузки. Пока одновременно идёт десяток-другой аукционов, скорее всего справится и один WS-сервер, который просто будет проверять активность аукциона, возможно, кэшируя себе при первом запросе те, которые ожидаются в ближайшее время или уже идут. Примерно так:
- пришёл запрос с id аукциона.
- если аукциона нет в кэше, то запрашиваем его из БД.
- если аукцион начнётся в течение 10 минут или уже идёт, заносим его в кэш.
- проверяем время аукциона.
- если аукцион неактивен, даём отказ.
- если аукцион активен, то обрабатываем запрос.
- периодически удаляем из кэша все закончившиеся аукционы.