Если вы знакомы с маппингом в CS, то скорее всего вы слышали о том, что помимо Valve Hammer Editor - редактора карт от Valve - существуют также и альтернативные редакторы от сторонних разработчиков, такие как
J.A.C.K. (он же
Jackhammer) и
Q3Radiant. Не все знают, но Jackhammer продолжает развиваться по сей день, его разработчиком является наш соотечественник
XaeroX и он довольно активно принимает багрепорты, feature-request’ы и прочие сообщения по редактору. Мы связались с ним и решили взять небольшое интервью:
lxr:
Расскажи немного о себе. Как зовут? Чем занимаешься?
XaeroX: Меня зовут Александр, занимаюсь всем понемногу, но в основном программированием на С++.
lxr:
Программирование на C++ - это круто. Сам учился или заканчивал какое-либо учебное заведение по этому направлению?
XaeroX: Увлёкся С++ ещё в школе, в 2001 году, когда узнал, что на нём написана Half-Life. Скачал SDK, начал изучать язык, понравилось.
lxr:
Какие хобби у тебя есть?
XaeroX: Разработка игр и движков - это и есть моё основное хобби.
lxr:
Как пришла идея сделать Jackhammer и когда это было?
XaeroX: Идея существовала давно - но не было необходимых скиллов. Только к 2013 году, как следует освоив фреймворк Qt4, понял, что время пришло. :)
Мне хотелось дать народу Хаммер с расширенными возможностями, т.к. все эти годы наблюдал, как моддеры страдают от отсутствия в Хаммере многих простых, но полезных фич.
Также мне нужен был редактор для своего движка. Ранее я использовал Q3Radiant, но он был сырой и неудобный, да и народ не горел желанием осваивать новый редактор. А Хаммер в нашем комьюнити - штука весьма привычная.
lxr:
Есть ли в планах добавить поддержку Source Engine?
XaeroX: Изначально такие планы были, я даже доработал парсер FGD-файлов, чтобы он не ломался на сорсовских особенностях, а также сделал экспорт/импорт формата VMF. Но дальше дело застопорилось, т.к. нужно было делать поддержку сорсовских форматов текстур и моделей, системы Input/Output, ну и самое главное это Displacements. Довольно большой объём работы, к тому же в нашем комьюнити Сорс не очень популярен. Впрочем, не теряю надежды, что появится достаточно свободного времени, чтобы этим всё же заняться.
lxr:
С поддержкой Source действительно очень много дополнительной работы, а как насчет плагинизации редактора? Есть ли в планах создание системы плагинов и соответствующего API, которое позволит расширять возможности редактора путем написания плагинов?
XaeroX: Поддержка плагинов имеется. Редактор, например, ничего не знает про Half-Life или Quake 2. Форматы ресурсов этих игр реализованы через плагины, так же, как и форматы импорта-экспорта файлов MAP, RMF и VMF. Однако возможности плагинов ограничены, и такие вещи, как дисплейсменты, через них уже не реализуешь. Планируется к выпуску Plugin SDK, но я до сих пор иногда вношу изменения в API и нарушаю совместимость, поэтому считаю это преждевременным.
lxr:
Где вообще получать информацию об обновлениях и есть ли roadmap?
XaeroX: Сейчас обновляется только бета в Стиме, апдейты раскатываются автоматически. Надеюсь, скоро смогу вывести новую версию в релиз. Но в любом случае все новые фичи будут сначала попадать в бету.
О новых фичах в бете я пишу в
этой теме.
Реже, но более кумулятивно -
здесь.
Ну а в случае апдейта релизной версии принято постить отдельные новости в Стиме.
Roadmap как такового нет, есть приватный багтрекер, куда я заношу баги и пожелания. Но по срокам ничего не планирую, т.к. редактор сейчас не является приоритетным проектом.
lxr:
Ок, для наших пользователей мы написали статьи Как включить бету в Jackhammer’e, там же я написал текущий перечень того, что сейчас в ней реализовано. А где можно написать о найденных багах или озвучить свои пожелания?
XaeroX: Каждый пишет как считает нужным, все баги и более или менее разумные пожелания я отмечаю в багтрекере.
Самый надёжный способ - написать пост в теме на нашем форуме:
1)
тема для багрепортов; фатальные баги стараюсь фиксить очень быстро, особенно в релизной ветке.
2)
тема для реквестов; выполнение сложных реквестов не гарантируется, но всякие мелочи я обычно делаю.
В стим-сообществе я бываю редко. Можно написать и там, но тогда лучше для надёжности написать мне сообщение с просьбой заглянуть в обсуждения сообщества.
lxr:
Расскажи о своих текущих проектах
XaeroX: Сейчас наш самый приоритетный проект - олдскульный 3D-шутер под названием
Perilous Warp. Всё ещё в разработке и пока не особо разрекламированный за пределами нашего комьюнити. Второй проект - это движок
Volatile, на котором этот шутер делается, и для которого в том числе разрабатывался редактор Джек. Движок пока тоже не открыт для всеобщего пользования, но скорее всего, он будет интересен именно олдскульщикам (для остальных есть Unity и UE4). Если кому-то интересно почитать про разработку наших проектов - есть вот
такая тема.
lxr:
Ого, олдскульный шутер - это круто. А там можно будет прыгать и приседать? :D
XaeroX: Само собой. А также сохраняться в любом месте и пропускать абсолютно все катсцены. И самое главное - никакой регенерации. ;)
Вдохновляемся Quake 2, Half-Life, Unreal, а также практически отечественной игрой Chasm: The Rift (от украинских разработчиков).
lxr:
Будет ли там поддержка bunnyhop или каких-нибудь интересных техник перемещения, таких как rocket jump'ы или что-нибудь подобное?
XaeroX: В сингле - не планируются, но в мультиплеере - непременно уделим триксам внимание. Изначально игра будет выпущена без мультиплеера. Мы займёмся им позже, но сетевой код в движке уже имеется.
lxr:
Volatile Engine пишете с нуля? С какими сложностями сталкиваетесь в процессе создания?
XaeroX: Да, движок не основан ни на одном из существующих, хотя мы используем некоторые алгоритмы и подходы из движков idTech. Сложность обычно одна и та же - нехватка свободного времени на реализацию тех или иных фич.
lxr:
Как пришли к тому, чтобы делать движок самим и не использовать готовые решения?
XaeroX: Я начал пробовать писать собственные движки ещё в 2003 году, тогда это было модно, молодёжно и современно. Интересовал сам процесс создания сложной многокомпонентной системы, включающей в себя рендерер, звук, физику, сетевой код, игровую логику и многое другое. Поэтому мыслей взять готовое решение никогда не было, даже если оно объективно лучше и качественнее. Взяв готовый движок, я потерял бы, наверное, 90% кайфа от разработки игры.
lxr:
Кстати, говоря о твоих проектах, у тебя ведь наверняка есть уже завершенные, о которых ты мог бы немного рассказать? ))
XaeroX: Поскольку я больше программист, чем дизайнер, то завершить обычно удавалось проекты, где код важнее контента. :)
Например, вот
Wolfram, ремейк игры Wolfenstein 3D:
http://wolfram.hlfx.ru
Или
Headcrab Frenzy, "казуальный мод" для первого Half-Life:
https://store.steampowered.com/app/354900
lxr:
Что бы ты хотел сказать нашему сообществу?
XaeroX: Я очень рад, что до сих пор остались люди, уважающие классику и способствующие её популяризации среди молодёжи. Ребята, вы крутые! ;)
lxr:
Спасибо XaeroX, я надеюсь мы возьмем у тебя еще одно интервью, когда ваш шутер будет закончен. Удачи!
XaeroX: И вам большое спасибо!
* * *
Спешим сообщить, что уже в это воскресенье вечером стартует следующий Оффлайн турнир с новой картой от
mlSaNce. Чтобы подогреть ваш интерес, он подготовил специальный тизер, смотрим: