Нужно ли сохранять совместимость 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, остальные по отдельным папкам
Elber писал: Вместо этого решения, Дядь Миша, представьте себе, не спрашивая меня - сообщил что изменил систему адресов для нормалок и спекулярок для моделей, чтобы избежать коллизии.
Что он сделал: в папке textures вы создаете папку с названием вашей модели
Вот в этом редком случае ДМ всё правильно сделал. Я бы поступил так же.
А все нормали, лежащие не в модельных папках - общие и второстепенно-приоритетные.
Кстати, концепцию расшаривания ресурсов и доступа к ним (в базовом виде) я предлагал много лет назад на одном интересном форуме - хафлайф.ру. Видать, у кого-то где-то запало
Не понимаю сути проблемы.
В волатиле - шейдерные скрипты, т.е. материал и текстура - вещи независимые, можно одну и ту же нормальку хоть к десятку материалов привязать, например.
В ксаше, как ДМ хвастался в теме про новый рендер, тоже есть (или вот-вот будет) система шойдеров.
Для совместимости с халфой остаются вады и вшитые в мдл-файлы текстуры.
В чём проблема-то?
Elber писал: По старой традиции, любые споры и дилеммы - разрешаются благодаря общественному мнению на форуме.
Опрос бы прикрепить.
Цитата:
Elber писал: 54 дублированных файла *tga. И это всего лишь на примере рук!!!
К черту такую "совместимость". Даже в Source руки — едины для всех оружий. Т.е. игрок вбивает в гугле "перчатки для CS:Source" и скачивает понравившиеся.
Да и для разработчика это лучше. Сменил материал рук в игре (кодом) — у игрока руки в [крови|чем угодно].
Цитата:
Elber писал: Считаю что пытатся сохранять совместимость, это никому не нужное дело.
И правильно считаешь.
ДМ имеет полное право придерживаться такой политики (которая на мой взгляд слишком фанатична и уже давно пошла в укор движку), но было бы здорово, если бы он отклонится от этого дела в угоду Paranoia 2 (специальный билд и всё такое).
Elber писал: Теперь представим себе, что у нас например 18 стволов, и у каждого одни и те же руки. Получается: три материала одной и той же руки с рукавом раскладываем по 18-ти папкам, 3 умножить на 18 = 54 дублированных файла *tga. И это всего лишь на примере рук!!! Не хочется думать сколько нужно будет дублировать файлов для моделек труб на картах и других пропсов.
Не вижу проблемы в этом. Мы не на диалапе сидим вроде.
Добавлено 01-04-2014 в 16:44:
Цитата:
Elber писал: Дядь Миша утверждает что совместимость нужно сохранять для того, чтобы любой желающий мог пересобрать P2 - под первую часть. Тоесть, наверняка найдется такой энтузиаст.
Конечно надо будет сделать первую часть паранои под улучшенный движок второй части. Вопрос только в том почему нельзя убрать совместимость с халфой и выпустить обе части стендэлон?
Добавлено 01-04-2014 в 16:46:
Другой вопрос если убрать совместимость с халфой то как лахферы будут делать моды к ней?
ну как ДМ сделал это правильно для двига, долепите спец кварс(специально для P2) для переключения в старую систему чтобы не тратить время на перекидку по новой системе.
для конфилкта legs.bmp сделайте текстовый файл, который оверрайдит пути и все.
не вижу смысла совместимости с HL, тем более это стим и хл с sdl уже пропатчился достаточно.
если не будете гринлитить проект отказывайтесь от HL, делайте standalone, если будете то ориентируйтесь на HL, затем уже на Xash3D.
Как опытный разработчик, я вижу проблемы уже на этапе их зарождения и стараюсь решать радикальными методами, пока это не затрагивает никаких важных аспектов. К тому же я чётко разделяю границы действия кодера и остальных участников. Если кодер может облегчить жизнь остальным - это надо сделать. Почему? Потому что кодеру это не будет стоить ровно ничего - написать один раз немного кода. А если этого не сделать, остальные будут терять время на идиотские ограничения, пытаясь угодить программе.
Есть конечно такие люди, которым доставляет удовольствие писать максимально неудобные и некомфортные программы - такие, например, работают в госучереждениях. Теперь рассмотрим суть вопроса более подробно. Итак:
Проблема заключается в том, что согласно халфовской концепции, каждая модель имеет свой набор текстур. В рамках первокваковской концепии, не только модель, но еще и каждая карта имела таковой набор. В Half-Life ввели общие вады, чтобы сэкономить немного памяти. Технически это выглядит таким образом, что движок грузит текстуры, хоть и в общий массив, но персонально для каждой модели - свои. И по смене карты точно так же выгружает все текстуры, принадлежащие данной модели. Механизм, который мог бы обеспечить независимую выгрузку текстур крайне хрупкий, я вовсе не собираюсь вводить его в движок на финальном этапе разработки, хоть с кваром, хоть без квара.
В XashNT такой безусловно будет, здесь - не будет никогда. Не стоит думать, что я не пытался его ввести. Пытался. В новом рендерере для XashXT. Разом огрёб столько проблем, что моментально всё это вычистил и забыл. Значит этот вариант отпадает в корне, и совместимость здесь вовсе не при чём. Мною был предложен традиционный вариант - распихать текстуры моделей по разным папкам. Это хорошо зарекомендовавшая себя практика, которая не имеет недостатков.
Кроме одного (условного). Некоторые личности, а таких у нас на форуме человек пять, не написавшие за свою жизнь ни одного движка, вдруг озаботились оптмизацией памяти. Видимо потому, что это единственная. доступная их пониманию вещь, как можно оптимизировать память.
В связи с этим имеем крайне забавную ситуацию - меня, разработчика этот небольшой перерасход памяти совершенно не волнует (поскольку я знаю, что он действительно небольшой), а их, людей, не имеющих к кодингу вообще никакого отношения - волнует. Но каковы практические мотивы всего этого? Может быть перерасход памяти приводит к незапуску приложения на видеокартах с ограниченным кол-вом видеопамяти? Нет, не приводит. Может быть большой расход видеопамяти влияет на скорость отрисовки? Нет, тоже не влияет. Так чего же они спрашиваются лезут со своей оптимизацией? А я вам скажу.
ЧСВ и желание показать себя компетентным в вопросах, в которых они ничего не понимают, но очень хотят понимать. Первые вопли про эти текстуры я услышал еще в 2010 году от Кутузова. Он же предлагал мне переименовать папку sound в папку audio. Я думал, что это еденичный, известный медицине случай. Но теперь я вижу что это ТЕН-ДЕН-ЦИ-Я.
Теперь, товарищи, рассмотрим, как именно топик-стартер предлагал разрешить данную проблему. Когда он впервые об этом рассказал, я аж глаза протёр. Мне показалось, что я просто сплю и это дурной сон.
Он мне сказал - это ничего, что имена в 664 моделях паранои пересекаются между собой. Я просто возьму, найду все пересекающиеся имена в 664 моделях паранои, поменяю их на непересекающиеся и всё будет просто замечательно. Т.е. человек, сознательно, хочет взвалить на себя рутинную, абсолютно бесполезную работу, которую можно было бы вообще не делать, а вместо этого заняться, например детализацией уровней. На мой вопрос, представляет ли он, сколько это займет времени. ответил, что к маю уже всё будет готово. Вдумайтесь только, человек хочет отдать целый месяц на бесполезную работу, которой могло бы не быть, а народ тем временем будет спрашивать "скоро релиз?".
Ну ладно. В конце концов, каждый угорает по хардкору как может и если бы параноя-2 была вещью в себе, то я вообщем-то и не возражал против такого времяпрепровождения. Ну нравится человеку текстуры переименовывать и что с того? Но в том-то и дело, что параноя задумывалась как фундаментальная база для новых модов, она несёт в себе массу интересных возможностей, часть из которых скорее всего не будет использована в оригинальной игре, но пригодится мододелам.
И тут - такая подляна с колизией имён. Вы думаете кто-то еще будет сидеть и переименовывать текстуры? Да просто объявят параною "бажным движком" и забудут. Ну и зачем и главное кому такое надо?
Вот так создаются проблемы на ровном месте.
Ну а теперь, когда вы услышали мнение обеих участников - у вас действительно есть возможность нас рассудить объективно.
Дядя Миша писал: Может быть большой расход видеопамяти влияет на скорость отрисовки? Нет, тоже не влияет.
Ну как бы текстурный кэш...
Цитата:
Дядя Миша писал: Но в том-то и дело, что параноя задумывалась как фундаментальная база для новых модов, она несёт в себе массу интересных возможностей, часть из которых скорее всего не будет использована в оригинальной игре, но пригодится мододелам.
Хлфх тоже таким задумывался, там даже управляемые машинки были. Все мы знаем, что из этой задумки вышло.
Даже у самой говённой видимокарты сейчас менее 256 мегабайт памяти не бывает. Этого за глаза хватает. Т.е. через шину подкачки там нету.
Цитата:
XaeroX писал: Хлфх тоже таким задумывался, там даже управляемые машинки были
Нет, сравнение некорректное. Я не вставлял ничего специально, просто в процессе разработки, какие-то фичи не пригождались, я мог бы их вырезать, но оставлял для мододелов