Привет. Этот пост содержит важные обновления о Hacker Experience (ранее называвшемся Hacker Experience 2) и Legacy. Я начну с Hacker Experience. Если вы хотите прочитать о Наследии, перейдите к концу сообщения.

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

Среди предыдущих обновлений я опубликовал несколько скриншотов нового дизайна, который мы пробовали. Этот новый дизайн был построен на основе нашего оригинального трейлера и идей моего друга-дизайнера, которого я нанял в качестве фрилансера на пару месяцев. Хотя мне лично понравился дизайн (по крайней мере, для первой / более ранней версии), некоторые из вас упомянули, что оригинальный дизайн (показанный в трейлере) «ощущался» лучше.

В то же время денег было мало. Как я упоминал в предыдущем посте, финансирование, которое мы собрали для нашей краудфандинговой кампании, закончилось несколько месяцев назад. В то время я, дизайнер и разработчик, работавший неполный рабочий день, финансировались за счет личных сбережений, которые у меня были. Поскольку эта экономия подходила к концу, я был вынужден серьезно урезать проект. С января 2019 года я больше не мог позволить себе дополнительную помощь со стороны дизайнера (Лукас) и разработчика (Макс). Поскольку я не плачу себе зарплату, я мог продолжить работу над проектом.

Должен сказать, хотя работать в одиночку над игрой такого размера ужасно, это было… весело. Мне нравится работать в одиночестве, но минусы очевидны. Если тогда игра была поздней, то сейчас даже больше.

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

Как видите, я получил массу удовольствия от разработки интерфейса игры, и, честно говоря, я не ожидал, что дойду до этого. Но я это сделал, и я считаю этот дизайн «GoodEnough» для первого / раннего выпуска, так что ура! Большая часть этой работы (как дизайн, так и реализация) была проделана с октября 2018 года по март 2019 года.

В апреле и мае я решил поработать над игровой инфраструктурой. Я полностью автоматизировал развертывание внешнего и внутреннего интерфейса с помощью Ansible playbooks и Terraform. Одним щелчком мыши можно построить всю игровую инфраструктуру с нуля. И одним щелчком мыши можно развернуть игру зеленым / синим цветом. Мы используем контейнеры, хотя и не самый массовый (мы используем FreeBSD и Jails).

Я «потратил» много времени на создание горизонтально масштабируемого серверного приложения, и можно задаться вопросом, зачем такая тяжелая работа. Что ж, этого не должно быть на данном этапе, НО ... с тех пор, как Legacy был впервые выпущен, мы постоянно подвергались (D) DoS-атакам. Я полагаю, что это привлекает тема игры (взлом!). Дело в том, что всякий раз, когда я говорю «эй, готово!», мы получаем DDoS-атаки. И любой игрок Legacy скажет вам, как сильно они ненавидят эти 502 страницы.

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

Но вот наступает июнь, и возникает множество проблем. Мои личные сбережения пропали, и у меня нет денег даже на оплату аренды. Если бы не друзья, меня бы выселили. В финансовом отношении я возлагаю все свои надежды на Hacker Experience, который, несмотря на то, что находится в состоянии выпуска Alpha / VeryEarly, далек от того, чтобы быть игрой, за которую я могу брать деньги. . До достижения такого состояния может пройти несколько месяцев или больше. И я не могу позволить себе так долго работать только над проектом, без дохода.

Итак, возникает тупик. Что мне теперь делать? Что бы вы сделали?

Как я уже упоминал несколько раз, работа над этим проектом - мое увлечение, и я делаю это, потому что мне это нравится. Я тоже работаю над этим, потому что твердо верю в результат. Я верю, что игра привлечет многих людей в области компьютерного программирования, информатики и / или кибербезопасности. Я также верю, что игра будет самой первой разработкой с открытым исходным кодом для многих игроков. И после 5 лет работы над проектом я не сдамся. Тем не менее, я понятия не имею, будет ли игра финансово успешной. Фактически, я должен предположить, что это не будет финансово успешным.

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

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

Излишне говорить, что это означает, что проект займет намного больше времени, и это мой следующий пункт.

О том, что очень-очень-очень-очень поздно

Я буду продолжать работать над Hacker Experience, и, если за это время со мной не случится чего-то ужасного, он в конечном итоге будет выпущен. Но мне нужно снять с моей спины невыносимый груз, а именно: я опаздываю. Очень поздно. Очень поздно.

Когда я разрабатывал Legacy (я начал 10 лет назад; мне потребовалось 5 лет), у меня было много похожих недостатков, задержек и прочего. Но я никогда не чувствовал себя плохо, тревожно или подавленно, потому что никогда не опаздывал. Чтобы на что-то опоздать, кто-то должен этого ожидать. Если вы делаете что-то просто для развлечения, как я сделал с Legacy, опоздания не бывает. Это может даже не закончиться, и это нормально.

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

Я хочу снять это давление, потому что чувствую, что оно сильно повлияло на мою жизнь, и этого достаточно.

Итак, если вы спонсор, я хочу, чтобы вы знали, что:

  1. Ваш вклад сделал возможным разработку игры все это время, и я бесконечно благодарен.
  2. В свободное время буду продолжать работать над игрой. Это может занять намного больше времени, чем ожидалось, но в конечном итоге он будет выпущен.
  3. Все, над чем я (мы) работали последние 5 лет, публично доступно на Github. У него есть бесплатная лицензия, которая позволяет любому использовать то, что мы создали, для любых целей, включая коммерческие. [1]

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

Неудача - сильное слово ...

Это действительно так. Лично я не считаю последние 5 лет провалом. Это далеко не так: я многому научился, я вырос как личность и как профессионал, и я с нетерпением жду следующих 5 лет. В то время я работал с некоторыми замечательными людьми, и это приятное воспоминание, которое я никогда не забуду.

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

Отдавая

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

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

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

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

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

Однако это займет некоторое время. Сначала я позабочусь о том, чтобы все мои долги были полностью выплачены. Тогда я получу разумную часть своего ежемесячного излишка и выполню запросы на возмещение в порядке очереди. Мы собрали 18 000 долларов США (до налогов / сборов), что в 6 раз превышает минимальную годовую зарплату, выплачиваемую в Бразилии. Поэтому, если все запрашивают возврат, действительно ожидают очень долгого времени для его выполнения. Но даю слово, что я приложу все разумные усилия, чтобы выполнить ваш запрос на возмещение. Я говорю «разумно», потому что, ну, жизнь неожиданна, и никто не знает, что нас ждет в будущем.

Еще раз, чтобы было ясно: может пройти несколько месяцев, прежде чем я верну всем деньги. Я ожидаю, что пройдет не менее 5 месяцев, пока я полностью не выплату свой долг и не начну возвращать деньги первому спонсору в очереди. Другими словами, первые несколько возмещений должны быть произведены примерно в январе 2020 года. Независимо от продолжительности, я обязательно планирую вернуть деньги всем.

Что будет дальше

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

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

Независимо от того, когда это произойдет, я продолжу работать над Hacker Experience в свободное время. Честно говоря, меня не волнует, займет ли это 2, 3, 5 или 10 лет, чтобы закончить это. Мне, честно говоря, плевать, если в игру после выхода никто не играет. Честно говоря, меня не волнует, принесет ли игра в общей сложности 0 долларов дохода после завершения. Я делаю это из любви.

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

Это не прощание. Скорее, это только начало.

E nossa história não estará pelo avesso
Assim, sem final feliz.
Teremos coisas bonitas pra contar.
E até lá, vamos viver
Temos muito ainda por fazer
Não olhe pra trás
Apenas começamos.
O mundo começa agora
Apenas começamos.
- Ренато Руссо, Metal Contra As Nuvens, 1991

Обновления Legacy

Я упоминал в начале этого поста о Наследии. Что ж, у меня плохие новости о Наследии.

Понимаете, Legacy был моим самым первым программным проектом. Я научился программировать, создав его. Его код запутан, недокументирован, непроверен и небезопасен. Любой может сделать DoS-атаку на приложение с кучей обновлений страниц. Вдобавок к этому Legacy не поддерживается. С момента первого выпуска, в сентябре 2014 года, я ни разу не отправил патч для кода игры.

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

А еще есть глазурь на торте. В GDPR я должен добавить несколько функций, которые, честно говоря, не могут оправдать усилия [2].

В финансовом отношении Legacy - это игра с нулевой суммой. Он стоит ~ 50 долларов в месяц на операционные расходы и приносит ~ 50 долларов в месяц на Google AdSense. Если раньше у меня не было времени на Наследие, когда я сосредотачивался исключительно на ОН, то сейчас у меня для этого нет времени.

Где-то в середине июля мне пришлось вручную изменить базу данных в соответствии с запросом на удаление GDPR. Это была ручная работа, которой я не собирался когда-либо заниматься, и именно тогда я понял, что Наследие стало помехой. Из-за всего этого я решил официально отказаться от Legacy. Я не планирую менять свое мнение, извините.

Я также должен извиниться за то, что не сказал об этом ранее. Я хотел объявить об этом вместе с обновлением Hacker Experience (которое было практически готово, но мне потребовалось больше месяца, чтобы набраться смелости опубликовать этот пост). Снова извините.

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

Если вы студент или младший программист и читаете исходный код, всегда помните, что устаревшая кодовая база является отличным примером того, как НЕ писать программное обеспечение. [3]

Несмотря на несколько десятков угроз смертью, присланных несколькими десятками детей за эти годы, я прекрасно провел время и встретил некоторых удивительных людей. Надеюсь, вы тоже хорошо провели время, играя в Legacy :)

часто задаваемые вопросы

Означает ли это, что Hacker Experience мертв или его разработка остановлена?

Нет. Как я уже сказал, я буду работать над этим в свободное время столько, сколько мне позволит жизнь.

Почему бы вам не начать финансирование Patreon или не дать ссуду, чтобы быстро завершить оставшуюся часть игры?

Я не хочу идти на такой риск. Кроме того, это как раз то давление, от которого я хочу избавиться.

Когда вы выпустите устаревший исходный код?

Скоро. Несколько лет назад я обязался выпустить его исходный код после выхода HE2 именно по той причине, что к тому времени Legacy будет удалена. Поскольку Legacy сейчас удалена, это должно произойти в ближайшее время. Все, что мне нужно сделать в первую очередь, это удалить некоторые жестко запрограммированные ключи и пароли (!), А также провести тщательную проверку кода, чтобы убедиться, что ни один ключ не просочился случайно (я сказал вам, что все плохо). После выпуска Устаревший исходный код будет доступен здесь.

Примечания

[1] - любой желающий может получить доступ к исходному коду HE2 (интерфейсная часть, серверная часть и сценарии инфраструктуры) и продолжить с того места, где я остановился, завершить игру и продать ее как свой собственный. Никаких гонораров или обязательств передо мной, если они также публикуют свои изменения. Поскольку эта игра частично финансировалась за счет краудфандинговой кампании, было сочтено правильным дать это разрешение. Подробнее о лицензии AGPL.

[2] - Для справки: я полностью поддерживаю GDPR (хотя некоторые технические детали могли бы быть намного яснее). Мы не только не продаем ваши данные, но и вообще не собираем их. В Legacy нет Google Analytics или какой-либо аналитики или отслеживания.

[3] - Мне не стыдно за устаревшую кодовую базу, и если вы когда-либо были в подобном положении, вы тоже не должны. Писать плохой код - это нормально. Если вы понимаете, что это плохо, значит, вы учились и развивались. Нам должно быть стыдно, только если мы зашли в тупик / больше не развиваемся.