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

Doom Rate: 3.7

Posts quality: +235
Ссылка на пост №21 Отправлено: 05.01.17 15:15:12
StasBFG[iddqd]

Да, имелось в виду полная эмуляция, тоесть, и исполняемого файла, и его iwad.
А вообще здорово, даже не знал про такие заморочки с сетевой игрой.

Кстати, вот очень занятный баг с бронёй в версии 1.2, который эмулируется в prboom-plus:
https://www.youtube.com/watch?v=NIO-lQROZoM


Ещё немного технических разностей по Chocolate 3.0:

Для шрифтов библиотеки libtextscreen (которая отвечает за отрисовку текста в setup.exe, экранах ENDOOM и графической загрузки Heretic и иже с ним) теперь не нужно мучаться с 512и строчным шестнадцатиричным массивом чтобы рисовать буквы попиксельно и кодировать их обратно - теперь используется простой шрифтовой PNG атлас, в котором достаточно перерисовать нужные символы, и с помощью скрипта Python закодировать атлас в массив. Для пользователей это ничего не меняет, всё останется "как есть", а вот для вопроса локализации - это ОГРОМНЫЙ шаг вперёд, о котором Саймон говорил в нашей переписке летом 2016го. Страшно вспоминать, сколько я в своё время намучался с переводом шрифта этой библиотеки... Теперь редактирование этого шрифта чем-то напоминает редактирование шрифтов для ZDoom, только границы символов фиксированные (скриншот-пример).

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

Насчёт "бульканья" звука пока не знаю, нужно продолжительное тестирование.

P.S.

Если вдруг кому-то интересно как выглядит текущая пред-релизная версия 3.0, по состоянию на 05.01.2017, я сделал простую сборку:
http://jnechaevsky.users.sourceforge.net/files/chocolate-doom-sdl2-branch-05.01.2017.zip (1.7 MB, отчёт VirusTotal).
1 6 5
PVS
- Master Corporal -
Next rank: = Master Corporal = after 36 points
204

Doom Rate: 2.02

Posts quality: +3
Ссылка на пост №22 Отправлено: 06.01.17 03:01:41
Kilian:
Насчёт "бульканья" звука пока не знаю, нужно продолжительное тестирование.

На 3.0 (SDL2, на сколько понял) - звук так же заикается у тебя или нет?
На последней 2.3.0 - у меня SFX как заикался/булькал - так и булькает дальше.
StasBFG[iddqd]
-= DoomGod =-
Админ форумаАдмин сайта
2436

Doom Rate: 2.27

Posts quality: +6
Ссылка на пост №23 Отправлено: 06.01.17 12:30:45
Kilian:
И то, что сейчас лежит на GitHub уже прекрасно компилируется и работает без замечаний.

Почему-то при сборке через Visual Studio, *-setup.exe крошится при определённых действиях. Это было и в 2.2.1, а начиная с 2.3.0 перестала собираться 64-битная версия.
Может, из за того что им по каким-то причинам удобнее/привычнее использовать MinGW для винды, они перестали обновлять проектные файлы в msvc каталоге?
Или это к SDL2 ветке не относится? Хотелось бы чтоб разрабы исправили.
1 1 2
Julian Nechaevsky
- Sergeant Major -
Next rank: = Sergeant Major = after 16 points
584

Doom Rate: 3.7

Posts quality: +235
Ссылка на пост №24 Отправлено: 06.01.17 15:09:24
StasBFG[iddqd]

Почти всё так. Кто-то из команды разработчиков рассказывал в IRC, что Саймон делает релизные сборки для Windows через кросс-компиляцию MinGW из под Linux. Возможно, у него "пунктик" на непривязанность компиляции к проприетарным средам для сборки, но не суть.

Setup.exe для SDL-2 не собирается или крашится на моментах "TXT_NewConditional" и "TXT_lf" как раз из за того, что не обновлены файлы проектов как для MSVC, так и для CodeBlocks. В CodeBlocks проблема решилась добавлением в textscreen следующих файлов:

- \textscreen\txt_conditional.c в Sources
- \textscreen\txt_conditional.h в Headers


Аналогично и для MSVC. После добавления нужно полностью пересобрать библиотеку textscreen и setup.exe скомпилируется без проблем.
Единственное что, при компиляции в MSVC, у меня при открытии setup.exe появляется консольное окно с предупреждениями, с CodeBlocks такой проблемы нет, да и для меня он как-то попроще, в нём и делал сборку из предыдущего поста.

Про 64-х битную версию ничего не могу сказать, т.к. собирать не пробовал за ненадобностью.

В Linux этой проблемы, соответственно, нет.


* Версия хоть и числится как 2.3.0, по сути это пре-3.0.



PVS

Вроде бы бульканье пропало, но я пока по долгу не играл. Мне всё-таки кажется, это была проблема SDL-1, как и писалось ранее.
1 6 5
Julian Nechaevsky
- Sergeant Major -
Next rank: = Sergeant Major = after 16 points
584

Doom Rate: 3.7

Posts quality: +235
Ссылка на пост №25 Отправлено: 24.01.17 21:13:07
В первое сообщение добавлена ссылка на автоматические сборки, создаваемые при каждом внесённом изменении в исходные коды:
http://latest.chocolate-doom.org

Представлены сборки с SDL-1 (раздел "Downloads"), сборки с SDL-2 (раздел "sdl2-branch downloads"), а так же сборки форка Crispy Doom.
1 6 5
Julian Nechaevsky
- Sergeant Major -
Next rank: = Sergeant Major = after 16 points
584

Doom Rate: 3.7

Posts quality: +235
Ссылка на пост №26 Отправлено: 05.02.17 10:26:06
Обновили в сборщике библиотеку SDL-2 с версии 2.0.4 до актуальной 2.0.5.

Если у кого-то были проблемы с "хрипящим звуком" на Windows в дистрибутивах sdl2-branch с latest.chocolate-doom.org, просьба перекачать архив. Теперь всё должно работать нормально. Дополнительная техническая информация в трекере на GitHub.
1 6 5
Julian Nechaevsky
- Sergeant Major -
Next rank: = Sergeant Major = after 16 points
584

Doom Rate: 3.7

Posts quality: +235
Ссылка на пост №27 Отправлено: 30.11.17 00:59:26
Итак, не прошло и года, пора осветить некоторые вести с Шоколадно-портодельчиских полей.

По сути, за год мало что изменилось. Несмотря на свою стабильность, версия 3.0 всё ещё находится в состоянии Beta и так и не вышла полноценном релизом. Изменения в коде происходят крайне редко и не значительно, но радует то, что все изменения исключительно технические, ни коим образом не затрагивающие геймплей - порт ведь ориентирован на полную совместимость/идентичность оригинальным версиям для DOS.

Из интересного: реализован немного улучшенный сетевой протокол, который, по идее, должен будет обеспечивать совместимость между версиями 2.3.0 и 3.0+ (должно быть вполне безопасно, т.к. геймплей не меняется от версии к версии). В остальном и целом - ничего нового. Разве что теперь работают джойстики от современной версии игровой приставки Super Nintendo.

У проекта появился ещё один форк - Marshmallow Doom. Основанный на Chocolate и Crispy, он даёт возможность игроку запускать игру в режиме "песочницы", а также в нем реализованы весьма неплохие боты.
1 6 5
andreybalov
Recruit
Next rank: Recruit after 6 points
4

Doom Rate: 2

Posts quality: -3
Ссылка на пост №28 Отправлено: 30.08.18 07:17:34
Кто нибудь знает моды на этот порт, похожие на brutal doom? Играю на ps vita и других хороших портов вроде бы нет, а pk3 он не читает к сожалению

Рейтинг сообщения: -3, отметил(и): [D2D]_Revenant, D1m3, DOOMGABR
[D2D]_Revenant
= Colonel =
Next rank: - Commissar - after 362 points
4528

Doom Rate: 1.55

Posts quality: -19
Ссылка на пост №29 Отправлено: 30.08.18 10:38:46
andreybalov
Какой брутал дум, ты описание к этому порту читал?

Описание
Философией порта является не расширение функционала и добавление новых возможностей геймплея, а напротив - максимально точное воссоздание оригинальных версий игр под DOS (также именуемых "ванильными"). Разработка придерживается строжайших правил не только в плане сохранения исключительного оригинального функционала, но и в принципиальном сохранении багов игр, таких как неменяющееся небо в Doom 2, отсутствие четвёртой демозаписи в Final Doom и многих других.

Рейтинг сообщения: 0, отметил(и): VladGuardian, DOOMGABR
10 2 6
andreybalov
Recruit
Next rank: Recruit after 6 points
4

Doom Rate: 2

Posts quality: -3
Ссылка на пост №30 Отправлено: 01.09.18 15:11:28
Тогда какой есть порт на ps vita, который бы вывозил подобные моды?
Mostcus
= Commissar =
Next rank: - UAC Commissar - after 107 pointsМодератор форумаАдмин сайта
5693

Doom Rate: 2.45

Posts quality: +1350
Ссылка на пост №31 Отправлено: 01.09.18 15:25:14
andreybalov, никакой, увы.
1 2 1
N00b2015
= Sergeant Major =
Next rank: UAC Sergeant Major after 44 points
636

Doom Rate: 2.12

Posts quality: +227
Ссылка на пост №32 Отправлено: 26.12.19 18:38:03
Crispy Doom 5.6.3. Одиннадцатая карта TNT. Чтобы забрать мегасферу на ящиках, нужно получить урон от арчвайла и взлететь. Я встаю в угол между ящиками, но сколько бы он меня ни поджаривал, взобраться на ящики не удаётся.
Как исправить положение? Может, у меня в настройках что-то не так?..
1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 102 pointsМодератор форума
6198

Doom Rate: 1.67

Posts quality: +1562
Ссылка на пост №33 Отправлено: 26.12.19 19:25:13
Я не очень хорошо разбираюсь в тнт, ванилле и шоколадке, но насколько мне известно чтобы куда-то запрыгнуть арчджампом где-либо кроме здума, нужно не стоять, а заранее бежать в нужном направлении... :shock:
Но это неточно.
2 2 1
Black_Raven
Marine 1st class
Next rank: - UAC Gunner - after 1 points
39

Doom Rate: 3

Posts quality: +6
Ссылка на пост №34 Отправлено: 17.09.21 12:50:17
Здравствуйте.

Несколько лет назад пришёл к выводу, что для каждого вада лучше играть на тех версиях игры/порта, для которых он изначально разрабатывался, тем самым получая максимально аутентичный авторской задумке игровой процесс и минимальное число ошибок. Из этого следует, что оптимальной средой для игры в Doom 2 является оригинальная DOS-версия, причём 1.666. И всё бы хорошо, но в ней есть три бага, которые лично мне мешают получить удовольствие от игры. Первый: деактивация монстров после загрузки сохранения. Лечится использованием версии dosbox с возможностью сохранения, но тут всплывает второй баг: небо между эпизодами меняется только после загрузки сохранения. Этот баг лечится уже только в chocolate doom (ну и других портах, разумеется, но те уже не соответствуют критерию аутентичности), но там наличествует первый баг. Впрочем, оба бага лечатся в crispy doom, и нормальную пиксельную графику там также возможно вернуть. Про crispy doom и пойдёт речь. Отдельной темы про этот порт нет, но так как он указан в списке в первом посте, то я посчитал, что данная тема предназначена для вопросов не только по оригинальному порту, но и по его форкам. Прошу прощения, если ошибся.

Мною выше было упомянуто три бага. Третий баг: некоторые карты Doom 2, Evilution и других вадов, сделанных именно под ваниль, не учитывают лимит потерянных душ. например, map09 Doom 2 и map28 Evilution. Соответственно, задумка карт ломается, и лимит следует расширить. В crispy-doom нет такой опции, но есть доступные исходники, отредактировав которые можно расширить данный лимит. За это отвечает файл p_enemy.c в папке \src\doom\, формула лимита if (count > 20). Соответственно, я поменял 20 на 9999 и откомпилировал исходники, хотя по сути это было просто бездумным выполнением инструкции, так как я никогда подобным раньше не занимался, и полез туда только потому, что при всём разнообразии портов практически не найти такого, который бы правил баги и при этом не менял игровой процесс. В итоге у меня получился экзешник, который почему-то в четыре с половиной раза тяжелее оригинального, но свою задачу он выполняет, и пейны исправно рождают соулов. Как уже писалось выше, с программированием я до этого дел не имел, так что мне вполне достаточно того, что работает.

Думаю, я не единственный человек, которому было бы интересно поиграть с расширенным лимитом соулов при аутентичном игровом процессе, и при этом не особо разбирающийся в программировании, поэтому выкладываю результат: [удалено] Версия порта: 5.10.3 Присутствует только исполняемый файл, поэтому для работы требуется папка с оригинальный портом соответствующей версии, куда и надо скопировать файл. И да, он тяжёлый (почти пять с половиной мегабайт против одного с хвостиком из оригинальной компиляции). Выкладываю с тремя целями. Первая: просто облегчить жизнь людям с аналогичными моим запросами. Вторая: вдохновить кого-нибудь реально в этом разбирающегося сделать моему кривому выбросу нормальную замену. И третья: получить отзывы о работоспособности, так как я сейчас тестировал его только на map28 Evilution. В частности, я не знаю тип переменной, в которой проверяется число душ, так что вовсе не уверен, что их лимит теперь действительно 9999, а не какое-то другое число.

Благодарю за внимание.

P.S. Скорее всего большинство посетителей форума не имеет проблемы с редактурой и компиляцией исходников, и им данное сообщение может показаться лишним, так как кому надо, тот и сам сделает, тем более так криво. Но лично мне понадобился не один год прежде, чем я всё-таки решился сделать сам, и я вполне допускаю, что не один такой, потому и публикую данное сообщение.
1
theleo_ua
Lieutenant Colonel
Next rank: - Colonel - after 378 points
3662

Doom Rate: 1.84

Posts quality: +655
Ссылка на пост №35 Отправлено: 17.09.21 12:57:17
Black_Raven, чем Russian Doom не устраивает?

Рейтинг сообщения: +2, отметил(и): VladGuardian, Black_Raven
3 1
Black_Raven
Marine 1st class
Next rank: - UAC Gunner - after 1 points
39

Doom Rate: 3

Posts quality: +6
Ссылка на пост №36 Отправлено: 17.09.21 13:37:57
theleo_ua
Ну, во-первых, я о нём и не слышал. Во-вторых, в описании проекта акцент сделан на локализации, а дополнительные опции упомянуты мимоходом и без перечисления, поэтому даже знай я о нём раньше, то на основании данной информации качать бы проект не стал. Сейчас я его скачал только из-за вашего сообщения, и да, там можно как вернуть оригинальный английский язык, так и настроить лимит потерянных душ. Но, как продемонстрировано на моём примере, человеку, которого локализация не интересует, легче самому разобраться в компиляции исходников, чем наткнуться на этот порт и догадаться, что он уже содержит решение его проблемы. Я долго искал готовые решения, но находились только порты, искажающие игровой процесс. Тогда свой файл я удаляю. Но всё это было не зря, так как без сообщения выше я бы и не получил ваш ответ, за который вам огромное спасибо.

Рейтинг сообщения: +1, отметил(и): theleo_ua
1
theleo_ua
Lieutenant Colonel
Next rank: - Colonel - after 378 points
3662

Doom Rate: 1.84

Posts quality: +655
Ссылка на пост №37 Отправлено: 17.09.21 14:09:47
Black_Raven, будут вопросы о порте RD, спрашивай в теме порта или у меня на сервере в дискорде на канале #russian_doom_обсуждение_порта (мы там постоянно обсуждаем нюансы и идеи развития порта с его ключевыми разработчиками, например сейчас обсуждаем, нужно ли оставлять скрины загрузки хексена и еретика (в хексене там косточки снизу заполняются ) )

Рейтинг сообщения: +1, отметил(и): VladGuardian
3 1
Julian Nechaevsky
- Sergeant Major -
Next rank: = Sergeant Major = after 16 points
584

Doom Rate: 3.7

Posts quality: +235
Ссылка на пост №38 Отправлено: 17.09.21 19:51:28
Black_Raven

Озвучены интересные моменты, я с радостью подробно отвечу на них. Вообще, желание покопаться в исходниках, поразбираться что и как там устроено, т.е. как "живёт" игровой мир, и желание что-то поменять и посмотреть что будет - очень хорошее, это "хакинг" в его правильном понимании. Но осторожно, это может крепко затянуть - даже не умея программировать, некоторые вещи в коде можно понять интуитивно, и по мере разбирательства, с некоторой долей фанатизма, придёт и понимание программирования. Не полное конечно, для этого нужно учиться, а именно интуитивное. Автор Chocolate Doom Саймон Говард мне однажды сказал замечательные слова: "Every programmer starts from nothing!".

Chocolate/Crispy Doom идеально подойдут для начала изучения, т.к. код там максимально оригинальный, игровая механика сохранена на 100%. У меня с этого всё когда-то началось, но это совсем другая история. Итак, по багам:

1) Агрессивность/цели монстров не сохраняются ни в 1.9 для DOS, не в более поздних версиях (WinDoom, Anthology, BFG, Unity edition). Имелась в виду какая-то отдельная версия, где агрессия/цели сохранялись?

2) Поведение бага с текстурой неба в Chocolate Doom полностью идентично версии для DOS - текстура изменится только после загрузки/сохранения. Это актуально как для Doom 2, так и для Plutonia/TNT. Баг будет исправлен только в Anthology Edition и в последующих (пере)изданиях. У меня нет EXE-шника антологии чтобы точно проверить, но в теории можно просто пропатчить версию 1.9 до какой-то более новой, патчи есть в репозитории: https://github.com/Doom-Utils/iwad-patches/tree/master/doom2.wad Правда, я за ненадобностью это не пробовал.

3) Касательно лимита душ у элементалей. Цифру 20 можно увеличивать практически как угодно, но в разумных пределах. Но тут нужно понимать несколько важных моментов:
- Оригинальная механика подразумевала этот лимит. Его увеличение - это "народное творчество", хотя и абсолютно понятное.
- У разных движков разное количество одновременно отображаемых спрайтов. У Chocolate это 128 по аналогии оригиналу, у Crispy это 4096. Практически во всех остальных лимита нет.
- Самое важное: просто увеличить лимит для одиночной игры можно и это безопасно. Но для НЕ одиночной игры (подразумевая сетевую игру, воспроизведение и запись демок) это совсем не безопасно. В сетевой игре будет рассинхронизация, если у одного игрока лимит есть, а у другого нет. С демозаписями примерно такая же ситуация. Поэтому в плане Crispy, технически безопасным решением будет такой код:

    if (!demoplaying && !demorecording && !netgame)
    {
        // Не спавнить более 10240 соулов в одиночной игре
        if (count > 10240)
        return;
    }
    else
    {
        // if there are allready 20 skulls on the level,
        // don't spit another one
        if (count > 20)
        return;
    }


Да, по личному опыту могу сказать, что для сохранения совместимости с оригинальными демозаписями практически на любое изменение игровой механики нужно вот такое условие: "в одиночной игре делаем как считаем нужным, в остальных случаях делаем как в оригинале".

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

cd src
strip *.exe


Если используется музыка в формате MIDI, то предварительно необходимо в папку "src" перенести файл crispy-midiproc.exe.

Рейтинг сообщения: +3, отметил(и): VladGuardian, theleo_ua, Black_Raven
1 6 5
Black_Raven
Marine 1st class
Next rank: - UAC Gunner - after 1 points
39

Doom Rate: 3

Posts quality: +6
Ссылка на пост №39 Отправлено: 29.09.21 02:02:42
Julian Nechaevsky

Спасибо, что обратили внимание на моё сообщение и дали разъяснения. Прошу прощения за поздний ответ, на форум захожу редко, и, честно говоря, просто не думал, что ответит кто-то ещё.

1) Лично я версии без сброса агрессивности не находил. Да и даже если бы такая была, сохранялась бы проблема с вадами, предназначенными для более ранних версий. Помню, в 21ratmaz демка нормально проигрывалась только на версии 1.1, даже на 1.2 был уже рассинхрон, что указывает, что данный вад создавался для самой первой версии, ну и какой смысл в лечении на более поздних версиях, где игровой процесс уже изменён? Имелась в виду не версия игры с нормальными сохранениями, а использование внешних программ, в данном случае: версия dosbox с vogons со встроенной функцией save/load state.

2) chocolate-doom у меня был срезан уже по сохранениям, поэтому небо на нём не проверял. Значит, уже только в crispy-doom поправили, как и сохранения. Правда, один баг с сохранениями остался: целевая точка спаунера монстров не сохраняется, и после каждой загрузки последовательность начинается заново с первой.

3) Что подразумевала оригинальная механика - вообще непонятно, так как выше уже упоминались карты оригинала и как бы официального дополнения, которые эту оригинальную механику игнорировали, из-за чего работали неправильно. Разумеется, есть ванильные вады, которые с расширенным лимитом будут работать некорректно (хрестоматийный пример с Hell Revealed), но именно к оригинальным картам это, насколько мне известно, не относится, там скорее обратная ситуация. Возможно, с 9999 я загнул, но хотя бы до полусотни расширить точно стоит. Это, конечно, ошибка авторов карт (по крайней мере, в Evilution, так как лимит мог быть введён уже после создания map09 в Doom2), но ведь задача именно проходить карту на условиях, соответствующих задумке автора, даже если задумка базируется на ошибочных представлениях о механике игры. Например, для некоторых старых карт было бы неплохо ввести опцию с временным берсерком. И убрать ускорение по диагонали.

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

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