HLFX.Ru Forum Страницы (32): « Первая ... « 10 11 12 13 [14] 15 16 17 18 » ... Последняя »
Показать все 479 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=6097)


Отправлено Unit 28-08-2024 в 09:43:

Есть смысл выкатить интерпретатор языка отдельным проектом.
Базовый ввод/вывод подтянуть из stdio. Уже на этой стадии народ пробовал бы различные конструкции и искал баги.


Отправлено ZGreen 28-08-2024 в 09:44:

Цитата:
FiEctro писал:
И подключать её как отдельный ассет средствами шоты.

Кто-нибудь может перевести это?


Отправлено Дядя Миша 28-08-2024 в 10:10:

Цитата:
FiEctro писал:
Мне кажется ядро физики лучше вынести в отдельную нативную либу как это делает физикс или ньютон.

У меня совершенно иной подход. От физики очень часто требуют специфических вещей, а не точной симуляции физических законов.
В том же PhysX например нет каллбэка на блокировку кинематиком твёрдого тела об геометрию уровня. Хотя в играх это довольно часто встречающаяся ситуация - заблокировать дверь ящиком чтобы она не смогла закрыться.
Так вот нативных методов это сделать в физиксе - нет. Равно как и вообще что-либо сделать при блокировке кинематка. Собсно, почему я и не связываюсь со сторонней физикой - она реализует абсолютно не то, что нужно в играх. Всё что угодно, кроме того что надо. Надувных коров, например. Вы много в играх видели надувных коров?

Цитата:
FiEctro писал:
Кстати ещё такой вопрос у тебя можно легко и быстро перебросить объект в локальное пространство другого объекта?

Зависит от реализации игрового кода на Шоте. Для кваки я такого не делал, а в коде ксаш-мода это есть изкаробки.

Добавлено 28-08-2024 в 13:10:

Цитата:
Unit писал:
Есть смысл выкатить интерпретатор языка отдельным проектом.

Да, я его обязательно выложу на gamedev.ru в своё время. У меня там ещё пара недоработок с шаблонами и ссылками.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 28-08-2024 в 11:27:

Цитата:
Дядя Миша писал:
У меня совершенно иной подход. От физики очень часто требуют специфических вещей, а не точной симуляции физических законов.


Так специфичные вещи это уже более высокий уровень абстракции чем ядро.

Цитата:
Дядя Миша писал:
В том же PhysX например нет каллбэка на блокировку кинематиком твёрдого тела об геометрию уровня. Хотя в играх это довольно часто встречающаяся ситуация - заблокировать дверь ящиком чтобы она не смогла закрыться.


Так, а почему физдвижок должен знать про уровни, двери и ящики? Ты же сам мне говорил что это голая аналитическая геометрия. Вот эта геометрия и есть ядро, а когда монстра зажало дверью это уже игровая логика.

Цитата:
Дядя Миша писал:
Собсно, почему я и не связываюсь со сторонней физикой - она реализует абсолютно не то, что нужно в играх. Всё что угодно, кроме того что надо. Надувных коров, например. Вы много в играх видели надувных коров?


Я использовал в Юнити софтбоди, правда весьма костыльно.

Цитата:
Дядя Миша писал:
Зависит от реализации игрового кода на Шоте. Для кваки я такого не делал, а в коде ксаш-мода это есть изкаробки.


Ну тоесть можно сказать что нет, я понял.

Цитата:
ZGreen писал:
Кто-нибудь может перевести это?


Фреймворк, библиотека, средставами виртуальной машины подключаем к движку и пользуем.

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


Отправлено Crystallize 28-08-2024 в 13:05:

Цитата:
FiEctro писал:
Там кстати Альбатрос какую то супер закачку у себя в форке сделал, очень быстро работает.

А ютуб через нее можно смотреть?


Отправлено Дядя Миша 28-08-2024 в 13:25:

Цитата:
FiEctro писал:
Так специфичные вещи это уже более высокий уровень абстракции чем ядро.

Совершенно верно.

Цитата:
FiEctro писал:
Ты же сам мне говорил что это голая аналитическая геометрия

Ты не путай коллижен-детектор с солвером. Детектор-то действительно везде одинаковый, его задача найти столкновение\пересечение.
А солвер зачастую должен решать какие-то игроспецифичные задачи, а не заниматься точной физической симуляцией. Поэтому мне очень импонирует подход Кармака с его моветипами. Везде немного своя физика. Потому что все объекты очень разные и управляются по разному. А в случае использования Физикса, нам надо наоборот душить его стандартный солвер и далеко не всегда для этого есть корректные способы.

Цитата:
FiEctro писал:
Ну тоесть можно сказать что нет, я понял.

Нативной реализации нет. Но если я вынесу физику такого рода в ядро, то появится. Пока что нет в этом необходимости.

Добавлено 28-08-2024 в 16:25:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 28-08-2024 в 13:40:

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


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

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


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

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

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


Отправлено Unit 28-08-2024 в 14:19:

Кстати соглашусь про нелинейность игрока. Когда пытаются делать физически-корректное управление получается отстой, особенно с прыжками, физически-корректно сохранить вектор на протяжении всего прыжка, затем приземлиться в n точке. Но тогда в воздухе нельзя стрейфиться или прерывать движение, такое управление всегда раздражает, чувствуется "вязким" и не отзывчивым.


Отправлено Дядя Миша 28-08-2024 в 15:12:

Цитата:
FiEctro писал:
Но "подход Кармака" я так понял это двигать объекты избегая вообще какую либо физику

Ты решил отобрать лавры у Кристаллайза?

Цитата:
FiEctro писал:
А вот если просто в тупую менять координаты, то да начинаются приколы

А кто предлагает менять координаты втупую? Ну разве что для телепортации.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 28-08-2024 в 15:25:

Цитата:
Дядя Миша писал:
А кто предлагает менять координаты втупую? Ну разве что для телепортации.

Я так делаю потому что не смог пофиксить необнуленную гравитацию типа той которая двигает мертвых монстров.
Да и вообще проще каждый кадр снапать объект куда надо чем разбираться как кейсы без гравитации переключаются на кейсы с гравитацией, периодически наблюдать как игрок улетает в небо из-за твоих косяков (всё как в продуктах у больших дядек кстати!), и думать, "вот у меня щас игрок ползет вниз притягиваясь к точке снапа на рельсу или это просто гравитация"?


Отправлено Дядя Миша 28-08-2024 в 19:33:

Цитата:
Crystallize писал:
Я так делаю потому что не смог пофиксить необнуленную гравитацию типа той которая двигает мертвых монстров.

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 29-08-2024 в 09:40:

Цитата:
Crystallize писал:
Я так делаю потому что не смог пофиксить необнуленную гравитацию типа той которая двигает мертвых монстров.


В Юнити для таких случаев есть галочка IsKinematic которая отключает гравитацию у конкретного ригидбоди как раз для таких случаев. Есть ещё метод SetGravity которым тоже можно установить гравитацию персонально для каждого объекта. Методы для Get/Set Velocity, методы AddForce с разной линейностью как раз чтобы делать "нелинейного игрока". Вот чего реально не хватет так это метода который бы определял давление на объект в конкретном месте, приходится строить матрицу из триггеров вокруг игрока чтобы игрок понимал где препятствия и что на него давит.

Цитата:
Unit писал:
Кстати соглашусь про нелинейность игрока. Когда пытаются делать физически-корректное управление получается отстой, особенно с прыжками, физически-корректно сохранить вектор на протяжении всего прыжка, затем приземлиться в n точке. Но тогда в воздухе нельзя стрейфиться или прерывать движение, такое управление всегда раздражает, чувствуется "вязким" и не отзывчивым.


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

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


Отправлено Дядя Миша 29-08-2024 в 10:02:

Цитата:
FiEctro писал:
Вот чего реально не хватет так это метода который бы определял давление на объект в конкретном месте

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 29-08-2024 в 11:00:

Цитата:
FiEctro писал:
В Юнити для таких случаев есть галочка IsKinematic которая отключает гравитацию у конкретного ригидбоди как раз для таких случаев. Есть ещё метод SetGravity которым тоже можно установить гравитацию персонально для каждого объекта

Да мне динамически же надо переключать

Цитата:
FiEctro писал:
На деле мы просто имеем дело с плохо настроенным контроллером, если подобрать параметры то таких приколов не будет. Просто мало кто то с этим заморачивается.

Ты не победишь иной принцип просто "настройкой параметров", ну если конечно не выкрутишь их в нули и бесконечности.

Цитата:
FiEctro писал:
Я пришёл к тому что колайдер игрока вообще должен парить немного над землёй чтобы он не спотыкался за каждый вертекс как в кваках и голд сорсе.

Так и в ГС первые 16 юнитов от пола перешагиваются по умолчанию.


Отправлено FiEctro 29-08-2024 в 11:10:

Цитата:
Crystallize писал:
Да мне динамически же надо переключать


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

Цитата:
Дядя Миша писал:
Так я тебе ровно про то же самое и говорил, когда описывал случай двери, уперевшейся в ящик. А ты сказал что такое никому не нужно, и тут же сам пожаловался что тебе этого не хватает.


Ты не понял, я говорил что это разные уровни абстракции. Что освновное ядро можно убрать в нативную библиотеку, а такие вещи уже и на самой шоте реализовать. Впрочем это лишь один из вариантов. Вон в гаррис моде на виртуалке вообще физику жидкостей сделали.
https://www.youtube.com/watch?v=cFmBL-yD8HI


Цитата:
Crystallize писал:
Ты не победишь иной принцип просто "настройкой параметров", ну если конечно не выкрутишь их в нули и бесконечности.


До конца конечно нет, но множество проблем "мешка с говном" можно решить.

Цитата:
Crystallize писал:
Так и в ГС первые 16 юнитов от пола перешагиваются по умолчанию.


Я имел ввиду что он постоянно подвешен, а не перешагивает. Вообще трущийся колайдер о пол это крайне плохая идея.

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


Временная зона GMT. Текущее время 06:12. Страницы (32): « Первая ... « 10 11 12 13 [14] 15 16 17 18 » ... Последняя »
Показать все 479 сообщений этой темы на одной странице

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