HLFX.Ru Forum
Показать все 40 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Чему на самом деле равно ускорение в хл1? (https://hlfx.ru/forum/showthread.php?threadid=5144)


Отправлено Government-Man 26-11-2018 в 15:19:

Чему на самом деле равно ускорение в хл1?

Работаю над движением игрока в небольшом личном проекте. Чтобы было от чего отталкиваться, решил для начала реализовать физику как в хл1 с теми же настройками. В хл1 по дефолту:

sv_friction = 4
sv_accelerate = 10

Сделал у себя так же. С трением все замечательно - игрок тормозит и скользит с разбегу очень похоже на то, как это происходит в хл1. А вот с ускорением проблема - оно слишком резкое: чуть дотронешься до клавиши, а игрок уже отлетает на приличное расстояние. И на поворотах его заносит.

Реализация ускорения у меня такая же как в PM_Accelerate, поэтому у меня две версии происходящего:

1. Значение sv_accelerate прежде чем попасть в PM_Accelerate домножается на какое-то другое значение, которое делает его меньше.
2. cmd.forwardmove и cmd.sidemove изменяются при нажатии клавиш не резко, а плавно.

Есть кто-нибудь, кто разбирается?


Отправлено XaeroX 26-11-2018 в 16:59:

Цитата:
Government-Man писал:
Реализация ускорения у меня такая же как в PM_Accelerate

А реализация остального?

__________________

xaerox on Vivino


Отправлено Government-Man 26-11-2018 в 17:51:

XaeroX
PM_FlyMove скопирована почти один в один, PM_Friction тоже работает как в хл1, включая влияние sv_stopspeed, только edge friction не учитывается. PM_WalkMove я не копировал - у меня своя реализация, но делает она по сути то же самое, с двумя отличиями: игрок ускоряется вдоль пола а не вдоль плоскости XY, и пока не реализовано хождение по ступенькам.

В целом игрок двигается очень похоже, только вот с ускорением проблемы.


Отправлено Дядя Миша 26-11-2018 в 18:47:

Личный проект на Unity?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 26-11-2018 в 19:17:

Дядя Миша нет, на уе4.

В общем, разобрался - я дурак и перепутал pmove->friction и pmove->movevars->friction. В результате я перемножал sv_accelerate и sv_friction - при ускорении 40 неудивительно, что игрок был резким как понос...

Теперь все отлично работает

ЗЫ. Я же правильно понимаю, что pmove->friction это внешнее влияние, типа скользкости пола?


Отправлено Дядя Миша 26-11-2018 в 20:22:

Government-Man модификатор. по умолчанию еденица там.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ~ X ~ 28-11-2018 в 09:11:

Government-Man а разве в УЕЧ СДК нет физики? o_O Или это эксперимент просто?
ЗЫ: в PM_Friction я год назад что-то фиксил. Но уже не помню. В ХЛ что-то было не доделано.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 28-11-2018 в 10:42:

Цитата:
~ X ~ писал:
а разве в УЕЧ СДК нет физики?

Я так понял, это каша из топора. Постоянно надо чего-то добавлять, чтобы вкусно было.

__________________

xaerox on Vivino


Отправлено Ku2zoff 28-11-2018 в 11:05:

Цитата:
~ X ~ писал:
ЗЫ: в PM_Friction я год назад что-то фиксил. Но уже не помню. В ХЛ что-то было не доделано.

Пофиксил или испортил? У меня до сих пор не выходят из головы модели игрока, которые в прыжке (в тестовых версиях XDM 3.0.3.8) играют анимацию "threadwater", потому что ты задумал заставить их воспроизводить её во время падения с большой высоты.
Что там фиксить надо-то, а? В кс 1.6 народ 15 лет играет и не жалуется на физику игрока. Там только один единственный момент есть, связанный с edgefriction, когда на некоторых картах (например, cs_mansion) невозможно по-быстрому вылезти в окно. Ну и ещё снижение скорости после прыжка, но это уже фишка мода. Там даже стамина есть, тратящаяся на прыжки.


Отправлено Дядя Миша 28-11-2018 в 14:55:

Цитата:
~ X ~ писал:
а разве в УЕЧ СДК нет физики?

Ну я так понял, ему надо чёб с халфой софпадало 1 в 1.

Цитата:
Ku2zoff писал:
Что там фиксить надо-то, а?

Я помню, что в XDM при прыжке камера как-то хаатычна дёргалась и Скарж очень негодовал на это, а Хвидер негодовал еще больше, что его гениальную задумку никто не оценил

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 28-11-2018 в 15:35:

Цитата:
~ X ~ писал:
а разве в УЕЧ СДК нет физики?


Есть, и у нее даже предикшен есть искаропки, но:

1) мне не нравится как по дефолту двигается игрок
2) в файле, в котором она реализуется, больше 10 тыс строчек кода, с которым мне лень разбираться
3) мультиплеер я не планирую

Так что чем расширять уечевскую физику я решил написать свою.


Отправлено XaeroX 28-11-2018 в 17:32:

Удивительное дело с этими Эпиками, написали аж 10 тысяч строчек кода - а людям не нравится. Вот КАК они это делают?

__________________

xaerox on Vivino


Отправлено Дядя Миша 28-11-2018 в 18:16:

XaeroX эмм, ну в халфе pm_shared 3300 строчек кода. Всего в три раза меньше. Но нашему другу с ними отчего-то разбираться не лень.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ~ X ~ 02-12-2018 в 08:21:

Секрет в том, что в pm_shared далеко не вся "физика"

А я вспомнил, что мы с Царём пилили год назад - скольжение. Т.е. чтоб нельзя было стоять неподвижно на скользкой наклонной поверхности. Кстати, это есть в Unreal, но нет в HL. Теперь есть в XDM. И ещё теперь есть разное трение у разных материалов.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 02-12-2018 в 08:51:

Цитата:
~ X ~ писал:
Т.е. чтоб нельзя было стоять неподвижно на скользкой наклонной поверхности. Кстати, это есть в Unreal, но нет в HL.

Это есть даже в Quake.

__________________

xaerox on Vivino


Отправлено ~ X ~ 02-12-2018 в 10:07:

В кваке были скользкие поверхности? o.O
Я знаю только 3 игры, где реально есть скольжение - HL1, Serious Sam, Unreal + RTNP. Ну ок, ещё на nintendo было скольжение где-то

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 02-12-2018 в 13:27:

Цитата:
~ X ~ писал:
В кваке были скользкие поверхности?

В кваке все поверхности были скользкие по дефолту. По крайней мере, игрок стабильно съезжал с наклонных.

__________________

xaerox on Vivino


Отправлено Дядя Миша 02-12-2018 в 15:35:

XaeroX помоему это баг такой был. Я не могу это воспроизвести.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 02-12-2018 в 15:52:

Дядя Миша игрок, будучи на земле, считал, что он в воздухе, что ли?

Кстати я в своей реализации на уе4 как раз тоже реализовал скольжение. Правда не со скользких поверхностей, а с поверхностей выше определенного угла наклона. Ну помните в хл1, обладая достаточным терпением, можно было забраться на любую наклонную поверхность? У себя я сделал так, чтобы если поверхность "почти вертикальная" то игрок (если он ходит по земле) врезается в нее как в вертикальную, а вот если она заметно наклонная, но забраться на нее уже нельзя, то игрок с нее мягко соскальзывает.


Отправлено Дядя Миша 02-12-2018 в 20:26:

Government-Man запусти кваку сначала и стань на уклоне в тоннель со скиллом Normal. Игрок будет очень медленно соскальжевать. Я хрен знает что это такое.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 02-12-2018 в 23:36:

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


Отправлено ~ X ~ 03-12-2018 в 12:08:

А мы фиксили скольжение вверх по наклонным плоскостям в ХЛ. )
Особенно весело было в конце Timeline 2: Iced Earth разгоняться и забираться на саночную горку. )

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 03-12-2018 в 19:17:

Government-Man да нет, там не так всё просто. Там есть специальный код, который пытается игрока подвинуть вниз.

C++ Source Code:
1
VectorCopy (vec3_origin, upmove);
2
VectorCopy (vec3_origin, downmove);
3
upmove[2] = STEPSIZE;
4
downmove[2] = -STEPSIZE + oldvel[2]*host_frametime;
5
 
6
// move up
7
SV_PushEntity (ent, upmove);	// FIXME: don't link?

в халфе этого нет. И FlyMove тут джва раза вызывается.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 03-12-2018 в 20:23:

Дядя Миша
В куврапе ты ведь соскальзывание убрал?


Отправлено Дядя Миша 03-12-2018 в 22:30:

nemyax я его не убрал, я его наоборот хочу восстановить, потому что прикольно.

Добавлено 04-12-2018 в 01:30:

Может заодно и тот мод со слайдингом починится. И квейк-ралли.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 04-12-2018 в 06:19:

Цитата:
Дядя Миша писал:
Там есть специальный код, который пытается игрока подвинуть вниз.

Скорость ведь зависит от угла наклона плоскости, да? Фича интересная, но я бы сделал определённый порог угла в градусах, после которого игрок начинает соскальзывать. А то так уйдёшь чаю налить и печеньку взять, забудешь на паузу поставить. Вернёшься - а твой игрок соскользнул в лаву с почти что горизонтальной поверхности. Конечно, такая проверка касается только собственного кода, во враппере, ящитаю, всё должно быть, как в оригинальной кваке.
Эх, вот бы враппер для ку2

Добавлено 04-12-2018 в 13:19:

Цитата:
Дядя Миша писал:
квейк-ралли

Удивительно, что до сих пор никто, кто хотел в халфу машинки, не удосужился декомпильнуть progs.dat этого мода. Физика игрока ведь очень похожа на халфовскую. Ну это, опять же, вкусовщина. Кому-то больше нравятся машинки а-ля танк в Ганмене/Инвазионе. Ящитаю, что второй вариант лучше, т.к. при правильном подходе брашевая машинка лучше взаимодействует с точечными энтитями. А ещё на ней остаются декали.


Отправлено XaeroX 04-12-2018 в 06:48:

Цитата:
Ku2zoff писал:
Кому-то больше нравятся машинки а-ля танк в Ганмене/Инвазионе.

В ганмене танк неплох, а вот в Инвазионе, емнип, довольно стрёмная физика.
В CS ещё забавные танки были, на cs_siege, но я не уверен, что они остались в версии 1.6.

__________________

xaerox on Vivino


Отправлено Ku2zoff 04-12-2018 в 07:25:

Цитата:
XaeroX писал:
В CS ещё забавные танки были, на cs_siege, но я не уверен, что они остались в версии 1.6.

В 1.6 там ничего нету. Вообще, ЕМНИП, в официальной версии 1.6 нет ни одной карты с func_vehicle. Энтитя стала, как бы "deprecated" из-за своей недопиленности. Как и самые интересные режимы игры as_ и es_. Сейчас понабигут любители режима de_ и начнут поливать меня гогном. Но я останусь при своём мнении: именно те режимы, где действительно нужен баланс и командная работа, были выброшены из игры в силу сложности их отладки и допиливания. Что в очередной раз доказывает, что киберспортивный кс - говно.


Отправлено Дядя Миша 04-12-2018 в 18:02:

Цитата:
Ku2zoff писал:
Эх, вот бы враппер для ку2

Можно и кудва и кутри сделать. Но для меня эти задачи не представляют интереса.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 05-12-2018 в 05:23:

Цитата:
Дядя Миша писал:
Но для меня эти задачи не представляют интереса.

Может быть в будущем интерес появится. Ты же много чего, реализованного в рамках ксаша, изначально не планировал. Тут, конечно, немаловажную роль играет заинтересованность в самих играх, ведь ку2 тебе не нравится настолько, насколько ку1. А вот ку3 вообще не надо делать, даже если захочется, ящитаю. Во-первых, там ничего интересного и приятного нет в этой игре (УТ лучше), во-вторых, форков куча и есть даже АБСОЛЮТНО свободная версия игры со свободными ресурсами, OSP кажется.


Отправлено ~ X ~ 05-12-2018 в 10:20:

Кстати, попробую-ка запилить материал с 0 friction - посмотрю, что будет... А то вдруг и func_friction не нужен Хотя, для совместимости всё равно придётся оставить.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 05-12-2018 в 17:45:

Цитата:
Ku2zoff писал:
Может быть в будущем интерес появится.

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

Вообще-то именно что планировал.

Добавлено 05-12-2018 в 20:45:

Цитата:
~ X ~ писал:
Кстати, попробую-ка запилить материал с 0 friction - посмотрю, что будет...

Ничо не будет. физика не учитывает фрикшен в эдиктах. Но её туда конечно можно будет добавить.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ~ X ~ 06-12-2018 в 08:24:

Дядя Миша причём тут эдикты? я про материалы. А фрикшен в эдиктах в XDM учитывается, кстати. Но только у игроков, увы.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 06-12-2018 в 16:49:

А, ну в материалах можно намутить будет.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 17-03-2019 в 10:02:

Government-Man по поводу первого поста темы

Цитата:
Government-Man писал:
Сделал у себя так же. С трением все замечательно - игрок тормозит и скользит с разбегу очень похоже на то, как это происходит в хл1. А вот с ускорением проблема - оно слишком резкое: чуть дотронешься до клавиши, а игрок уже отлетает на приличное расстояние. И на поворотах его заносит.

Реализация ускорения у меня такая же как в PM_Accelerate, поэтому у меня две версии происходящего:

1. Значение sv_accelerate прежде чем попасть в PM_Accelerate домножается на какое-то другое значение, которое делает его меньше.
2. cmd.forwardmove и cmd.sidemove изменяются при нажатии клавиш не резко, а плавно.

Там по-моему так и было. Была функция которая в начале, в середине, и в конце кадра проверяет было ли KeyDown(), и в зависимости от результата домножает скорость на 0, 0.25, 0.5, 0.75 или 1.
XaeroX помню твою просьбу но тут впосле конкретный вопрос и я не думаю что ради этого можно делать новую тему.


Отправлено Дядя Миша 17-03-2019 в 17:14:

Цитата:
Crystallize писал:
Была функция которая в начале, в середине, и в конце кадра проверяет было ли KeyDown()

почему ты решил что состояние клавиш считываются в начале, середине и конце кадра?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 18-03-2019 в 05:15:

Дядя Миша ну там были комментарии типа "кнопка отжата, потом нажата, потом снова отжата" итп, я так перефразировал. Вы так буквально воспринимаете всё, это непривычно.

Добавлено 18-03-2019 в 12:15:

Я думаю там просто копится массив значений и потом берутся крайние.


Отправлено nemyax 18-03-2019 в 05:38:

Цитата:
Crystallize писал:
Я думаю там просто копится массив значений и потом берутся крайние.

Если нужны крайние значения, то зачем копить массив? =)


Отправлено Crystallize 18-03-2019 в 06:37:

Цитата:
nemyax писал:
Если нужны крайние значения, то зачем копить массив? =)

Ну может есть проблема поймать реально последнее значение за кадр.


Отправлено Дядя Миша 18-03-2019 в 07:15:

Цитата:
Crystallize писал:
Вы так буквально воспринимаете всё, это непривычно.

Непривычное Скаарж в привате предлагает!

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 16:29.
Показать все 40 сообщений этой темы на одной странице

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