HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Страницы (32): « Первая ... « 6 7 8 9 [10] 11 12 13 14 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Общая интерполяция успешно задействована и работает. Осталось самое сложное - интерполяция монстров. Потому что монстры играют анимацию со своим fps, который не совпадает с тем, как часто сервер посылает пакеты.
В первой и второй кваке это несоответствие было решено в лоб. Все анимации были на 10 фпс (и быстрее нельзя) и сервер тоже отправлял пакеты 10 раз в секунду. Вот оно так и получилось, автоматически.
Но уже в ку3 так легко отделаться не получилось.
Тут нужны промежуточные стейты для хранения текущих значений анимации, а так же время переключения кадра для локального значения интерполяционного фактора.

Добавлено 18-08-2024 в 10:04:

А ведь есть ещё такая штука как ходьба монстров. Тут уже не просто локальный лерпинг, тут смешивание двух разных интерполяторов.
Потому что монстры могут находиться на движущейся платформе и одновременно куда-то идти. Самый простой способ устранить это несоответствие - проинтегрировать скорость движения монстра.
Например через velocity. Собственно, в Doom3 оно именно так и сделано.

Добавлено 18-08-2024 в 10:06:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221684

Старое сообщение 18-08-2024 07:06
-
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Дядя Миша А как происходит фильтрация списка объектов, тех которые нужны конкретному клиенту, например чисто визуальных объектов, которые не взаимодействуют с другими объектами, и их не нужно каждый тик обновлять, если объект сейчас не в кадре?

Сообщить модератору | IP: Записан
Сообщение: 221685

Старое сообщение 18-08-2024 09:09
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Unit Я тебе там вопрос задал:

Цитата:
Дядя Миша писал:
Так что там насчёт твоего движка? Покажешь\расскажешь?


Если хочешь чтобы я тебе отвечал, всё же не игнорируй мои вопросы.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221686

Старое сообщение 18-08-2024 10:00
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Дядя Миша
Ничего он не расскажет, он гуманитарий.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | IP: Записан
Сообщение: 221687

Старое сообщение 18-08-2024 10:36
- За что?
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Цитата:
Дядя Миша писал:
Я тебе там вопрос задал

Я в этом потоке текста честно даже не заметил.

А что собственно показывать, скриншот из IDE? Пожалуйста На данном этапе я ковыряю Vulkan, думаю отказаться от OpenGL полностью, почти весь рендер приходится переделывать, параллельно изучая Vulkan.
В Vulkan оказался другой подход к юниформам, памяти и т.д.
То что я говногодил примерно год недостаточно абстрактно для Vulkan.

Сейчас готово:
Свой формат/загрузка сцен, текстур, моделей, материалов, UI(подобие QML).
UI на Skia(GPU)
Звук
Физика на Bullet
Скрипты на Angle(думаю перейти на Lua)
Несколько тулз для конвертации ресурсов.
Android/Windows ввод, окна, различные нативные штуковины, Linux на 70% примерно, IOS и MAC в планах.

Если у Вас есть интерес, допилю рендер, выложу демку.


Цитата:
FiEctro писал:
Ничего он не расскажет, он гуманитарий.

Вы как всегда правы.

[ Вложение ]
photo.jpg

Отредактировано Unit 18-08-2024 в 11:07

Сообщить модератору | IP: Записан
Сообщение: 221689

Старое сообщение 18-08-2024 11:02
- За что?
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 4054
Возраст: 37

Рейтинг



Цитата:
Unit писал:
Если у Вас есть интерес, допилю рендер, выложу демку.

Интересно, а что это вообще за проект такой? )

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

Сообщить модератору | IP: Записан
Сообщение: 221690

Старое сообщение 18-08-2024 11:24
- За что?
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



(_-=ZhekA=-_) Да глобально ничего так-го, есть интерес сделать для мобилок и пк мини-движок, что-бы уровни маппить можно было в "Хамерской" концепции, затем, если не перегорит, выпустить небольшую игру, сейчас использую Hammer для Source 2, написал конверт из VMAP.

Сообщить модератору | IP: Записан
Сообщение: 221692

Старое сообщение 18-08-2024 11:31
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 629

Рейтинг



Цитата:
Unit писал:
Android/Windows ввод, окна, различные нативные штуковины, Linux на 70% примерно, IOS и MAC в планах.

Почему именно всё нативно, а не просто взять SDL?

__________________
Мой сайт
Xash3D Modding Discord

Сообщить модератору | IP: Записан
Сообщение: 221693

Старое сообщение 18-08-2024 11:57
- За что?
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Цитата:
SNMetamorph писал:
Почему именно всё нативно, а не просто взять SDL?

С основной работой кроссплатформа связана, я почти весь код уже писал ранее, в такой ситуации SDL избыточен, если не охота разбираться в платформах, то да SDL хороший выбор.

Сообщить модератору | IP: Записан
Сообщение: 221694

Старое сообщение 18-08-2024 12:09
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Unit писал:
А что собственно показывать, скриншот из IDE? Пожалуйста

Благодарю. Всё что я хотел узнать, я узнал из этого скриншота.

Цитата:
Unit писал:
Если у Вас есть интерес, допилю рендер, выложу демку.

Заценим конечно

Цитата:
Unit писал:
А как происходит фильтрация списка объектов, тех которые нужны конкретному клиенту, например чисто визуальных объектов, которые не взаимодействуют с другими объектами, и их не нужно каждый тик обновлять, если объект сейчас не в кадре?

Никак не происходит. Все объекты обновляются на сервере всегда.
Ибо без ярко выраженных допущений невозможно определить какие именно объекты нужны конкретному клиенту. А допущения определяются жанром игры. Для FPS что-то подобное в общем случае определить невозможно в принципе. Единственное что пожалуй можно допустить - это выключать AI у монстров, которых игрок не видит. Или если быть точным - ни один игрок не видит.
Впрочем там в любом случае масса всяких условий чтобы совершать как можно меньше работы, но функция обновления вызывается всегда.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221698

Старое сообщение 18-08-2024 12:49
-
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Цитата:
Дядя Миша писал:
Никак не происходит. Все объекты обновляются на сервере всегда.
Ибо без ярко выраженных допущений невозможно определить какие именно объекты нужны конкретному клиенту. А допущения определяются жанром игры. Для FPS что-то подобное в общем случае определить невозможно в принципе. Единственное что пожалуй можно допустить - это выключать AI у монстров, которых игрок не видит. Или если быть точным - ни один игрок не видит.
Впрочем там в любом случае масса всяких условий чтобы совершать как можно меньше работы, но функция обновления вызывается всегда.


Я вот подумываю разбить на категории объекты: обязательные и не обязательные для pertick апдейта, вторые будут обновляться, например если находятся в радиусе дальности прорисовки камеры, даже если они не в кадре, например если резко повернуть камеру. Но вытекает проблема, если резко телепортировать камеру, а данные с сервера еще не пришли по новым координатам камеры, тогда blink эффект возникнет, пока не решил этот вопрос.

Сообщить модератору | IP: Записан
Сообщение: 221699

Старое сообщение 18-08-2024 12:58
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Unit писал:
Но вытекает проблема, если резко телепортировать камеру, а данные с сервера еще не пришли по новым координатам камеры

Так телепортация-то на сервере.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221702

Старое сообщение 18-08-2024 18:42
-
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 4054
Возраст: 37

Рейтинг



Цитата:
Unit писал:
что-бы уровни маппить можно было в "Хамерской" концепции

Опять, что-то хл1 подобное...

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

Сообщить модератору | IP: Записан
Сообщение: 221708

Старое сообщение 18-08-2024 19:51
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4738
Возраст: 35

Рейтинг



@Acerola__t
there's also this fun bug where Unity just randomly stops recompiling your compute shaders, and it gives no indication of this, other than making you think you're insane; so if you make a change to your shader, and it doesn't do anything, it's the bug and you need to restart unity

Сообщить модератору | IP: Записан
Сообщение: 221712

Старое сообщение 20-08-2024 07:29
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Сеть была успешно поломана в августе 2019-го года. Пять лет. Пять лет эта ситуация ждала своего часа. Одно цеплялось за другое, без третьего не имело смысл реализовывать четвертое, без которого было бы невозможно пятое, а без пятого реализация сети была попросту невозможна.
Ну я условно. Сперва собственный язык, потом организация игровых библиотек, успешное тестирование прототипа реальной игры (в качестве прототипа выступил первый Quake), перенос Quake2, подключение AI-навигации, поддержки монстров с вершинной анимацией и вот наконец-то очередь дошла и до сети. И эта задача практически выполнена.

Я не стал там изобретать ничего нового, остановился на классической клиент-серверной архитектуре в духе Quake World. Ну или GoldSource, кому как больше нравится. У подобной реализации было несколько слабых мест.
Во первых невозможность передать на клиент новые параметры - только те, что заранее прописаны в entity_state_t. И сам entity_state_t тоже менять нельзя - сломается сетевой протокол. Очень неудобная конструкция.
Второй момент - невозможность передачи на клиент никаких глобальных переменных. В Half-Life была структура movevars_t, но пользовательских переменных там не было. Приходилось городить какие-то отдельные пользовательские сообщения, проверки на время их передачи.
Третий момент - нельзя было передавать на клиент строки. Только числа.
Четвертое - вещественные числа отсылались на клиент в фиксированном виде, надо было подбирать множитель. Легко догадаться в каком исковерканном виде они туда приходили.
Пятое - невозможность нормальной работы с клиентскими энтитями.
Исторически это началось ещё в первого квейка, где пользовательский доступ к клиентским энтитям не предполагался вовсе, в халфе вывели какие-то непонятные каллбэки, вся роль которых сводилась к тому, чтобы скопировать какие-то переменные из одного стейта в другой. Что именно там происходило понять было практически невозможно. Зато все клиентские эффекты так и оставались захардкодены в движке.

XashNT предполагает иной подход. Он позволяет создавать клиентские энтити на основе таких же классов, как и на сервере. При желании можно передать практически все параметры и замутить предиктинг всех объектов, но я пока что так далеко не заглядываю. На данный момент имплементация объектов нужна, чтобы навешивать на них всякие визуальные эффекты - партиклы, динамический свет, лучи.
И будет новая концепция временных энтить. Параллельного массива с этими объектами в новом ксаше больше не будет, а все энтити такого рода будут полностью контролироваться с сервера. Тут как раз и пригодится возможность не наследовать объекты от базового, с целью оптимизации траффика. Впрочем, думаю, уже скоро сами всё увидите и пощупаете.

Добавлено 20-08-2024 в 22:24:

Кстати, по лимитам скажу. Поскольку оно на сетевой протокол подзавязано.
Можно отвязать в дальнейшем, но пока что смысла не вижу.

8192 энтити на сервере. Мог бы поставить меньше, но тогда не заведётся ad_sepulcher из Arcane Dimensions, а я планирую его тоже использовать в качестве стресс-теста. Увеличивать этот лимит едва ли возможно - виртуальная машина без JIT не вытянет.

4096 уникальных моделей
8192 уникальных звука
65535 уникальных строк, которые могут быть переданы на клиент.

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221716

Старое сообщение 20-08-2024 19:24
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 14:50. Новая тема    Ответить
Страницы (32): « Первая ... « 6 7 8 9 [10] 11 12 13 14 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024