HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Страницы (32): « Первая ... « 10 11 12 13 [14] 15 16 17 18 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Unit
Частый гость

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

Рейтинг



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

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

Старое сообщение 28-08-2024 09:43
- За что?
ZGreen
Роугнесс

Дата регистрации: Sep 2007
Проживает: Красноярск
Сообщений: 428
Возраст: 37

Рейтинг



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

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

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

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

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

Рейтинг



Цитата:
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'

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

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

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

Рейтинг



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


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

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


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

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


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

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


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

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


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

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

Отредактировано FiEctro 28-08-2024 в 11:32

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

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

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

Рейтинг



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

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

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

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

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

Рейтинг



Цитата:
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'

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

Старое сообщение 28-08-2024 13:25
-
FiEctro
Кот Арсис

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

Рейтинг



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


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

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


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

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

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

Отредактировано FiEctro 28-08-2024 в 13:43

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

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

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

Рейтинг



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

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

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

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

Рейтинг



Цитата:
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'

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

Старое сообщение 28-08-2024 15:12
-
Crystallize
Житель форума

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

Рейтинг



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

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

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

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

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

Рейтинг



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

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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-08-2024 19:33
-
FiEctro
Кот Арсис

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

Рейтинг



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


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

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


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

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

Отредактировано FiEctro 29-08-2024 в 09:48

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

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

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

Рейтинг



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

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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 29-08-2024 10:02
-
Crystallize
Житель форума

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

Рейтинг



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

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

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

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

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

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

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

Старое сообщение 29-08-2024 11:00
- За что?
FiEctro
Кот Арсис

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

Рейтинг



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


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

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


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


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


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

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


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

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

Отредактировано FiEctro 29-08-2024 в 11:24

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

Старое сообщение 29-08-2024 11:10
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 15:29. Новая тема    Ответить
Страницы (32): « Первая ... « 10 11 12 13 [14] 15 16 17 18 » ... Последняя »   Предыдущая тема   Следующая тема
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