Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Russian Doom Пред.  1, 2
   Список разделов - Doom и его порты - Russian DoomОтветить
АвторСообщение
Black_Raven
= Lance Corporal =
Next rank: - Master Corporal - after 29 points
171

Doom Rate: 2.9

Posts quality: +46
Ссылка на пост №21 Отправлено: 23.03.24 23:34:29
Здравствуйте. Столкнулся с ситуацией, когда косметическое удобство оказалось конфликтующим с вадом. Речь идёт про ситуацию с заменой звука подбора ключа. Замена звуков - не самая популярная вещь в вадах, но встречается, особенно в старых. Можно ли ввести настройку с мигающим ключом при попытке активации закрытой двери? Некоторые варианты звуков подбора ключа к данной ситуации откровенно не подходят.

Также, возможно ли ввести настройку с возвращением эффекта "зеркала" (https://doomwiki.org/wiki/Hall_of_mirrors_effect ), который раньше также порою использовался намеренно?

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

P.S. Прошу прощения за кучу "хотелок", но они не из пустоты взяты, а из реального игрового опыта с реальными вадами.

Рейтинг сообщения: +1, отметил(и): theleo_ua
1 1
Dasperal
= Lance Corporal =
Next rank: - Master Corporal - after 30 points
170

Doom Rate: 2.62

Posts quality: +38
Ссылка на пост №22 Отправлено: 24.03.24 17:57:32
Black_Raven

Проблему с конфигом воспроизвести так и не получилось. И я даже не представляю как может сохраниться / прочитаться только часть изменений.

Проблему с пропадающими линиями получилось воспроизвести: она возникает когда отключено сглаживание и размер области рендера достаточно маленький (У меня это только в оконном режиме с размером окна около 945 на 533 и меньше).
В качестве решения можно включить сглаживание. В RD оно на мой взгляд почти незаметное, в отличие от адового мыла в GZDoom.

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

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

Про хомы: Думаю опцию сделать можно, но мне для этого надо разобраться в рендере. Я пока не знаю даже как хомы фиксить там где их явно быть не должно. Записал.

Про звуки и мигающее ключи: Да, можно сделать опцию, записал.

Рейтинг сообщения: +1, отметил(и): theleo_ua
1
Black_Raven
= Lance Corporal =
Next rank: - Master Corporal - after 29 points
171

Doom Rate: 2.9

Posts quality: +46
Ссылка на пост №23 Отправлено: 24.03.24 21:38:08
Desperal

Большое спасибо за ответ. Я играю на низком разрешении, так что, проблема, очевидно, в этом.

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

И ещё отдельно по поводу оригинальной механики и совместимости с демками. Уже не в первый раз слушаю аргумент про демки и не могу не ответить, что просмотр и запись демок - это далеко не единственное, для чего люди могут запускать Doom. Да, несовместимость карты с оригинальной механикой - ошибка автора карты, но страдают не авторы, которые выпускали эти карты 30 лет назад и уже давно про них забыли, страдают игроки, у которых нет подходящих для данных карт настроек совместимости. Мне видится вполне логичным разделение, что есть дефолтные настройки для ценителей демонстраций и есть возможность их менять для тех, кого интересует именно авторская задумка. Почему одно должно идти в ущерб другому? Если невозможно скрестить ужа с ежом (сиречь, совместить синхронизацию демок со следованием задумке автора карты), то пусть они сидят по отдельности, зачем одного из них обязательно выпиливать? Замечу, что это сказано скорее по теме в общем, нежели именно вам, так как слишком часто такое соображение приводится разными людьми в разных местах, хотя перед глазами есть прекрасный пример того же оригинального Boom, где всё это замечательно соседствовало, и где соображения совместимости с демками не помешало ввести кучу новых геймплейных опций, а это, в свою очередь, не помешало некоторым ответвлениям Boom считаться многими "портами для демок".

Рейтинг сообщения: +1, отметил(и): theleo_ua
1 1
Black_Raven
= Lance Corporal =
Next rank: - Master Corporal - after 29 points
171

Doom Rate: 2.9

Posts quality: +46
Ссылка на пост №24 Отправлено: 11.04.24 20:58:49
Dasperal пишет:
Проблему с конфигом воспроизвести так и не получилось. И я даже не представляю как может сохраниться / прочитаться только часть изменений.


А у меня снова воспроизвелась... Попробуйте повыходить с разными языками. Сбрасываются настройки громкости (что сразу выдаёт сброс даже без захода в меню), чувствительность мыши и настройки геймплея, плюс некоторые отдельные строчки в других местах. Да, добавлю, что у меня в геймплее установлена ваниль (самая первая строчка), возможно, тоже влияет, помнится, в старых версиях в ванильном режиме тоже были свои личные сбои... И ещё уточняю, что ошибка происходит только один раз на свежераспакованном архиве после нескольких запусков.
1 1
theleo_ua
= Colonel =
Next rank: - Commissar - after 96 points
4794

Doom Rate: 1.8

Posts quality: +1032
Ссылка на пост №25 Отправлено: 03.05.24 08:19:22
Black_Raven пишет:
А у меня снова воспроизвелась... Попробуйте повыходить с разными языками. Сбрасываются настройки громкости (что сразу выдаёт сброс даже без захода в меню), чувствительность мыши и настройки геймплея, плюс некоторые отдельные строчки в других местах. Да, добавлю, что у меня в геймплее установлена ваниль (самая первая строчка), возможно, тоже влияет, помнится, в старых версиях в ванильном режиме тоже были свои личные сбои... И ещё уточняю, что ошибка происходит только один раз на свежераспакованном архиве после нескольких запусков.


напиши конкретные шаги плз в таком формате:

шаг 1: берем свежераспакованный архив порта
шаг 2: кидаем в папку распакованным портом такой конфиг (здесь ссылка на твой конфиг)
шаг 3: запускаем порт
шаг 4: смотрим опции громкости
шаг 5: меняем язык на русский
шаг 6 ...

вот в таком подробном формате распиши шаги для воспроизведения. И убедись, что у тебя по этим шагам воспроизводится
3 1
Black_Raven
= Lance Corporal =
Next rank: - Master Corporal - after 29 points
171

Doom Rate: 2.9

Posts quality: +46
Ссылка на пост №26 Отправлено: 05.05.24 01:19:46
theleo_ua

Боюсь, список будет коротким.

Запускаю первый раз с отсутствующим ini.
Выставляю музыку на 15 и выхожу.
Потом вхожу и выхожу несколько раз.
На пятый раз (с учётом самого первого) музыка возвращается на 8.

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

Сравнил файлы ini через hex после первого и второго запуска без изменения настроек во время второго, и замена действительно есть, что-то там подсчитывается... и этот подсчёт, видимо, и влияет у меня на сброс во время пятого запуска. Если защитить файл ini от записи после четвёртого выхода, то музыка будет 8 при каждом запуске несмотря на music_volume = 15 в ini.

Уточнил, прыгает значение параметра player_name. Вот его значение после первого запуска:
Скрытый текст:

player_name = "└фьшэшёЄЁрЄюЁ"


А вот после четвёртого (разбито на две строки, чтобы не было горизонтальной полосы на форуме):
Скрытый текст:

player_name = "тХд╨ТтХи╨┤тХи╨┤╤В╨е╨┤тХи╨д╤В╨е╨┤тХи╨м╤В╨е╨┤тХи╨и╤В╨е╨┤тХи╨н╤В╨е╨┤
тХи╨и╤В╨е╨┤тХи╨▒╤В╨е╨╕тХи╨д╤В╨е╨╕тХи╨б╤В╨е╨┤тХи╨а╤В╨е╨╕тХи╨д╤В╨е╨┤тХи╨о╤В╨е╨╕тХи╨б"


В hex это 360 знаков против 27 (форум срезал длинные пустые промежутки, плюс некоторые байты просто не отражаются в текстовом виде). После же пятого запуска значение сводится к player_name = """ (дополнительные кавычки) и больше не меняется. Если же во время первых запусков в имени что-то прописать, даже те же кавычки, оно всё-равно начнёт потом скакать. Уточнение, после переименования параметра в текстовом редакторе перед config_version в hex появляются дополнительные байты, невидимые в тексте (до переименования их нет), если их удалить, то дальнейших изменений не будет. Переименование параметра в уже стабильном ini никаких дополнительных байт не влечёт.

Немного домыслов: учитывая увеличение длины имени с каждым запуском (до пятого включительно), есть подозрение, что где-то что-то переполняется, отсюда может происходить и сброс только некоторых параметров, информация о которых находится именно на затрагиваемом участке памяти, по крайней мере, в самом ini громкость идёт уже после имени игрока, и выше я уже писал, что сбрасывается не только громкость музыки, но и многие другие настройки, просто изменение громкости музыки очевидно сразу после запуска игры, поэтому и привёл именно её, собственно, находящийся вплотную к проблемному участку параметр libsamplerate_scale сбрасывается уже при втором запуске и так каждый запуск до пятого включительно.

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

Рейтинг сообщения: +1, отметил(и): theleo_ua
1 1
theleo_ua
= Colonel =
Next rank: - Commissar - after 96 points
4794

Doom Rate: 1.8

Posts quality: +1032
Ссылка на пост №27 Отправлено: 05.05.24 12:49:59
Black_Raven пишет:
форум срезал длинные пустые промежутки


юзай тег code (кнопка справа от quote)
3 1
Black_Raven
= Lance Corporal =
Next rank: - Master Corporal - after 29 points
171

Doom Rate: 2.9

Posts quality: +46
Ссылка на пост №28 Отправлено: 05.05.24 16:51:21
theleo_ua пишет:
юзай тег code (кнопка справа от quote)


Учту такую возможность, но в конкретно данном случае он особо и не нужен, динамика изменения имени и так показана, а куча пробелов сама по себе ни о чём не скажет, тут правильнее сам hex-код давать, который за этими пробелами стоит.
1 1
Dasperal
= Lance Corporal =
Next rank: - Master Corporal - after 30 points
170

Doom Rate: 2.62

Posts quality: +38
Ссылка на пост №29 Отправлено: 11.05.24 14:45:26
Black_Raven
Спасибо за исследование!

Суть следующая:
"player_name" инициализируется именем пользователя в винде (а именно содержимым переменных окружения "USER" или "USERNAME"). Винда выдаёт эти значения в OEM кодировке (windows-1251 для России) по этому их надо сконвертировать в UTF-8.
Вот только эта конвертация происходила при каждом запуске, а не только при чтении из переменных окружения. На английские символы это не влияет, а вот остальные в UTF-8 занимают больше места чем в OEM. В итоге получается растущая с каждым запуском строчка.
Когда строка достигает критической длинны, об неё ломается парсер конфига и не может прочитать оставшуюся часть секции конфига, соответственно она сбрасывается на дефолтные значения.

Дополнительные байты в начале текста после сохранения в редакторе - это BOM. Возникают они потому что редактор определяет кодировку как "UTF-8 с BOM". Порт такую кодировку читать не умеет, поэтому надо сохранять файл конфига в кодировке "UTF-8 без BOM"

Конвертацию я исправил. Правда в её результате всё равно получается какой-то мусор, а не UTF-8 строка соответствующая OEM строке. Да и выводить UTF-8 строки порт пока не умеет. Буду с этим разбираться при добавлении полноценной поддержки UTF-8.
Проблемы с длинными строками и BOM буду исправлять во время переписывания парсера конфига, это вторая по приоритету задача на следующую (6.5) версию.

Рейтинг сообщения: +1, отметил(и): theleo_ua
1
theleo_ua
= Colonel =
Next rank: - Commissar - after 96 points
4794

Doom Rate: 1.8

Posts quality: +1032
Ссылка на пост №30 Отправлено: 12.05.24 10:02:37
Dasperal пишет:
Спасибо за исследование!


Как ты узнал что проблема именно в рус имени пользователя? Black_Raven предоставил тебе конфиг?
3 1
Black_Raven
= Lance Corporal =
Next rank: - Master Corporal - after 29 points
171

Doom Rate: 2.9

Posts quality: +46
Ссылка на пост №31 Отправлено: 14.05.24 00:21:52
Dasperal
Может, не брать имя из системы? В принципе, для сингловиков имя пользователя вообще не критично, и там может стоять какой-нибудь дефолтный "doomer", а для мультиплеера, во-первых, половина участников при таком раскладе будет администраторами (на том или ином языке), а во-вторых, светить имя профиля системы публично далеко не для всех приемлемо.

Рейтинг сообщения: +1, отметил(и): theleo_ua
1 1
Dasperal
= Lance Corporal =
Next rank: - Master Corporal - after 30 points
170

Doom Rate: 2.62

Posts quality: +38
Ссылка на пост №32 Отправлено: 19.05.24 15:14:10
theleo_ua пишет:
Как ты узнал что проблема именно в рус имени пользователя? Black_Raven предоставил тебе конфиг?


Прочитал в сообщении Black_Raven что параметр player_name инициализируется каким-то мусором.
Посмотрел в своём конфиге и увидел там свой ник, хотя его туда никогда не писал.
Посмотрел в коде, что с этим параметром происходит. Увидел чтение из переменных окружения и конвертацию OEM в UTF-8 с кривым условием.
Английский язык в ASCII и UTF-8 кодируется одинаково и занимает 1 байт на символ. А вот русский в windos-1251 занимает 1 байт на символ, а в UTF-8 уже 2 байта. Отсюда и растущая строка. А мусор там потому что конвертация не праильно работает.

Black_Raven пишет:
Может, не брать имя из системы? В принципе, для сингловиков имя пользователя вообще не критично, и там может стоять какой-нибудь дефолтный "doomer", а для мультиплеера, во-первых, половина участников при таком раскладе будет администраторами (на том или ином языке), а во-вторых, светить имя профиля системы публично далеко не для всех приемлемо.


Винда же спрашивает имя пользователя при создании учётки, неужели туда все осознанно пишут "Администратор"? Но наверное ты прав, убрал инициализацию и оставил "Player" по умолчанию.

Рейтинг сообщения: +1, отметил(и): theleo_ua
1
Страница 2 из 2Перейти наверх Пред.  1, 2
   Список разделов - Doom и его порты - Russian Doom