Как реализована система?
Абсолютное большинство вопросов по видимости возникает из-за того, что эта тема с точки зрения «бытовой» логики кажется очень простой. И действительно: маячит корабль на горизонте — наблюдатель должен видеть точку, а в бинокль — силуэт. Идёт корабль в дымах — наблюдатель должен видеть иногда проглядывающий сквозь завесу контур. Но, когда речь заходит о многопользовательской игре (а World of Warships к этому виду относится), решающую роль начинает играть не подробное воспроизведение реальности, а честность, играбельность и оптимизация.
Честность — это в данном случае равноправие игроков. Если я, скажем, установлю низкое качество графики в настройках, отключу часть эффектов (может, даже модами) или как-то ещё изменю получаемую мной картинку, я все равно должен видеть ровно то же самое, что и другие игроки на моём месте. У игрока не должно быть возможности смотреть сквозь дымы, замечать противника на большей дистанции и так далее.
Играбельность — это соответствие игровых механик жанру (тактический MMO-экшен). У нас не симулятор стрельбы на предельную дистанцию с нервным наблюдением марева на горизонте. В World of Warships должно быть в меру просто, в меру сложно, достаточно динамично, и чтобы игрок управлял огромным красивым кораблём, стрелял, запускал самолёты, маневрировал. Таким образом, от системы видимости требуются простота и эффективность.
Оптимизация — это разумный расход ресурсов клиента и сервера, сообразно получаемому эффекту. Надо ли, чтобы видимость каждого корабля рассчитывалась с каждого самолёта «по-честному», с учётом рельефа местности, или хватит простого правила «обнаружение в пределах X километров»? Важно ли отобразить, как из тумана плавно выходит вражеский корабль или достаточно ограничиться механикой «засвета»? Поскольку сервер в бою и так нагружен неплохо, особенно вычислениями по баллистике и системе урона, оптимизация тут играет важнейшую роль.
Комментарии 3