Моя история за Phoenix Rising

Как вам работалось с командой разработчиков Phoenix Rising? Какой была атмосфера, когда мы ехали полным ходом? Почему мы сделали такой выбор? Кто главный или был ответственным и как это произошло? Как Phoenix Rising спустился вниз по спирали туда, где он сейчас? В этой статье я хочу пролить свет на подобные вопросы.

Когда я присоединился к команде Phoenix Rising в июне 2017 года, команда состояла примерно из 40 человек, около 15 из которых постоянно были активны и вносили свой вклад. Я записался в качестве программиста, но уже были два других программиста: Джозайя и Эд. Они оба были гораздо более профессиональными, и я считаю, что у них тоже была работа в ИТ. Излишне говорить, что по сравнению с этим я чувствовал себя новичком (усиленно тем, что я был еще совсем неопытным и тогда мне было всего 14 лет, тогда как большинству разработчиков было около 25 лет). Несмотря на это, атмосфера и рабочий процесс были организованы и завершены. Все знали, что нужно делать, все делали свою работу, все были преданы делу и заинтересованы в том, чтобы выпустить Episode One. Я бы сказал, что это был более или менее «золотой век» Phoenix Rising, и мне очень понравилось это время - как, я уверен, верно для большинства других членов команды в то время.

По мере того, как мы продвигались все дальше и дальше, к нам начало подкрадываться нехватка времени. Хотя Гэвин, первоначальный создатель и директор проекта, не установил окончательный срок, мы надеялись выпустить его до конца 2017 года. Большинство отделов были на пути к достижению этой оценки. Дизайнеры пользовательского интерфейса уже сделали большую часть, если не все пользовательские интерфейсы, пиксельным художникам нужно было создать еще несколько передних и задних спрайтов покемонов, было несколько дополнительных причудливых плиток, которые необходимо было сделать для области Норы, и так далее. . Две главные вещи, которые еще не были так далеко, - это программирование и троеборье. Хотя многие важные механизмы и пользовательские интерфейсы уже были запрограммированы, невероятное количество из них было ошибочным, неполным или очень медленным. Мне пришлось переписать подавляющее большинство из них, поскольку я не мог понять в этом никакого смысла. Хотя мне действительно нравилось переделывать многие из этих пользовательских интерфейсов, это заняло довольно много времени и отвлекло от другой важной части программирования: исправления ошибок.

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

В то время, когда я переписывал множество фундаментальных механик, написанных Джозией или Эдом, Джозайя покинул проект. Его работа делала его практически недоступным, а некоторые его работы переписывались, делая их бесполезными, вероятно, тоже не было большим мотиватором - хотя и необходимо. Джозия тоже не мог понять, в чем заключаются проблемы, иначе мне не пришлось бы переписывать систему.

Но это означало, что у нас было на одного программиста меньше в то время, когда еще был огромный список дел на стороне программирования. Чем больше ошибок мы исправим, тем больше будет зарегистрировано. Приближаясь к концу 2017 года, мы открыли альфа-тестирование для всей команды. Это значительно увеличило количество ошибок в нашем трекере ошибок на GitLab, в какой-то момент достигнув пика в 600 ошибок (скажем, 450 для учета дубликатов, а не фактических ошибок, ошибок пользователей и ошибок событий). Эд также отправился в МВД в эти дни, а это значит, что я был практически один, чтобы заняться этими 450-с чем-то ошибками. Мы все прекрасно понимали, что это нереально, поэтому именно тогда мы начали активно искать программистов, желающих присоединиться к Phoenix Rising. К нам приходили и уходили разные люди, но почти никто ничего не вносил. Поскольку большое количество ошибок было связано с боевой системой, и у нас была установка, подобная EBS, мы спросили Луку, не хочет ли он помочь нам с ошибками нашей боевой системы. Он согласился помочь и исправил массу недостатков в боевой системе.

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

Помимо всех оставшихся ошибок, предстояло проделать еще много работы по подготовке к выпуску. Гэвин был настроен на использование некоторого вида шифрования для защиты файлов игры от людей, желающих использовать его активы без разрешения. Стандартное шифрование RPG Maker XP полностью сломалось с Phoenix Rising из-за количества файлов и другой структуры, поэтому мне пришлось придумать свои собственные алгоритмы шифрования. Но когда дело доходит до шифрования, я новичок, и у меня всегда получалось либо относительно надежное, но смехотворно медленное, либо смехотворно быстрое, но очень слабое шифрование. Или он не работал с музыкальными файлами. Или с папками не работало. Так продолжалось несколько месяцев, пока Нури Юрий наконец не присоединился к проекту, чтобы помочь с шифрованием. Шифрование - это гораздо больше его область знаний, чем моя, и ему удалось развернуть что-то, что было надежным и быстрым, но это было всего за несколько дней до фактического выпуска, который мы установили.

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

В процессе создания алгоритма шифрования я также работал над всеми ошибками. Маруно подписал контракт и тоже очень помог. В какой-то момент трекер ошибок достиг абсолютного нуля, и мы были вполне уверены, что сможем выпустить его в игровом состоянии. Примерно через неделю при таком низком количестве средств отслеживания ошибок, Я посоветовал Гэвину установить дату выпуска на май 2018 года, что мы и сделали. Несмотря на то, что за несколько дней до выпуска мы напрягли шифрование, все работало, все работало быстро, и все было замечательно. Мы, наконец, сделали это - Эпизод 1: Вне дома.

Можно было подумать, что с выходом игры наконец-то мы немного отдохнем. Подумай еще раз. Когда игра была выпущена, мы были абсолютно завалены отчетами об ошибках, но одна из самых серьезных проблем была связана с частотой кадров. Игра работала очень плохо для многих людей, с чем мы никогда раньше не сталкивались с такой серьезностью. Игра всегда отлично работала для меня и большинства других членов команды, поэтому это застало нас врасплох, и мы так и не нашли однозначного ответа, почему это было так плохо, как для некоторых. Одним из основных предполагаемых факторов был сценарий «Anti-lag», который Джозия добавил много лет назад, задолго до меня. Anti-lag звучит великолепно, но это своего рода сделка типа «скачивай больше скорости» или «скачай больше оперативной памяти». Либо это полная чушь, либо от повышения производительности пострадает функциональность. В случае этого скрипта анти-лагов производительность только снизилась и вызвала проблемы с памятью, что, в свою очередь, заставило игру работать еще медленнее, чем дольше вы играли. Но этот сценарий был настолько внедрен в игру и так сильно модифицирован, что его удаление сломало многие другие системы. Когда вы вносите изменения в сценарий, который заменяет другой, но не заменяете старый сценарий, вы становитесь зависимыми от этого сценария замены. Вот что случилось со скриптом анти-лагов. Он был сильно модифицирован и доработан для Phoenix Rising, но оригинальный сценарий не был. Поэтому старый сценарий стал несовместимым, и мы больше не могли избавиться от сценария анти-лагов.

Phoenix Rising всегда обещал игровой процесс 60 FPS из-за своей новой реализации RGSS 3, поэтому люди были очень разочарованы, когда они не могли достичь 60 FPS. Хотя Phoenix Rising, возможно, разочаровал, я бы пока не стал списывать со счетов RGSS 3. Phoenix Rising - неподходящая среда, чтобы можно было сказать, является ли RGSS 3 хорошей альтернативой RGSS 1 или нет.

После выпуска Episode One, который мы активно рекламировали как демоверсию и, следовательно, являлся неполным и, возможно, ошибочным, обнаружилось множество ошибок, которых мы не обнаружили во время тестирования. В течение целого месяца после выпуска я тратил каждый день на исправление ошибок и публикацию новых версий через средство обновления в игре. Но даже публикация новых версий нуждалась в исправлении. У нашего первоначального хоста была максимальная квота, хотя нигде об этом не говорилось. Когда внутриигровое средство обновления выходит из строя, вам необходимо загрузить новую версию вручную из Интернета, но когда внутриигровое средство обновления работало раньше, люди не узнают, что доступно новое обновление. если его нет во внутриигровом апдейтере, и это привело к тому, что некоторым людям не хватало обновлений. Чтобы исправить обновление, мне пришлось внести несколько изменений, которые, по-видимому, сломали Wineskin, а это означало, что люди на OS X, которые эмулировали Phoenix Rising через Wineskin, теперь не могли играть. Мы никогда не поддерживали эту группу с самого начала, но, тем не менее, мы получили много негативной реакции и на это.

Вы можете видеть, как я потерял мотивацию после месяца такой же ерунды. Я был единственным, кто работал на полную катушку, имея очень немногое, чтобы показать это. Я решил уйти в длительный отпуск.

Мало кто осознает, что жизнь людей выходит за рамки разработки Phoenix Rising. Я хотел бы назвать несколько вещей, над которыми я работал или чем был занят во время разработки. Я начал модерировать PokéCommunity и какое-то время был единственным модератором фан-игр. Я создал и доработал свой оригинальный редактор PBS. Я создал и в конце концов отказался от еще одной боевой системы (YABS) для Pokémon Essentials. Я работал над Pokémon Ethereal Gates (теперь Sea & Sky). Я работал и продолжаю работать над MK Starter Kit, альтернативой Pokémon Essentials. Я уверен, что есть много других больших или маленьких проектов, над которыми я работал, но в довершение ко всему… Я учился и до сих пор учусь в старшей школе на момент написания статьи. Сочетать все это было сложно, и, поскольку это всего лишь хобби, за которое мне не платили, я всегда делал то, что мне хотелось.

Взяв долгий отпуск, я вернулся и обнаружил, что снова было несколько сотен отчетов об ошибках и что никто не касался проекта с тех пор, как я ушел. В попытке увеличить среднюю частоту кадров в жертву тем, кто всегда мог играть со скоростью 60 кадров в секунду, я перенес Phoenix Rising обратно на RGSS 1. Эта жертва также означала избавление от внутриигрового апдейтера. и снова переписать часть пользовательского интерфейса, в которой использовались некоторые продвинутые хитрости шрифтов. Эта пониженная версия Phoenix Rising еще никогда не была выпущена, поэтому я не знаю, как это могло бы сработать. Предел FPS будет на уровне 40, а память должна быть более стабильной из-за меньшего количества утечек памяти (что является известным осложнением с RGSS 3).

Когда Гэвин в конце концов ушел из проекта - что, я бы сказал, было полностью оправдано - он оставил проект в моих руках без какого-либо предварительного предупреждения или указания. Это было тогда, когда я только что вернулся, но все еще был демотивирован. Я не был заинтересован в программировании для Phoenix Rising снова или в том, чтобы помочь ему встать на ноги, потому что я знал, что это было бы невозможно без компетентного программиста, который исправил бы все недостатки Phoenix Rising.

Во время разработки я всегда был настолько поглощен программированием и всем, что с ним связано, что никогда не уделял должного внимания другим областям. Фактически, я никогда не играл в Phoenix Rising от начала до конца по сей день. Я играл в различные секции десятки раз, но никогда не играл в них так, как это чувствовал бы нормальный игрок.

И это было ошибкой. Хотя большинство людей согласятся, что Phoenix Rising выглядит привлекательно, игровой процесс и сюжет довольно слабые. Конечно, вы не можете создать полноценный сюжет в демоверсии, но игры все равно не хватает. Что касается игрового процесса, то начало слишком слишком медленное, и я уверен, что найдется кто-нибудь, кто хотел бы разглагольствовать обо всех других проблемах, которые у них были с Phoenix Rising. Дело в том, что Phoenix Rising имеет проблемы, выходящие за рамки физических ошибок. Я бы даже сказал, что визуальные эффекты - это единственное, что действительно удалось в Phoenix Rising.

Само собой разумеется, что «Восхождение Феникса» для меня - чувствительная тема. Я вложил все свое сердце и душу в его создание, как мог бы Гэвин, но это не принесло особого удовлетворения, если не считать возможности включить его в потенциальное резюме. Раньше я старался оставаться объективным, когда говорил о Восстании Феникса, но теперь, когда я пишу эту статью, становится ясно, что я до смешного потерпел неудачу.

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

Зачем уходить из Phoenix Rising из-за других ваших проектов?
Как я уже упоминал в статье, работа над Phoenix Rising стала больше обузой, чем приятным способом провести свободное время, чем чем-либо еще, что я делал. В то время как Phoenix Rising - это еще и просто игра, другие проекты, такие как MK Starter Kit, могут вдохновить целое поколение разработчиков фанатских игр. Мне доставляет больше удовольствия создавать его, и, на мой взгляд, у него больше возможностей, чем у фанатской игры.

Вы сожалеете о своем пребывании в команде Phoenix Rising?
Абсолютно нет. Phoenix Rising был конечной ступенькой к тому, чтобы стать лучшим программистом, и опыта работы в большой команде у меня не было бы, если бы я не присоединился к проекту. И, несмотря на все недостатки, это проект, которым я могу гордиться.

Были ли члены команды хорошими друзьями или просто группой людей, работающих над одним проектом?
Я не могу говорить за всех, но большинство людей были для меня не более чем коллегами. Вряд ли кто-нибудь из Phoenix Rising был вовлечен в более крупное фан-гейм-сообщество, так что это были скорее отношения сослуживцев, чем что-либо еще. Однако некоторые из членов команды встречались в реальной жизни и тусовались вместе.

Что было самым интересным в работе над Phoenix Rising?
Мне больше всего понравилось работать над Phoenix Rising, когда я только присоединился к нему за несколько месяцев до релиза. Мне нужно было реализовать новые интерфейсы или механизмы, и мне пока не приходилось беспокоиться о нехватке времени или исправлении ошибок. Это дало мне много времени и возможностей для роста как программиста и члена команды в целом.

Гэвин только что выпустил Phoenix Rising, чтобы покончить с этим. Нельзя ли передать его кому-то другому?
Чтобы исправить вопрос: Гэвин не тот, кто предложил окончательную дату выпуска - я сделал, как упоминалось в статье. Хотя я уверен, что Гэвин тоже хотел бы выпустить примерно тогда, в конце концов, он не несет ответственности за выпуск Phoenix Rising, когда это произошло; это был бы я. Но я не жалею об этом. Один из моих основных аргументов в том, что мы должны выпустить его в какой-то момент. Если бы у нас был огромный объем работы, то игра никогда бы не вышла. Хотя фраза «Отложенная игра в конечном итоге - это хорошо, а срочно - всегда плохо» может относиться к Phoenix Rising, она не о качестве. Речь идет о выпуске вообще. Что, если то, что случилось с разработкой, теперь произошло, когда она еще не вышла?
Нельзя ли передать игру кому-то другому? Конечно, и это может случиться в ближайшее время. Но не все так черно-белое. Тот, кто вступает во владение, должен быть мотивирован, предан делу и хорошо осведомлен. Нет смысла передавать проект кому-то, кто не знает, что он делает, независимо от того, насколько он мотивирован или предан делу. Фундаментальная основная проблема заключается также не в отсутствии руководства, а в отсутствии программистов, чтобы исправить все оставшиеся ошибки в Phoenix Rising, очистить проект и реализовать функции Episode Two, а также все другие должности, необходимые для разработки Episode Two. Конечно, им понадобится лидер, но лидер без членов команды все равно обречен на провал.

Это все, что я хотел сказать о Phoenix Rising. Я надеюсь, что это пролило некоторый свет на некоторые вопросы, которые у вас возникли о разработке, текущем состоянии и о том, как все, что есть сейчас, возникло.