итак, по порядку. есть на свете такой source port: vavoom. делал его один человек, потом опять немножко один человек. и сделал, я бы сказал, один из самых крутых портов. смотрите сами:
• до версии 1.32 (вкл.) vavoom имел софтварный рендерер с режимами 8/16/32 bpp, поддерживающий 3д‐полы, slopes, 3д‐модели, цветное динамическое освещение, нормальный mouselook (а не y-shearing, как у других). для сравнения: zdoom до сих пор умеет только в 8 bpp, не умеет slopes, не умеет модели, не умеет цветной свет (тут не уверен), не имеет mouselook (y-shearing не считается). то есть, софтовый рендер вавума настолько крут, что мог бы рендерить как минимум второквач со всеми фичами. впрочем, в 1.33 его убили, потому что новый маинтайнер ничего не понял в этом оголтелом ассемблере, да и «никому не надо».
• vavoom умеет в реальные тени. ну, как дум3. ну, почти как дум3. ну да, надо порасставить источники света, и для монстров лучше использовать модельки тогда (они в вавуме есть — модельки, — но очень‐очень страшные; такие страшные, что и без того страшный дум заставляет при появлении первого же монстра отложить гору кирпичей и вырвать себе глаза, как в «event horizon»). но. тени же!
• практически вся логика игр вынесена из движка в vavoom c. язык, очень похожий на «си с классами» и unreal script. там есть наследование, кажется, ссылки и ещё много всяких гитик. документации только нормальной нет, лол. но это реально круто. и скрипты не надо усердно канпелировать: их можно просто положить в pk3 как есть, и vavoom сканпеляет сам. примерно то, что я запланировал для D2D:MOTFL, да. санс язык.
• конечно, секторы‐над‐секторами, 3д структуры, наклоны и вся эта фиготень нормально поддерживается. даже кое‐какая поддержка плода любви графа и тяжёлых наркотиков — DECORATE — есть. устаревшая, конечно — см. ниже.
• vavoom таки полностью клиент‐серверный, даже с dedicated server в коробке. не знаю, правда, насколько хорош его сетевой код, но в любом случае лучше, чем p2p говно в zdoom.
ну, в общем, порт имеет всё, что полагается приличному порту в наши дни, и ещё такое, чего у других портов до сих пор нет.
минусы:
• порт может некорректно работать с вадами, которые сплоетят баги оригинального движка (используйте шоколад, чо). • оба автора устали работать в пустоту и забили. последний коммит от 2011-го года. потому поддержка того, что в том же zdoom наколбасили после этого — отсутствует. • рендерер иногда подтормаживает при куче света и теней. скорее всего, его можно оптимизировать, но уже некому. зато он не требует шейдеров, и работает на OpenGL2 (прикидка примерная). • 3д модели монстров. они, как я уже писал, очень страшные. но не в том направлении страшные. но и не обязательны: можно их убрать и будут старые добрые спрайты. • как обычно, документация по языку и скриптам того‐с… • э… э… больше не придумал.
это было про порт. а теперь про тщету всего сущего: я совершенно не понимаю, почему vavoom за всё время своего существования никогда не имел даже минимальной популярности. как‐то так получалось, что (на моём примере): «а, вавум. ну да, вроде бы крутой. ну, даже некоторые мои вады запускает. окей, было немножко интересно и чуть‐чуть приятно, где там мой гздум?»
код вавума, кстати, почище и получше zdoom'ового. в том числе и за счёт выкидывания логики в скрипты (в zdoom это частично переместили в DECORATE; честно, лучше бы вообще не трогали), и за счёт переработки под клиент‐серверную архитектуру.
граф, конечно, уверен, что вавум говно — но у графа просто коричневые очки к глазам прилипли. уж насколько я всё ненавижу, но граф круче.
и вот я не понимаю, что и как должен был делать автор vavoom, чтобы его порт не умер так бесславно. ну, кроме: «бросай кодировать, ботан, иди социалить!» порт упоминается во всех дум‐источниках, имел свой раздел на drdteam, всё такое. у них был свой форум, где авторы даже отвечали. и что?
я просто очень хорошо знаю это состояние: когда у тебя есть то, о чём комьюнити периодически взвякивало в виде: «ох, а здорово было бы…», оно работает, оно поддерживается, ты о нём и темы делал, и просто иногда к слову упоминал — и ничего. никто не обращает внимания. вообще. (это не про дум‐комьюнити, но в данном случае без разницы). и мне до сих пор интересно, какой непонятный механизм лепит на проект неснимаемое «…а тут не вижу».
эффект от «невидимости», кстати, намного более печальный, нежели смерть одного проекта: через некоторое время энтизиазм стухает вообще, и даже если ты начал новый проект, и у тебя что‐то получается, то всё равно при первых же препятствиях сразу появляется мысль: «да ну его нафиг, чего я бьюсь‐то? я в голове уже всё написал, а больше никому не надо.» у меня так куча проектов умерла, причём далеко не все были бесполезные. у некоторых из них потом появились аналоги (обычно хуже, кривее, жирнее и страшнее), и люди таки стали этим пользоваться. каким‐то образом.
в общем, «феномен невидимки» есть, а отчего, и как с ним бороться — мне не ясно, например.
p.s. забыл супермегафичу: по выходу vavoom рисует в консоли endscreen! цветной, и всё такое.
p.p.s. а, не, шэйдеры таки использует.
|