Про двигло.
У Реко есть фундаментальный архитектурный недостаток, который заключается в следующем. Единственный элемент двигла в динамике - это лог. Лог содержит в себе информацию о всех событиях, произошедших на игре. Выдача заданий, получение подсказок, ввод кодов - каждый чих игрока пишется в лог. Текущее состояние игры вычисляется путем обсчета логов в каждый момент обращения к движку.
Такая конструкция имеет преимущество в управлении игрой: в любой момент можно сделать с игрой все что угодно. Однако, поскольку конструкция не предусматривает фиксации промежуточных состояний, то с течением времени количество обрабатываемой информации растет, т.к. в какждый момент обращения к движку пересчитываются все логи с начала игры. Плюс мультилогин, плюс блокировки, плюс куча левой инфы типа залипших в поле ввода кодов с предыдущих заданий, которые пишутся в лог каждые 10 секунд (дефолтное время автообновления движка).
У Реко нормальный сервер, не хуже Энковских. Там даже стоит nginx+php-fpm+Percona вместо стандартной лампы с Апачем, жрущим по 50 метров на процесс. Но Реко в принципе никак не оптимизирован по производительности. 502 ошибка в данном случае - это таймаут фронтенда из-за отвала интерпретатора. Это не исправить "более мощным сервером".
Вывод: для одноэкипажек пролезает. Для большого ДЛ - нет. Анксед давно уже говорит, что Реко надо переписывать с нуля. Он прав. Надеюсь, когда-нибудь до этого дойдут руки.
Я не гуру Реко, поэтому мог где-то по мелочи спиздеть. Есличо - придет Ваня, поправит.
|