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

Правильно зафиченый корабль — это практически половина работы для победы. Но в Еве, ваши возможности по разработке теоретической оснастки очень ограничены. В игре нет возможности посмотреть, как корабль будет себя вести если поставить вот тот дедспейс модуль, или каков будет эффект от флотового бонусника, или что будет, если выучить ещё один уровень АВУ. К счастью, существуют утилиты, позволяющие теоретизировать над фиттингом до посинения.

Одной из самых популярных среди сообщества утилит с долгой историей является Пифа (Pyfa)

История

Создателем Пифы был Sakari. Будучи участником Линуксового сообщества игроков в Еву, он был весьма расстроен отсутствием фитилки, написанной специально под Линукс. Было, конечно, популярное ЕФТ, которое приходилось запускать под Вайном, что очень ограничивало функциональность. Был и Quickfit, разработка которого прекратилась и у которого было несколько крупных недостатков. И вот он решил взять всё в свои руки и создать свой инструмент с нуля.

Вначале он написал утилиту, использовавшую gtk+ в качестве пользовательского интерфейса. Эта прграмма известна под именем pyfa0. Вскоре после первого релиза, проектом заинтересовался Kadesh Priestess. Разделяя точку зрения Sakari, он пришёл на IRC канал и занялся тестированием и разработкой функциональности программы. Позднее к проекту присоединились Darriele и Aamrr.

Aamrr также занималось тестированием и вносило предложения по функционалу, а Darriele стал главным разработчиком пользовательского интерфейса. Именно он создал тот интерфейс, который используется в Пифе и поныне.

Вскоре они вместе создали новую версию Пифы с нуля. С тех пор они осуществляли поддержку и добавили несколько новых возможностей. Kadesh стал главным тестировщиком, он поддерживал актуальность баз данных и занимался апдейтами.

Через некоторое время, Kadesh больше чем на год ушёл из игры. А после возвращения, он обнаружил, что команда практически распалась. И он взял проект полностью на себя. Он продолжает обновлять программу после крупных обновлений, а также разрабатывает основу для будущих улучшений.

Вот так выглядит Пифа

Технические подробности

Пифа написана полностью на Питоне, что было обусловлено влиянием Евы. У Kadesh есть и другие проекты на этом языке, как домашние, так и связанные с его работой. Однако, эти проекты в основном он программирует, а не разрабатывает интерфейс для них, к тому же ни один из них сложен настолько же, что и Пифа.

Самым сложным в разработке и поддержке Пифы всегда было программирование. Если изначально не спланировать всё тщательно, могут появиться серьёзные проблемы потом. Хорошим примером может быть реализации влияния флота в Пифе, который работает только благодаря кривым костылям. Это, конечно, не оказывает влияния на пользователей Пифы, но действует Kadesh на нервы. В таких случаях он предпочитает взять нужный модуль и написать его заново, вместо того, чтобы пробовать доделать костыли. Пока такой подход работает хорошо.

Но самой большой проблемой всех опенсорс-проектов, особенно таких небольших, как Пифа, всегда был недостаток людей, которые будут регулярно заниматься проектом. Над этой проблемой команде надо будет поработать, так что если вы знакомы с программированием на Питоне и хотите помочь, черкните пару слов Kadesh Priestess — вы можете быть полезным!

Будущее

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

Для того, чтобы расчётный движок, используемый Пифой можно было улучшать и развивать, команда разработчиков сейчас занимается проектом под кодовым названием Eos. Это многоцелевой движок для расчётов параметров корабля, который легко обновлять и который очень быстро работает. Несмотря на то, что он всё ещё в разработке, уже проделан огромный кусок работы. Kadesh утверждает, что уже сейчас он работает в 1000 раз быстрее, чем надо для большинства применений в реальной жизни, что позволяет реализовать несколько интересных идей после того, как движок будет допилен и внедрён в Пифу.

О разработчике

Kadesh Priestess, ведущий разработчик Пифы, в игре является фанатом соло ПвП на фригсайзе. Интерцепторы и бобры — его любимые корабли. Кроме этого, он обожает участвовать в ПвП-турнирах из-за их сложности и непредсказуемости. Так что если альянс Гидра собирает команду, то в неё записывается и Kadesh Priestess.

В реале он живёт в России и работает в отделе обслуживания крупной телекоммуникационной компании. Программирование — это одно из его хобби, а Пифа является достаточно сильным мотиватором для того, чтобы посвящать ей большую часть свободного времени.

Заключение

Kadesh хотел бы поблагодарить Entity за помощь и советы при создании Пифы. Если у Kadesh возникает вопрос по Питону или по Еве, то у Entity есть на него ответ. Kadesh Priestess также находится в поиске человека, знающего технологию разработки UI для завершения работы над проектом Eos. Если хотите, напишите ему на мыло.

Пифа — мощный инструмент для любого, кто хочет собрать нормальный фит для корабля. Пифу даже используют разработчики при подготовке к дев-роумингам, живым событиям и учебным занятиям для новичков. Если вам надо проверить теорию или просто поиграть с фиттингом, то попробуйте Пифу в официальной теме или на Еврукоме.

И вот примерно здесь, когда я закончил перевод у меня возникла примерно такая мысль: «What in Her Empress Jamyl Sarum’s name am I reading?», что в примерном переводе с Амаррского значит «Что за хрень в очередной раз написал ССР Eterne в девблоге?» Мало того, что он безбожно переврал ингейм имя автора программы, так ещё и сама программа кажется смутно знакомой. Последовавший за этим мыслительный процесс едва не вывел из строя мой старенький имплант limited memory augmentation. «Где же я мог слышать это имя?» — размышлял я, старательно формулируя поисковый запрос. «Да ведь это же DarkPhoenix, известный эксперт по ингейм-механике, автор темы Mosquito Almighty об агентране на фригах и (как ни странно) разработчик Пифы!» — осенило меня, когда на экране появились первые строки результатов поиска. Судя по активности DarkPhoenix’a на форуме, а также после беглого просмотра технического раздела, я решил задать пару вопросов непосредственно, так сказать, виновнику торжества. Последнее неимоверное напряжение Limited Cybernetic Subprocessor’а породило несколько вопросов, которые я, с замиранием сердца, отослал своему возможному собеседнику. И отправился менять барахлящие импланты. Каково было моё удивление, когда в папке входящих сообщений своего Неокома я увидел ответ DarkPhoenix’a, датированного тем самым днём, когда я отправился на больничную койку! Чертыхаясь и проклиная собственную жадность (надо было поставить новые импланты ещё год назад!) и безалаберный медицинский персонал минматарской станции в Eurgrana (нет вот чтобы сделать семь прыжков, чтобы насладиться чудесами джовианской медицины в FDZ4-A!), я быстренько приступил к оформлению текста с опозданием в несколько дней. Итак, перед вами история Пифы из первых рук и немного истории одного человека, благодаря которому у нас есть прекрасный инструмент для теорикрафтинга:

Werdna: Здравствуй, DarkPhoenix. Как ты уже знаешь, недавно программа Pyfa попала «в центр внимания» разработчиков (точнее, CCP Eterne). Что ты можешь добавить к довольно сухой статье, к тому же ещё и ориентированной на западных игроков?

DarkPhoenix: В глобальном плане добавить нечего, история создания описана там хорошо. А вот рассказать о команде, которая, как и подобает, достаточно колоритная была, можно и подробнее.

Изначальный автор, Sakari, подходил ко всему с юношеским максимализмом. Планы у него были наполеоновские — и веб-фитилка, и мобильный вариант. И сайт с блекджеком и шлюхами, который объединит в себе кучу сервисов сразу, он тоже хотел. Кроме того, он подходил ко всему с точки зрения «количество > качество». Наполеоновские планы лично я никогда не любил, так как понимал, что им не суждено сбыться. Подход с фокусом на количестве кода, а не на качестве тоже меня не привлекает. А с другой стороны, я понимал, что если бы не он, Пифы на тот момент времени могло бы и не быть. В итоге, особо друзьями мы не были, но отношениям ниже нейтральных я не позволял упасть.

Darriele — человек из когорты we didn’t want this game anyway. К моменту, как он присоединился к команде, он уже долгое время не играл в Еву (настолько не играл, что уже именно не проплачивал, а не просто «не играл»), и кодил интерфейс фо фан, ради спортивного интереса. В меру веселый, в меру уравновешенный восточноевропеец, брал на себя не больше, чем мог выполнить. Его я ценил больше остальных. Периодически любил жрать пиво и играть во второй старик, играли вместе несколько раз, было весело.

Ну а далее «минорные» участники проекта. Aamrr, оно же corollax — мальчикодевочко, я когда узнал об этом по фоткам — испытал культурный шок. В деталях описывать не буду, скажу лишь, что по качеству до таиландских трапцов далеко. Принимала (пусть будет «она», т.к. это пол-дестинейшен) какие-то гормоны, очень часто испытывала проблемы со стабильностью разума поведения. Единственный член команды, который с которым я срался не раз и не два по разным причинам. К счастью, особых навыков, и, как следствие, веса в проекте у нее не было, поэтому все это проходило без заметных последствий. Сейчас все это осталось в прошлом, и на сегодняшний день мы худо-бедно "дружим«.

Xreix — мачо-испанец, крутой чувак и ирл, и в интернетах, умел вполне быстро и качественно кодить. Занимался веб-интерфейсом («Авророй»), но так и не дописал, ушел в реал (перед этим попытавшись начать кодить игру своей мечты).

Ну а я, как писалось в девблоге, пришел в команду зеленым нубцом, не могущим в кодинг вообще. По стилю являюсь антиподом Sakari — «Семь раз отмерь, один раз отрежь». Вместо того чтобы что-то написать, чтобы оно работало и забить, я изучал вопрос вплоть до того, как написанный код исполняется интерпретатором питона. С таким основательным подходом и с такой мотивацией освоил язык на достаточно хорошем уровне за примерно 2 года, после чего стал одним из основных членов команды, а приобретенные знания не раз и не два помогли в дальнейшем.

Werdna: А что за перерыв упоминается в девблоге? Почему ты тогда покинул проект?

DarkPhoenix: В тот момент для меня самым знаменательным событием стал, безусловно, бан гидры на ат10. Тогда у меня случилось турбореактивное возгорание задницы, так как я уже тогда вошел в состав «десижн мейкеров» команды, а количество усилий, вложенное в подготовку как лидершипом, так и рядовыми участниками, было поистине огромным. Кроме того, бан этот по сути был театральным спектаклем, разыгранным теми, у кого случилось аналогичное возгорание после финалов ат9 (было два человека, одним из которых точно был CCP Sreegs). И вот, по результатам «улик» с тест-сервера, когда уже турнир вот-вот начнется, обе команды были убраны. Да, команды действительно планировались отдельными, и да, от этого у меня побаливает до сих пор. Но CCP Sreegs получил свою сладкую месть, и ничего поделать с этим мы не смогли.

Тогда я потерял интерес к еве и всему сопутствующему. Когда уходил — Darriele все еще подкручивал и подпиливал интерфейс, Sakari трудился над своими наполеоновскими планами, Xreix продолжал работу над Авророй. Когда я вернулся, примерно через год — Darriele и Xreix’а не было на канале, а Sakari поддерживал проект ради галочки. Причем делал это настолько формально, что апдейты Пифы после экспаншенов Евы выходили через <nobr>3-4</nobr> недели с кучей багов. Хотя апдейт без багов, если нету всяких особенных нововведений, занимает <nobr>3-4</nobr> часа внимательной работы. Я тогда не выдержал и высказался о всех этих косяках. Но было видно, что человек потерял всю мотивацию, так что и он по сути был потерян для «команды», из которой в итоге остался я один.

Werdna: Получается, Пифа сейчас проект одного человека? Или всё-таки есть помощники?

DarkPhoenix: Да, сейчас это проект одного человека. Команду очень хочется собрать, поскольку я понимаю, что один все не потяну.

Werdna: Расскажи, какие именно специалисты требуются проекту — наверняка среди нашего русскоязычного сообщества может найтись нужный человек.

DarkPhoenix: Как было написано в девблоге, я беру на себя целиком вычислительную часть — движок уже допиливается до финальной версии. Как минимум, мне нужен 1 толковый UI-кодер в команду, желательно работавший с wxwidgets и знающий python. Кроме того, неплохо было бы заполучить хорошего математика, шарящего в моделировании, вычислительной математике и статистике (который, например, сможет подсказать, как считается доверительный интервал суппорта в негативном биномиальном распределении) — а так как я в университете все это счастливо пропускал мимо ушей (не понимал, что это может быть реально нужно), многие разделы высшей математики приходится учить практически с нуля, что, конечно, полезно, но занимает чрезвычайно много времени. Например, последние дней десять можно предположить по деятельности на гитхабе, что я «ничего не делаю». А на самом деле мне приходится усиленно переучивать теорию вероятностей.

Werdna: Можешь ли ты пояснить, почему ты продолжаешь заниматься программой, которая изначально задумывалась под Линукс? Тем более, что ССР давно прекратило поддержку линуксового клиента, да и вообще есть такие широко известные утилиты, как ЕФТ. Зачем тебе это надо?

DarkPhoenix: ССР прекратило поддержку линуксового клиента, потому что он говно. На маке такое же говно, но там альтернативы нету, а на Линуксе — есть. Не знаю, как будет себя вести клиент после ввода дх11 эффектов, но на данный момент под Вайном он работает ничуть не хуже, чем на винде.

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

А мне это надо потому, что это попросту интересно.

Werdna: Кстати, о конкурентах. Как ты относишься к конкурентным программам вроде ЕФТ или EVEHQ?

DarkPhoenix: К ЕФТ — скорее положительно. Между ЕФТ и Пифой, насколько я заметил, давно уже возникла конкуренция. Gripen не дает расслабиться мне, я — ему. Если вспомнить ЕФТ несколько лет назад — то он стабильно выходил несколько недель спустя после апдейтов. Что неудивительно — там для обновления под экспаншены приходится проделать гораздо больше работы, чем мне. Сейчас он, видимо, написал инструменты, облегчающие это дело, и последнюю версию (под Рубикон) опубликовал еще до того, как я пришел с работы. Конечно, возможно, что это не из-за конкуренции, но я все же склоняюсь к этой версии.

EVEHQ — не знаю. Когда я один раз его запустил, это был монстр, который написан то ли на дотнете, то ли на джаве, с ms access в качестве БД. Я испугался этого, закрыл и удалил. Может быть, с тех пор что-то поменялось, не знаю. Я — за специализированный инструмент, который должен расти не в сторону запихивания в него 100500 возможностей (скилл планнера и прочего), а за повышение удобности той функциональности, что есть, и адаптации его под целевую аудиторию. В случае с фитилками — это выход в онлайн, ввод всяких-разных интересных корпоративных фишечек, удобный шаринг фитов, и тому подобные вещи.

Вообще, в предложенном списке должен быть скорее Osmium, нежели EVEHQ. Там используется весьма современный движок, который требует минимума ручной работы для поддержки его актуальности, и по сути часть концепции была позаимствована из моего движка. Но с автором я дружу, он тусуется у нас на канале, да к тому же это опенсорс проект, так что я как бы совсем не против.

К «своему» детищу (Пифе) я отношусь без фанатизма. Я отлично представляю, что именно является очень кривым и жирным минусом, а что именно «фишкой». Например, в Пифе очевидно кривые вещи — это проецируемые эффекты и флит-бустеры, причем как с точки зрения UI, так и с точки зрения вычислительного движка; пролаг при пересчете характеристик корабля — тоже очень убогая вещь. Огромная часть этих косяков не особо и устранима без переписывания целых компонентов — сказывается недальновидность Sakari при разработке движка. С точки зрения чисто UI косяк — например, отсутствие визуального разделения рэков.

Werdna: Хорошо, а какие планы у тебя на будущее? Что планируешь сделать в ближайшее время — лично меня, например, интересуют профили входящего дамага?

DarkPhoenix: Я допиливаю движок до готового состояния (все, кроме поддержки флитов и проецируемых эффектов для начала), после чего начинаю приделывать его к Пифе. Поскольку пишется оно как двигло общего назначения, а не только для Пифы — то его можно будет использовать, например, как модуль КБ, который будет считать статы убитого корабля (тот модуль кб, что есть или был, я смотрел — он один большой костыль), или в других фитилках.

Гибкость и производительность дают возможность иметь в рамках одной фитилки открытыми фиты по сразу нескольким базам (например, фит, использующий данные с транка, и он же или другой с тестового сервера); в маркете фильтровать (или как-нибудь затенять) модули, которые действительно не влезут на корабль по любым причинам. «Профили входящего дамага» — уже есть, вообще-то, но есть идеи, как удобно сделать систему презетов для них. Если имеется ввиду «эффективный дпс» против некоторой цели — то это тоже очень просто реализуемо, и как минимум движок это будет поддерживать.

Werdna: Не могу удержаться и не спросить про тонкий клиент (thin client) Евы. В данный момент ты работаешь над расчетным движком для Пифы. Скажи, приходила ли тебе мысль создать свой тонкий клиент на основе этого движка?

DarkPhoenix смеется: Ты, наверное, плохо представляешь себе как работает этот тонкий клиент. Нет, тот движок, который пишу я, не предназначен для такой подробной симуляции (то, что я делаю поддерживает только более простые проекты). Такого мало для того, чтобы написать клиент под собственно игру. А если писать полноценные реплики догмы + дестини (матдвижок и физдвижок евы) — их будет очень неудобно использовать в фитилках. Разные инструменты, разные потребности, в детали вдаваться не хочу.

Werdna: Ясно. Еще один вопрос на актуальную для русского сообщества тему. Как ты относишься к локализации игры и к сленгу? Будет ли в Пифе возможность использования локализованных названий кораблей и модулей?

DarkPhoenix: К локализации никак не отношусь. Я ее никогда не использовал и не планирую, нубов не учу, поэтому моим мнением по этому поводу можно пренебречь. Сленг — это удобно, не вызывает раздражения, вовсю использую сам, совесть не мучает. А вот читать на форуме посты от некоторых товарищей, где вместо сленга используется перевод из 5 слов, по которым еще и хрен поймешь, что имелось ввиду — откровенно раздражает.

Насчет поддержки локализации — я только за, тем более что это несложно, но большей частью этот вопрос ложится на плечи UI-разработчика, которого я все еще не нашел. То, чем занимаюсь я, о названиях модулей и пунктов меню не знает ровным счетом ничего.

Werdna: А можно личный вопрос? Сколько лет ты играешь в Еву? Не надоело? А почему?

DarkPhoenix: Лет шесть или семь. Нет, играть не надоело. Наверное, потому что играть получается очень редко, да и всех целей в игре я так и не достиг.

Werdna: И чем сейчас ты увлечён в игре (помимо работы над Пифой)?

DarkPhoenix: Наверное, не совру, если скажу, что исключительно турнирами. Вне этого — очень часто хочу полетать, но как только появляется чуточку свободного времени, я скорее отдам предпочтение варианту «подизайнить/подумать/покодить», поскольку это тоже весьма и весьма интересно, особенно когда приходится решать нетривиальные задачи.

Да, совсем забыл — изредка захожу и роллю л5 миссию The Wyrmslayer. Для меня это как однорукий бандит. Там есть фракбаттл, хочу собрать фулл хг снейк с него, пока что прогресс 3/6.

Werdna: Ну что же — большое спасибо, что нашёл время ответить на вопросы. Хочу пожелать тебе собрать хорошую команду как для Пифы, так и для турнира, а также успешного решения проблем при разработке. Надеюсь, что у тебя всё получится.

Послесловие, не менее необходимое, чем предисловие.

Вот такая штука получилась у меня на этот раз. Возможно, сгоревший имплант не позволил мне придумать или точнее сформулировать вопросы. Однако, думаю, вы сами можете задавать их в этом топике, а DarkPhoenix (возможно) на них ответит. Помните, что хоть Ева — это просто пиксельная игрушка про космические кораблики, но люди в ней абсолютно реальны и интересные персонажи могут быть рядом с вами, стоит только внимательно присмотреться.

Перевод и интервью © Werdna

[#] 25.11.2013 @ 01:13 by Ekibana
+ 0 -
Да, отлично получилось с интервью! ответить
[#] 25.11.2013 @ 02:47 by Fedotoff
+ 0 -
EFT рулит,так сказать.. ответить
[#] 25.11.2013 @ 03:42 by aaaxeee
+ 0 -
Я вот нифига не пойму, Пифа, ЕФТ... Все форумы застланы скринами из ЕФТ. В разговорах-" Зафить в ЕФТ и посмотри..." В игру аналог что ли встроить нельзя от ССР ,WTF!? ответить
- [#] 25.11.2013 @ 05:35 by Ekibana
+ 0 -
Нафига это ппц, если народ бесплатно делает? :) ответить
[#] 25.11.2013 @ 06:40 by rcadmin
+ 1 -
Мне пифа нравится куда больше чем ефт. ответить
[#] 25.11.2013 @ 09:33 by psk21office
+ 0 -
Усилия достойные уважения.
Так держать! ответить
[#] 25.11.2013 @ 14:15 by DagonUA
+ 0 -
eveHQ не напрягаясь, затмит своим функционалом как ефт так и пифу. ответить
- [#] 25.11.2013 @ 16:25 by psk21office
+ 0 -
Да, функционала больше, но и
1. требований к оборудованию больше. Серьезно больше.
2. Функционал полностью нужен не всегда.
Наиболее востребованное: это скилы и планы прокачки; фитинг кораблей. ответить
[#] 25.11.2013 @ 19:58 by Arengor
+ 0 -
EveHQ - это монстр, в который напихано всего и сразу. От этого он становится жутко громоздким и неудобным.

DarkPhoenix правильно говорит, что отточенный узкоспециализированный инструмент гораздо лучше. ответить
[#] 25.11.2013 @ 22:38 by Thyl
+ 0 -
Для кого-то отсутствие нативной фитилки под линь, наверное, является достаточным стимулом для разработки, но мне лично не понятно, чем плох EFT под вайном, если клиет Евы один фиг под вайном приходится грузить. ответить
[#] 26.11.2013 @ 02:38 by sergu4o
+ 0 -
Спасибо за статью ответить
[#] 26.11.2013 @ 06:02 by Elzo93
+ 0 -
только EVE HQ только хардкор ответить

Написать комментарий
 
EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. CCP hf. has granted permission to EVE-RU to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, EVE-RU. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.