Интервью с Barnes

Это интевью с Кириллом, разработчиком Quake 2 XP, задумывалось ещё в 2008 году. Но по некоторым причинам сделали мы его только в мае 2012 года.

Ну для начала расскажи немного о себе. Кто ты, откуда и чем занимаешься по жизни?

Меня зовут Кирилл, родился в Москве в 1976 году, профессионально.. сложно сказать, я одновременно 3д дизайнер, технический дизайнер и сисадмин, а эта дикая смесь задействована в сфере выставочного строительства. Этому именно ёбнутому (кто занимается вставками тот поймет) бизнесу я посвящён уже более десяти лет

Что означает твой ник?

Это из за старого увлечения Metallica (Kirk Hammett) и Cannibal Corpse (Chris Barnes). Я так подписываюсь примерно с 98го года

Когда начал интересоваться компьютерными играми в целом и проектами id Software (как игрок) в частности?

Первая игрушка была Wolf3d, когда я учился в авиационке... как щас помню дико тормозила на 286-х, а если включали кнопочку "турбо", то играть становилось нормально, но компы висли через 10-15 минут :) Потом был DOOM, и далее самая первая любовь, Duke Nukem3D с которого я и начал заниматься модингом и картостроительством.

Много карт сделал?

Тестовых много, но то что выкладывал, ты давненько видел. Пак из трех уровней, с модификацией логики игры.

Да, помню, одно время они лежали то-ли у тебя на id-games.narod/ru, то ли на quake2xp.quakegate..net.
Когда было первое знакомство с Quake и какие были впечатления?

Первое знакомство... я собирал комп одному из коллег по работе, когда он (Квейк) вышел, и одновременно протащился и не понял его. С одной стороны полное 3д, с другой недостаток палитры. Плюс он конкретно у всех тормозил, в отличии от дюка :)

А у екоторых на момент выхода он вобще не шёл, ибо "четверки" были ещё более массовы, чем младшие Пентиумы :) Желания делать карты для первого Квейка не возникло?

Возникло, но на подборке утилит для DN3D и Quake я нашел именно редактор Дюка, а близкое знакомство с базовым маппингом под ку1 я начал с Half-life. Там я увидел вменяемый редактор уровней, и все прочее. Но дальше тестовых карт дело не пошло

И карты для Quake 2 тоже не делал?

Нет, я в него играл)

Но вот для третьего Ку ты сделал более чем одну НЕ тестовую карту. Был интерес больше к самой игре или к маппингу под этот движок?

Все одновременно. И игра и маппинг и моддинг игры. Всего по немногу, хотя я думаю самый мой удачный проект был CFA

Как родилась идея сделать Crazy Fire Arena, вспомниить ещё можешь?

Мне наскучило рубать по сетке в обычный DM, я и решил резко ускорить скорость стрельбы, превратив игру в жесточайшее, но при этом весьма веселое мясо. По этому дробовик превратился в эдакую РСЗО (реактивную систему залпового огня), а рельса - в пулемет, и горе тому кто зазевается :)

Играть было весело, это я хорошо помню :) Сделав несколько карт, ты забросил маппинг и переключился на кодинг (точно не помню карта Steel Plant была до ии после CFA). Почему?

Сталелетейка была моей последней Q3-картой, и к тому-же на мой взгляд неудачной. Окромя того что эта карта была полигоном для обкатке возможностей нового компилятора q3map2. Я уперся в ограничения возможностей тогдашнего Ку3 и его процессорозависимости. В итоге уровень был сделан без вертексного освещения, т.к. только одна компиляция лайтмэпов шла более 8 часов на тогдашнем крутом P4 1.8ггц.

В дальнейшем (через 3-4 года) не было мыслей о том чтобы если не доделать, то хотя бы перекомпились с вертекс-лайтом (хотя в принципе к тому времени он мало кому был уже нужен)?

Не было. Да и я уже тогда не видел в нем никакого толку.

Никакого толку от карты или от вертекс-лайта в третьеквейке? :)

И то и другое :)

Вернемся к Quake 2. После CFA для Q3 следующим твоим проектом, в которомы ты занимался кодингом, стал Q2XP. Почему решил заняться доработкой второкваки?

Меня дико впечатлил бифквейк и Q2Max, я скачал сурсы ку2, ребята принесли Visual Studio 6 и понеслось :) Первое что я сделал, это засел за чтение самого крупного тогда портала, ныне почившего quakesrc.org. Не имея в то время практически никакого навыка подобного программирования я убил пару сурсов, пока не понял то там к чему :)

Процесс въезжания в сурсы был очень долгим и муторным? Сколько дней (вечеров, ночей) ты убил, прежде чем начало что-то получаться?

Долго и много :) А попытки использовать чужую базу в итоге закончились полным переписыванием кода. Ибо тот подход был мягко говоря тупой.. К примеру текущий сурс хоть и базируется на бефквейк р5, но от прародителя окромя функции оверрайда текстур и использования devil-либы для работы с текстурами, ничего общего не имеет. Все было полностью переписано, постепенно удалялись старые "тру" на то время фичи в виде улучшенного, но дико тормозного вертекс лайта, или не менее тормозного RScript-а, который еще до сих пор можно лицезреть в Alien Arena :)

Почему именно XP ? Что это означает применительно к Quake 2 в твоём понимании?

Experience :)

Как все оказывается просто :) Кроме уже упомянутого quakesrc.org где ты ещё брал инфу и примеры кда для реализации добавляемых фич?


Nvidia sdk, сурсы коллег по цеху (в начале их было много), а потом общение с Вортексом, Кригсвином и Берсеркером

Перечисли основные ключевые улучшения и добавления, и когда они были зарелизены. Так сказать краткая хронология развития проекта :) (точные даты не нужны просто приерно год-месяц)

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

А потом я угробил сурс, и перелез на бифквейк, что позволило мне улучшить самый любимый (и заброшенный уже) движек.

После чего пошло уже более вдумчивое выпиливание всего старого и написания нового

RScript был выпилен как неадекватный тормоз, создана почти с нуля продвинутая система частиц (particle system), не имеющая ничего общего с именитой системой частиц из ку2макс, чьим копированием отличается к примеру kmq2, ранний egl или линуховский qudos.

Поддержка OpenAL-звука была добавлена ещё в угробленные сурсы или уже после?

Гораздо позже, я в начале тупо скопировал звуковой движек q2evolved. А присоединившийся вскоре Willow привел его в более современный вид.
это уже было во времена так называемой "бесконечной бэты" версии 1.25

Это когда периодически выходли версии 1.24prX и с такой же периодичностью на старом форуме КуГейта пролетали упоминания о некоей "мифической" на тот момент версии 1.26 ?

1.26 это отдельный проект Кригсвинна, с попиксельным освещением. На данный момент он почти закончен, и как и его собрат претерпел кучу изменений концепций рендера и т.д. На данный момент он обладает отложенным освещением по технологии light pre-pass, полностью программируемая система материалов с пользовательскими шейдерами, hdr-освещение, мягкие тени и прочие новомодные фичи :)

А потом так называемый 1.26 ыл полностью переписан, в него вошли многие старые наработки.

Идея была проста как АКМ. Нужен был бамп и т.д., но без релайта, чтобы упросить всем жизнь и не оторваться от оригинальной картинки.

В графическом плане на данный момент (май 2012 года) ты реализовал все что хотел или ещё есть куда копать?

по большому счету все.

Что дальше?

Есть кой какие оптимизации, которые хочется сделать, но не более. Ну и плюс разные гадкие багфиксы. Вечно какаято фигня вылезает. Особенно сейчас когда Linux-порт появился.

Типа решения той баги с падающей демкой? :)

Ну да, из этой серии.

О линукс порте чуть позже, расскажи об изменениях в game.dll, в плане сетевой совместимости и т.п.

Изначально сетевая совместимость была порвана из за того что массовые подрывы вызывали переполнение сетевого пакета. Мы тогда с Серегой нашли два пути - увеличение размера пакета и клиент энтити. Я предпочел первое он второе. Со временем я тоже склонился к клиент энтитям, расширив их под свои нужны, типа разлета кусков мяса при возрождении противников на кошмарном уровне сложности.
Потом были добавлены нормали для деколей от взрывов и прочее. Это уже расширение сетевого пакета. Ну и фирменные фичи, такие как нNightmare-уровень сложности (как в Дум2) и спотыкание-передвижка трупов.

На данный момент, движек сам смотрит наличие оригинальной или ку2хр игровой длл и соответственно включает нужный режим. Ну а если есть обе дллки то можно цваром форсировать то что нужно при помощи консольной переменной net_compatibility .

Сетевой код сейчас у тебя и Берса полностью идентичен или все же есть различия?

Разный. Есть кое что общее но все очень разное

Официальные аддоны (GroundZero, Xatrix, etc) насколько я знаю тоже полностью работоспособны?

Ксатрикс поддерживается на нашем протоколе все остальное в режиме совместимости. Но для айтемов GZ есть поддержка в 3D HUD.

Вернуемся ук уже упомянутому порту ля Linux - кто его автор?

Автор достаточно известного qudos :)

Он тебе сам предложил сотрудничество илинаоборт?

Он сам, тем более что до того мы активно сотрудничали. Сам разговор был с год назад, он просто занят сильно был.

Ясно. Чем планируешь заняться после окончательного допиливания Quake2XP (когда-нить он все-таки пройзойдёт :)? Не надоел ещё Квейк за все эти годы?

Нет не надоел :) А чем буду заниматься не знаю :) Придумаю что нибудь.

На твой взгляд сообщество Quake-разработчиков постепенно умирает (если уже не умерло) или у него ещё есть шансы на "выжиывание"?

В основном живо ку1 комьюнити. С ку2 сложнее по сути активны только мы и кнайтмар. что печально...

А ку3 и ку4 (которого по сути почти не было) таки сдохли?

Из ку3 я могу вспомнить только Роберта, автора хReal, но и он щас более DOOM3 занят.
С ним Серега в основном общается.

Лет 6-7 назад ты (то ли с Вортексом, то ли с Костей) выпускал нечто под названием QuakeXP - что это был за проект?

А.. я уже и забыл об этом, это лично я копался с исходником Q1. Было куча мата на код.

И само собой исходников уже и не осталось?

Нет, да и там ничего интересного и не было....

И альтернативу DarkPlaces ты уже врядли будешь делать? :))

Нет :)
У меня на самом деле с ку1 даже с самой игрой как-то не шибко сложилось.

Чем ты занимаешься в свободное время от основной работы и процесса разработки ку2хп?

Если не занимаюсь семьей, то читаю, слушаю музыку, смотрю видео.

Что читаешь, слушаешь, смотришь?

Из наших авторов в основном читаю Алексея Фомичева, Дмитрия Янковского и Олега Дивова. Слушаю старый классический thrash, death, black, rac, правый hatecore, марши третьего Рейха. Смотрю в основном старые ужасы, фантастику. Новое практически ничего не нравится, а скорее вызывает отвращение....

Жена к этому (фильмы и музка) набору нормально относится?

Отрицательно :))

Споры периодически бывают? :)

Не совсем споры. Я ей не запрещаю разные унтерменш шоу смотреть а она не лезет ко мне.

Политика невмешательства или типа того :)

Компромиссы блин.

Уж лучше компроимссы, чем постоянные срачи.

А лучше совпадение интересов :)

Согласен, но это нечасто бывает.
Как твоя жена относится именно к тому что ты немало времени уделаешь процессу разработки Q2XP?

Очень отрицательно.

Именно по причине того что это отнимает дохрена времени :)

Да :)

И ещё о семье - насколько я помню, ребенок у тебя есть?

Сын. 8 лет.

За комп ещё не рвётся? :)

ой.. это болезнь. запрещаем постоянно

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

ixbt.com
darkside.ru
talk.guns.ru
inside3d.com
forums.quakegate.ru

С кем из коллег по кудев-сообществу (не важно бывших или действующих) общаешься?

Помимо нашего узкого кугейт-междусобойчика в основном с Виком (автором qfusion, warsow) и с не безызвестным Генри Шеппардом.

Ясно. На этом все :)

Всего комментариев: 6

#1 @tex

интересно, но мало. объем проделанной работы, взлеты и падения, открытия и выпиливание... наверное сколько страстей осталось за рамками интервью.

#2 barnes

тогда все придеться вводить рейтинг +18

#3 beef34t3r

Интересно.
То есть легендарный "1.26 это отдельный проект Кригсвинна, с попиксельным освещением" и т.д. - правда появится в самое ближайшее время? )

#4 barnes

появится-появится))

#5 Doinkes

что-то на quakesrc.org не могу перейти. там другой сайт на ефритском открываеться, а гугл не советчик.
Подскажите ещё сайты где можно изучить программирование quake. меня лично 3й интересует, я новичёк в этом и пока мало что понимаю.

#6 barnes

архив статей с quakesrc.org

quake-1.....com/docs/quakesrc.......org
лишние точки сотри