![]() |
Страницы (2): [1] 2 » Показать все 27 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Нужно ли сохранять совместимость Paranoia 2 c Half-Life? (https://hlfx.ru/forum/showthread.php?threadid=4344)
Нужно ли сохранять совместимость Paranoia 2 c Half-Life?
Здравствуйте форумчане! По старой традиции, любые споры и дилеммы - разрешаются благодаря общественному мнению на форуме.
Перейду сразу к теме:
все мы давно знаем что работа на Paranoia 2 перекатила на Xash3D. Сей движок дал неописуемый скачок в прогрессе и преодалении ограничений древнего GoldSource. К сожалению, периодически возникают споры с Дядей Мишей касательно удобства работы с движком (вполне нормальная ситуация для процесса разработки с автором).
Предмет спора: сохранение "компатибильности" с Half-Life. Желание сохранить совместимость на первый взгляд кажется вполне нормальной политикой движка, но не без глупых проблем и ограничений, как в итоге показала практика во время работы.
Суть: в отличии от первой Паранои - вторая имеет ряд фундаментальных улучшений в визуальном плане. Но не все так гладко как хотелось бы (вполне нормальная ситуация для процесса разработки).
Параноя 2 имеет бамп для моделей, что делает модельки одним цельным материалом с окружающим брашевым миром.
Последний месяц нормалки лежали по адресу: base/textures/studio/....*tga
Тоесть - в руках у нас пулемет Печенег (текстура weapon_pecheneg.bmp в модели) и weapon_pecheneg_norm.tga, weapon_pecheneg_gloss.tga за выше указанным адресом. Тоесть, ВСЕ модели в игре которые имеют этот пулемет - будут запрашивать base/textures/studio/weapon_pecheneg_norm.tga
Эт понятно надеюсь.
Тестируя игру - мы наблюдали глюки связанные с некрасивым извращением текстуры, например на Полине. Все дело в том, что одна из текстур модели Полины имеет название legs.bmp и точно такое же название имеет текстура на старой модели клона, тоже legs.bmp. Тоесть обе текстуры движок старается проявить - в итоге пурга получается.
Объяснил Дядь Мише - что в папке с моделями осталось много старых моделей из первой Паранои. Вот они и создают коллизию имен. Но не считаю это проблемой, т.к. всеравно модельки будут иметь измененные названия текстур, а старые модельки будут удалены.
Вместо этого решения, Дядь Миша, представьте себе, не спрашивая меня - сообщил что изменил систему адресов для нормалок и спекулярок для моделей, чтобы избежать коллизии.
Что он сделал: в папке textures вы создаете папку с названием вашей модели (напр. v_aks), забрасываете туда weapon_aks_norm.tga, weapon_aks_gloss.tga, player_hands_gloss.tga, player_hands_norm.tga, player_sleeves_norm.tga.
Теперь представим себе, что у нас например 18 стволов, и у каждого одни и те же руки. Получается: три материала одной и той же руки с рукавом раскладываем по 18-ти папкам, 3 умножить на 18 = 54 дублированных файла *tga. И это всего лишь на примере рук!!! Не хочется думать сколько нужно будет дублировать файлов для моделек труб на картах и других пропсов.
Дядь Миша утверждает - это единственное решение проблемы с коллизией названий текстур в модельках, при этом сохранив совместимость с Half-Life.
Кстати, еще один пример последствий желания сохранить совместимость:
раньше в параное документы строились спрайтами, а сейчас цельным *tga (с ним легче лаботать). Как известно - *tga имеет свойство сохранять альфа-канал. Но на практике, вставив фон документа в *tga - обнаружил что плавного перехода от видимой до невидимой части нету. Переход грубой "лесенкой" попиксельно. Точно как в тестурах с 0 0 255 цветом.
Дядь Миша утверждает что совместимость нужно сохранять для того, чтобы любой желающий мог пересобрать P2 - под первую часть. Тоесть, наверняка найдется такой энтузиаст.
Объясняю:
1. Чтобы сделать первую часть на движке второй - достаточно скомпилить карты исходников первой части (которые при желании предоставит BuZZeR) - во вторую.
2. Желание кого-либо портировать первую П на вторую не должно влиять никаким образом на разработку второй.
3. Мы не обязаны во время разработки заботится о желающих сделать первую часть на второй.
Выводы: Параноя 2 - это не Half-Life. Считаю что пытатся сохранять совместимость, это никому не нужное дело. Пытатся сохранить архаично-ностальгические нотки старой игры в проекте в 2014 году - не имеет никакого практического смысла.
И чтобы там не появлялось ультрасовременного в ксаше, после релиза Паранои 2 - широкая публика будет судить что такое ксаш, и решать работать ли с ним или нет - смотря только на эту игру, и я не преувеличиваю.
При всем уважении к Дядь Мише (очень уважаю и стараюсь в основном прислушиватся к этому человеку), прошу Вас, Господа - разсудить нас.
Выразил сугубо свое мнение.
Возможно я не прав в чем-то.
ну а разве из studio перестали нормалки читаться? Мне кажется отличным вариантом система как с обычными hd текстурами, то есть общие для всех - в папке common, остальные по отдельным папкам
__________________
-Brain is dead-
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: half-life@conference.jabber.ru
Не понимаю сути проблемы.
В волатиле - шейдерные скрипты, т.е. материал и текстура - вещи независимые, можно одну и ту же нормальку хоть к десятку материалов привязать, например.
В ксаше, как ДМ хвастался в теме про новый рендер, тоже есть (или вот-вот будет) система шойдеров.
Для совместимости с халфой остаются вады и вшитые в мдл-файлы текстуры.
В чём проблема-то?
__________________
__________________
ㅤ
__________________
ну как ДМ сделал это правильно для двига, долепите спец кварс(специально для P2) для переключения в старую систему чтобы не тратить время на перекидку по новой системе.
для конфилкта legs.bmp сделайте текстовый файл, который оверрайдит пути и все.
не вижу смысла совместимости с HL, тем более это стим и хл с sdl уже пропатчился достаточно.
если не будете гринлитить проект отказывайтесь от HL, делайте standalone, если будете то ориентируйтесь на HL, затем уже на Xash3D.
__________________
vk.com/skullcapstudios
__________________
А теперь послушаем начальника транспортного цеха
Как опытный разработчик, я вижу проблемы уже на этапе их зарождения и стараюсь решать радикальными методами, пока это не затрагивает никаких важных аспектов. К тому же я чётко разделяю границы действия кодера и остальных участников. Если кодер может облегчить жизнь остальным - это надо сделать. Почему? Потому что кодеру это не будет стоить ровно ничего - написать один раз немного кода. А если этого не сделать, остальные будут терять время на идиотские ограничения, пытаясь угодить программе.
Есть конечно такие люди, которым доставляет удовольствие писать максимально неудобные и некомфортные программы - такие, например, работают в госучереждениях. Теперь рассмотрим суть вопроса более подробно. Итак:
Проблема заключается в том, что согласно халфовской концепции, каждая модель имеет свой набор текстур. В рамках первокваковской концепии, не только модель, но еще и каждая карта имела таковой набор. В Half-Life ввели общие вады, чтобы сэкономить немного памяти. Технически это выглядит таким образом, что движок грузит текстуры, хоть и в общий массив, но персонально для каждой модели - свои. И по смене карты точно так же выгружает все текстуры, принадлежащие данной модели. Механизм, который мог бы обеспечить независимую выгрузку текстур крайне хрупкий, я вовсе не собираюсь вводить его в движок на финальном этапе разработки, хоть с кваром, хоть без квара.
В XashNT такой безусловно будет, здесь - не будет никогда. Не стоит думать, что я не пытался его ввести. Пытался. В новом рендерере для XashXT. Разом огрёб столько проблем, что моментально всё это вычистил и забыл. Значит этот вариант отпадает в корне, и совместимость здесь вовсе не при чём. Мною был предложен традиционный вариант - распихать текстуры моделей по разным папкам. Это хорошо зарекомендовавшая себя практика, которая не имеет недостатков.
Кроме одного (условного). Некоторые личности, а таких у нас на форуме человек пять, не написавшие за свою жизнь ни одного движка, вдруг озаботились оптмизацией памяти. Видимо потому, что это единственная. доступная их пониманию вещь, как можно оптимизировать память.
В связи с этим имеем крайне забавную ситуацию - меня, разработчика этот небольшой перерасход памяти совершенно не волнует (поскольку я знаю, что он действительно небольшой), а их, людей, не имеющих к кодингу вообще никакого отношения - волнует. Но каковы практические мотивы всего этого? Может быть перерасход памяти приводит к незапуску приложения на видеокартах с ограниченным кол-вом видеопамяти? Нет, не приводит. Может быть большой расход видеопамяти влияет на скорость отрисовки? Нет, тоже не влияет. Так чего же они спрашиваются лезут со своей оптимизацией? А я вам скажу.
ЧСВ и желание показать себя компетентным в вопросах, в которых они ничего не понимают, но очень хотят понимать. Первые вопли про эти текстуры я услышал еще в 2010 году от Кутузова. Он же предлагал мне переименовать папку sound в папку audio. Я думал, что это еденичный, известный медицине случай. Но теперь я вижу что это ТЕН-ДЕН-ЦИ-Я.
Теперь, товарищи, рассмотрим, как именно топик-стартер предлагал разрешить данную проблему. Когда он впервые об этом рассказал, я аж глаза протёр. Мне показалось, что я просто сплю и это дурной сон.
Он мне сказал - это ничего, что имена в 664 моделях паранои пересекаются между собой. Я просто возьму, найду все пересекающиеся имена в 664 моделях паранои, поменяю их на непересекающиеся и всё будет просто замечательно. Т.е. человек, сознательно, хочет взвалить на себя рутинную, абсолютно бесполезную работу, которую можно было бы вообще не делать, а вместо этого заняться, например детализацией уровней. На мой вопрос, представляет ли он, сколько это займет времени. ответил, что к маю уже всё будет готово. Вдумайтесь только, человек хочет отдать целый месяц на бесполезную работу, которой могло бы не быть, а народ тем временем будет спрашивать "скоро релиз?".
Ну ладно. В конце концов, каждый угорает по хардкору как может и если бы параноя-2 была вещью в себе, то я вообщем-то и не возражал против такого времяпрепровождения. Ну нравится человеку текстуры переименовывать и что с того? Но в том-то и дело, что параноя задумывалась как фундаментальная база для новых модов, она несёт в себе массу интересных возможностей, часть из которых скорее всего не будет использована в оригинальной игре, но пригодится мододелам.
И тут - такая подляна с колизией имён. Вы думаете кто-то еще будет сидеть и переименовывать текстуры? Да просто объявят параною "бажным движком" и забудут. Ну и зачем и главное кому такое надо?
Вот так создаются проблемы на ровном месте.
Ну а теперь, когда вы услышали мнение обеих участников - у вас действительно есть возможность нас рассудить объективно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
Дядя Миша вот и мне кажется что эта мысль об экономии видеопамяти сильно надуманная. В конечном же счете как ты сделаешь так и будет.
__________________
ㅤ
Временная зона GMT. Текущее время 14:26. | Страницы (2): [1] 2 » Показать все 27 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024