Cheb's Game Engine

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Cheb's Game Engine

Сообщение Cheb » 06.04.2021 20:31:21

Для чего мне нужна макстмальная производительность сериализации: присоединение клиента к серверу требует передачи полного снапшота мира. Снапшот делается той же сериализацией. В том же потоке, что однопоточная физика: состояние нельзя продвинуть, пока идёт обход графа.
Результат: на время снятия снапшота сервер замирает, отстаёт и не может слать авторитарные события прошлого клиентам (поскольку их валидация - часть логики). А потом ещё вынужден догонять своей физикой реальное время.
Учитывая оптимистичное время создания снапшота - 50 милисекунд при максимальной расчётной сложности мира - это немало. У всех клиентов притормозит, отставая, базовый слой реальности, отчего вырастет нагрузка на цпу (опять же, физика может использовать только *одно* ядро) а лагокомпенсация станет более дёрганой и заметной.
Лагокомпенсация всего мира:
- то, что происходит "само по себе" по воле псевдорандома - происходит абсолютно гладко, без малейших искажений или отставаний.
- то, на что влияет только локальный игрок - происходит абсолютно гладко, без малейших искажений или отставаний
- то, что происходит под воздействием удалённых игроков - может идти дёргано, проявляясь внезапно (напр., ракеты возникающие прямо в воздухе, дырки в стенах, скачущие с места на место, если удалённый игрок подправил прицел, не отпуская зажатую лкм). Если происходит воздействие других игроков на локального - прямое или опосредованное - его движения и результаты его действий тоже могут подёргиваться и перескакивать.

АРГХ, когда я до этого доберусь то :evil:
Отлаживать буду сразу на Чероидах.

Добавлено спустя 5 часов 42 минуты 7 секунд:
Пока нет хороших идей, *как* это всё связать с рендером. То, что наблюдатель (игрок) видит как один лагокомпенсированный объект, на деле - чехарда сменяющих друг друга объектов, порождаемых во всплывающих слоях и каждые два-три кадра удаляемых, чтобы смениться новыми "почти такими же". Какого-то единого айди у них в принципе быть не может.
Ставит, знаете ли, крест на многих оптимизациях "хранить на видеокарте и подставлять лишь параметры".
Включая, блин, потенциально всю карту, если на ней происходят массированные изменения ландшафта.
То есть, для меня низкополигональность мира - не просто эстетический выбор, я ограничен бутылочным горлышком наихудшего случая "вся геометрия перезаливается на GPU каждый кадр". Конечно, там могут быть понавтыканы статические или даже анимированные модели, хранящиеся на видеокарте. Но основа должна быть низкополигональная.
Ну и ладно, я с самого начала замышлял ландшафты в стиле второго квейка или первого анрила. Решение использовать редакторы думских карт типа GZDoom Builder - лишь вишенка на торте.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 885
Зарегистрирован: 06.06.2005 15:54:34

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2

Рейтинг@Mail.ru
cron