Pull to refresh
64K+
656
Sergei Kushnirenko@dalerank

Люблю (ш)кодить, алгоритмы и старые авто.

459,6
Rating
1 401
Subscribers
Send message

К этому мы приходим для быстрых игр, а для стратегий вроде AoE2 глубина отмотки действий игрока вполне может достигать двух-трех секунд или ставиться в очередь вообще, чтобы применяться сервером авторитарно. Но схемы там работают теже

я бы даже больше сказал, умудряются включить wireframe режим без читов

да, человеческое восприятие очень важно, вы готовы смотреть на эту полоску загруки минуту, но уходите с сайта через 15 секунд если он не отвечает. Состояние называется "иллюзия прогресса" или "порог Доэрти"

определенно, умудряются читить даже на анимациях

Это называется пространственно-временная дискретизацию состояния. Мир не обязан синхронизироваться с точностью до каждого сантиметра и каждого кадра и вместо cell(123.45, 123.45) остается позиция cell(123, 123), а клиент уже может локально дорисовывать движение внутри клетки. Просто гранулярность сама по себе не решает проблему задержка, а только снижает количество информации, которое нада синхронизировать.

А вот вторая идея интереснее и называется она SLOD(simulation)/AILOD/MTLAI(Multi tiered level), т.е чем дальше от игрока некий нпс, тем меньший квант времени ему выделяется для работы, и чтобы сделать всю работу ему нужно упрощать свою логику. Это целое отдельное направление в MMO играх и одного решения там нету, есть несколько областей, которые боле-менее справляются со своими задачами:
Simulation LOD -> уменьшение точности симуляции
Spatial Partitioning / AOI -> разбиение мира на области
Coarse-Grained Simulation -> агрегирование объектов
Hierarchical Simulation -> несколько уровней представления мира

Ничего не поменялось, но памяти теперь использует 14ГБ вместо 12, где кнопка "верните все обратно"?

Об этом будет следующая часть, выложу в четверг

Нуштош, значит для старичков еще будет работа некоторое время

У нас количество открываемых qa багов выросло в полтора раза, это я вижу. А вот скорость закрытия оных поднялась не особо, толи наши тестировщики стали лучше работать, толи прогеры стали клепать фигню

Я разве сказал что Drepper не прав? Только он объясняет, как работает память и у него самый близкий к практике пример емнип блочное перемножение матриц, это однородные данные, которые целиком помещаются в память и которые надо правильно обойти. В игре задача очень часто обратная, данных много, они не влезают, они разнородные, и решать как обойти бесполезно, и приходится решать что положить рядом, упаковать или вообще выкинуть. Я об этом и это у Drepperа нет, и не потому что я набиваю цену, вот из недавнего проекта, это упакованное состояние мира

его у вас 380Мб данных, которые надо обновлять раз в несколько кадров, иначе начинает ломаться симуляция... их реально 380Мб, упаковано дальше некуда, есть пара свободных битов на обьект... а больше нету. Пожать вы их не можете, вынести что-то тоже не можете, остается всякими трюками удерживать в кеше хоть какуют-то важную часть

Дык не получится, многие воспринимают желание поговорить с заказчиком через голову начальства или уточнить технические детали как личное оскорбление и отбирание куска хлеба, а разговор через начальника довольно быстро приобретает характер сломанного телефона и повышает уровень недовольства у обеих сторон. Так что да, в каком то смысле не позволяет религия... корпоративная вера в непогрешимость клиента

вы байку про 2Мб за ночь до релиза знаете?

Ну с Андреем мы некоторое время работали в одной студии, и общение утекло в тг.

это уже рефактор, под него тесты надо менять, а тесты еще чтото потянут... просто вернули 120титонный вентилятор на место :)

Хехе, мы тоже вот отпилили один раз поддержку Google Stadia, а потом оказалось что пропали облачные сейвы в стиме. На вопрос "а какого рожна у нас стим юзал гугловый механизм?" оказалось что они очень похожи по апи и сделали, как сделали. Пришлось ревертнуть почившую уже лет как пять стадию, чтобы не писать заново поддержку для стима. Чудны дела твои, неизвестный рефактормэн

Как игра будет в стиме, обязательно расскажу. Добро дали

эм... есть такая категория вновь приходящих, выкидыватели называются. Это просто люди такие, и тут ничего уже не поделать, но варианты есть %) "учить, лечить, мочить" (с)

Так ты слона не продашь... (с)

Да, пожалуй, так действительно понятнее и по сути мы используем номер локации как ключ, за один проход раскладывая элементы по порядку, получая что-то очень близкое к counting sort.

Да, есть такое. Похоже на еще одиг вид граблей

1
23 ...

Information

Rating
4-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Десктоп разработчик, Разработчик игр
Старший
From 300,000 ₽
Git
C++
Многопоточность
Прикладная математика
ООП