Почему перенесли релиз части нового сетевого кода (Bind Culling)
Почему перенесли релиз части нового сетевого кода (Bind Culling)
Мы решили, что необходимо отложить Bind Culling по следующим причинам:
1) Прогресс оказался более медленным, чем мы надеялись, отчасти из-за того, что потребовалось больше времени, чтобы преобразовать последние несколько кусков кода, в которых используются устаревшие аспекты (Aspects)и RMIs для сериализированных переменных (Serialized Variables) и удаленных методов (Remote Methods), дальше мы полностью уберем эти устаревшие системы из сетевого кода. Это было необходимо потому, что мы не хотим, чтобы нам пришлось реализовывать Bind Culling одновременно и для старых и для новых систем. Мне не стыдно сказать вам, что я танцевал и прыгал от счастья, когда последняя строка старого кода была убрана.
2) Нам не хватило времени до выхода 3.1, чтобы сетевые и программисты игрового процесса справились с проблемами, которые, как мы ожидаем, появятся с вводом Bind Culling.
3) Bind Culling позволит ограничить в клиентах входящий/исходящий поток сущностей, в зависимости от расстояния до них, но без использования асинхронного распространения объектных контейнеров (Object Container Streaming) это обязательно станет рулеткой, когда неизвестно, окажутся ли в итоге, загружаемые синхронно пачки данных лучше, чем те, что используются сейчас. План заключался в том, чтобы заставить Bind Culling работать, посмотреть, как это повлияет на игроков и игровой процесс и затем, сделать вывод, включать, или нет этот функционал в 3.1
4) Основанная на дистанции до объекта система Serialized Variable Culling была нашим планом Б, в случае если Bind Culling не попадет в обновление 3.1. Возможно, вы помните, что мы работали над SV Culling для 3.0, но не успели вовремя. Ладно, это первая система, которой мы занялись в начале текущего года, и уже работаем всем нашим департаментом несколько недель (мы не использовали ветку 3.0.1). SV Culling уже даёт нам львиную долю прироста в производительности, который мы ожидаем получить при введении Bind Culling, поэтому мы можем теперь работать спокойно и не торопиться.
5) Сетевые программисты требуются для других задач, приоритет которых вырос с того времени, как они были добавлены в график.
Источник: https://vk.com/