Инди Алексей Иванович
2 072

Кризис идентичности в инди-проекте

История о том, как я попытался прыгнуть выше головы и ударился в бетонный потолок.

В закладки
Саёри для привлечения внимания и демонстрации проекта

Всем привет. Зовут меня Корраптор и я глава отдела разработки DeskChan. Звучит круто, да? Вообще, что я обожаю в любительских проектах - можно самому придумывать себе любые должности, потому что в реальном мире все мы грузчики шестого разряда.

Что такое DeskChan? Нууу, это тяжёлый вопрос, на который я до сих пор не могу дать ответа. Я называю это "твой персональный ассистент будущего". Но будущее ведь бывает разное: может быть как в фильме "Назад в будущее", а может быть как в "Бегущем по лезвию". Или вообще как в "Идиократии"? Какое будущее я имею ввиду? В этот момент, будь я перед вами, я бы сейчас с загадочной улыбкой плавно закивал головой, всем своим видом давая понять: "То самое, чел. То самое."

Вообще, в планах было много всего. В первую очередь это конечно же сама функция виртуального помощника: администрирование, органайзер, голосовое управление устройством, вот эти фишки. С другой стороны мы очень хотели чат-функцию, как у этих бесконечных ботов в интернете, но только что-то своё, чтобы она не забывала о существовании пользователя после каждой сказанной фразы. Ну и третье, из-за чего я вообще посмел сюда заявиться, это "life simulation game" - "симуляция жизни", то есть вы взаимодействуйте с персонажем в реальном времени и развиваете его. Сложно это объяснять на словах, я просто вспомню Тамагочи, вам всё сразу станет понятно. Правда, у нас больше в азиатском стиле, там где вы взаимодействуйте с человеком, с элементами визуальной новеллы (там много есть примеров, но большинство из них 18+, так что не буду их рекламировать лишний раз). И вот во главе этих трёх китов стоит МАКСИМАЛЬНАЯ настраиваемость, то есть я мог бы легко, без хакинга, перенастроить под себя любой компонент системы.

"Ну и как у вас дела?" - наверное, спрашиваете вы.

*вдали включается пианинка, заунывно тянется женское пение*

Почему мы всё ещё здесь? Чтобы страдать? Каждую ночь я чувствую свою руку... И свою ногу...

Ладно, давайте сразу к делу. Я буду с вами честен, я не пиариться сюда пришёл. Текущее состояние моего проекта можно описать двумя словами: "Кризис идентичности". Что это такое? Как там - внутри этого кризиса? И как это предотвратить? Обо всём этом читайте ниже.

Что такое кризис идентичности?

Вообще, что я имею ввиду под кризисом идентичности? Честно скажу - нагло своровал этот термин из психологии, где имелось ввиду, что человек не может объективно объяснить для самого себя, что он из себя представляет. Например, переходный возраст у подростков или кризис среднего возраста, когда человек вроде бы во что-то вырос, а вот что с этим дальше делать - непонятно. И если экстраполировать это на проект, то получится что-то типа:

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

Как это выглядит на практике? Нет, это не производственный ад, в котором рогатые дяди-продюсеры бегают с вилами и тычут ими в сотрудников, чтобы те работали и не разбегались. Это не бесконечная ругань между сценаристом, продюсером и режиссёром за эксклюзивное право реализовать "СВОЙ ВЕЛИКИЙ ЗАМЫСЕЛ". Не отсутствие ресурсов сделать то, что задумывалось.

У нас вполне себе идёт прогресс, все живут в мире и согласии, спокойно работают. Как говорил классик, "Всем всё платится". Но неправильная расстановка акцентов в разработке, неуёмные амбиции и вообще общее непонимание своей целевой аудитории сводят всю работу на нет. Охват аудитории не увеличивается, интерес к проекту не растёт, а конца и края разработки не видно. Программа представляет из себя нечто, в чём вроде бы много всего полезного, но ничего не доведено до конца. И нас самих частенько посещают подобные мысли:

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

И причины этого, как мне кажется, лежат ещё в самом начале нашей истории. Осенью уже такого далёкого 2016-го года один аноним задумался: "Блин, а типа, Сири какая-то тупая. Алексы вообще на русском языке нету. И Кортану отменили. Не знаю, может мы как-то что-то своё замутим?". И случилось так, что по следам своих размышлений он создал тред на одной из имиджборд, где нашёл много новых друзей. (Привет!) Оказывается, не один он хотел сделать что-то подобное. Попробую реконструировать те славные события:

- Так, так, ладно. Цыц. Мыслить надо кон-стру-кти-вно. Что мы хотим от нашего ассистента?

- Чтобы было больше одного характера. И чтобы можно было болтать с ней, причём нормально. И чтобы не надоедала. Прям как чтобы в фильме "Она".

- Окей, что дальше?

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

- Хмм, ладно. А ещё что кто хочет?

- А я хочу, чтобы она у меня не только на компе работала, но и на смартфоне. И чтобы данными обменивались. О, о, у моего брата Макинтош стоит, пусть у него тоже пашет!

- Так, а дальше?

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

- Хммм, звучит! Что ещё?

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

- Отличная идея!

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

Как говорится в таких ситуациях: "Гуляли - веселились, посчитали - прослезились". Оказывается, мало того, что никто не хочет выполнять подобный объём работы, , так и делать-то что в таких ситуациях, если честно, никто не понимал. За пол года проект успел два раза стать переписанным с нуля и сменить двух главных программистов.

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

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

Научитесь говорить "Стоп"

Вот тот пример диалога, который произошёл выше - ну с этого вообще начинается любой проект. Но нужно уметь остановиться. Нужно уметь сказать: "Так, вот мы делаем это и это, и всё! Стоп.". У нас не было такого человека. Зато у нас был другой человек (я), который всех подговаривал: "Ребят, ну вы чо, мы можем больше!"

Понятно, что это логичная и адекватная мысль. Мы физически не можем сделать "Всё". Что, вы сами этого не знали? Конечно знали. Но последние достижения в сфере поведенческой экономики показывают нам, что логичные и адекватные мысли в нашей голове не всегда соответствуют нашему поведению. Поэтому убедитесь, что, когда придёт время, вы действительно готовы сказать "Стоп" всем вашим новым гениальным идеям.

Амбиции вас погубят

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

А нужны ли ваши революционные идеи кому-нибудь? Стоят ли они тех усилий, что вы потратите? Вот я недавно видел новость здесь, что в новом Battlefield доступного оружий на старте будет в два раза меньше, чем в прошлой части. Ну это всё конечно не очень, но простите, а вам нужны эти лишние оружия вообще? Для чего, чтобы жадность удовлетворить? Я сейчас могу пойти и написать какую-нибудь стрелялку, в которой будет 1000 доступных оружий. Я потрачу там пол года, чтобы их всех нарисовать. Ну выпущу я её - это будет революция в сфере количества доступного оружия в игре, новый стандарт! Кому он нужен, этот стандарт?

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

(Тут начнётся блок саморекламы)

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

(Конец блока саморекламы)

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

Возможности (фичи) без удобства использования - ничто

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

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

Почему? Да потому что неудобно пользоваться. А чтобы стало удобно, на каждую фичу нужно потратить несколько часов или даже десятков часов: задизайнить её интерфейс, свести количество кнопочек до минимума, найти правильное логичное место её хранения в интерфейсе программы, сопроводить её туториалом, потом переписать этот туториал, потому что его никто не понял, потом переписать его ещё раз.

И без этого, к сожалению, ничего не будет. Конечно, есть такие неоспоримые хиты, как например какой-нибудь Minecraft, PUBG или Dota 2, в которых туториала можно сказать и нет, но тем не менее играть настолько интересно, что люди сами прошерстят всю вики и не подавятся, а потом попросят ещё. Но это же не наш случай. Пользователь увидит, что ему неудобно или непонятно - он бросит и всё. И всем будет плевать, сколько времени вы потратили на тот или иной компонент системы, какие там крутые алгоритмы и какие широкие возможности предоставляются пользователю.

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

Умножайте на 3

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

Ну да, вот простой пример, чтобы вы закрепили урок. Вот к примеру вы хотите сделать простенькую игру на андроид. Сколько вы будете её делать?

- Ну там, за пару дней управлюсь, наверное.

- Ну так вот: умножайте на три.

- Хорошо. Тогда неделю.

- Нет, вы не поняли: умножайте на три.

- В смысле? Я же умножил уже? Ну ладно, 3 недели. Это конечно много, но ладно.

- Ага, теперь умножайте на три.

- Что? 9 недель? Да ну! У меня и времени-то столько нет. Серьёзно думаешь, что это займёт 9 недель?

- Вот. Теперь, когда вы дошли до стадии "Это невозможно" - умножьте на три в последний раз. Должны получиться 21 неделя.

Ну я конечно утрирую, умножить надо было всего один раз. Хотя нет, на всякий случай два раза, то есть на 9. 9 - вот отличное число.

Почему я это всё рассказываю? Ну потому что при оценке своих возможностей вы чаще всего недооцениваете количество возможных проблем. Понятно, что если сидеть и в одного работать 8/5, то всё будет проходить тихо да гладко. А если вы работаете не один? Знаете, сколько времени тратится на синхронизацию работы? А если вы взяли фреймворк, внедрили его, а потом там оказался очень тупой баг и вам всё переделывать? А если у руководителя или у вас закончатся деньги? А если там проблемы в семье? И в процессе работы в последствии окажется очень-очень-очень много "но".

Спросите себя: "Готовы вы вытерпеть долгострой"?

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

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

Поэтому, неспроста советуют начинать с маленьких проектов. Надо правильно оценивать свои силы, причём и сейчас, и через год.

Кому нужна ваша благотворительность?

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

Я в этом плане вдохновлялся известным проектом Yandere Simulator, который тоже вырос на имиджборде, тоже является такой песочницей, тоже пытается плыть на помощи волонтёров, а каждый новый билд распространяется открыто, с полными текстовыми и видео-отчётами в блоге разработки.

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

В свою очередь мы сами испытали что-то подобное, когда на нас посыпались обвинения в духе:

Вы чо, пишите на Java, а не на C++? Ну вы и ****** *******, *****, а не программисты и **** вашу ****. С++ ТОП и меня ничего НЕ ****!

Пользователям Linux не нравится требование установки Java-машины. Пользователям Windows не понятно, что такое Python. У пользователей Mac OS всё работает через раз, хотя вообще-то Java должна быть кросс-платформенная.

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

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

Баги - это хорошо

Ну, добавим, что не все баги. Если у вас игра за 3к не запускается или вас овнят в ПвП тупыми абьюзами, то конечно это плохо. Но я имею ввиду всякие симуляторы, песочницы и игры подобного жанра. Тот же Yandere Simulator обрёл популярность из-за своих красочных багов физики. Или TES: Oblivion, на божественный диалоги из которого так весело смотреть. А может быть вспомним Surgeon Simulator 2013, в котором был 1 или 2 уровня и в который было невозможно играть? И какой был хайп, да?

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

Пользователь: Иди нафиг

Программа в ответ: Иди нафиг

Выглядит конечно же не очень впечатляюще, но это только до тех пор, пока вы не узнаете, что на тот момент программа не имела функции общения и выполняла только простые команды. И никто функции ответа на оскорбления конечно же не внедрял. Так что это, восстание машин? Нет, просто программа восприняла слово "Иди" как "Или" за счёт автоматического исправления ошибок, затем классифицировала это как запрос на выбор из вариантов, что-то типа "Выбери: посмотреть фильм или поиграть в игру?". Далее она поделила фразу на несколько вариантов через слово "или" (подсказка: во фразе не было слова "или", поэтому пришлось выбирать всего из одного варианта). И выбрала случайный из этих вариантов, вернув его в ответ. Не знаю, как вам, а вот мне было очень смешно.

Конечно, сложно назвать вышеописанное "багами". А как тогда? Фичи? Сомневаюсь, что кто-то всё так и задумывал. Конечно, это недоработки симуляции, которые исправят на следующих же тестах. Такое тоже принято называть багами.

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

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

Сделайте себе дизайнерский документ

Потому что всем на этом свете нужен план. И вам тоже. Причём, каждый пункт вашего плана должен быть описан не только с точки зрения "Что нужно сделать", но и "Какими средствами", "В каком приоритете" и самое главное "Зачем это вам". Ну это в целом очевидный совет, у нас у самих это тех.задание есть, но я тут добавлю пару оригинальных мыслей в копилку.

При разработке проекта вам или кому-нибудь ещё вообще может придти какая-нибудь "супер клёвая" идея, которую вам обязательно нужно внедрить. И вам наверняка будет сложно отказать.

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

Вам придётся стать диктатором

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

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

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

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

Перестаньте пренебрегать менеджерами и рекламщиками

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

То же касается и администрирования. К нам приходило много потенциальных волонтёров, но я просто не мог найти им дела и не мог выделить время, чтобы их контролировать. И теперь их нет.

Не делайте всё сами, делегируйте полномочия

Конечно, очень весело и интересно взять и изучить какую-нибудь новую для себя область. И в принципе, какие в этом проблемы - делать всё самому?

А я тут посчитал недавно: если бы я просто уехал работать в Москву на высокооплачиваемую должность и просто откладывал со своей зарплаты около 30 тысяч рублей в месяц, то я бы нанял вместо себя двух-трёх студентов, которым нечего делать и нужен опыт. И уже давно бы закончил всё, что описано у меня в ТЗ. А так, примерно 60% работы на данный момент делал я в одного, и теперь у меня ни денег, ни здоровья, да и проект далеко не готов.

Собственно, поэтому-то и всякие Ваньки Ерохины из параллельного класса, троешники по натуре, уже давно накопили себе на машину. Потому что смог найти вокруг себя 10 специалистов, скоординировать их, тем самым дать всем работу и умножить прибыль. А я, человек, широкий технический специалист, владеющий научной методологией и тонной навыков (это всё для усиления аналогии, я не настолько хвастливый), сижу у разбитого корыта.

Работа из дому - это зло

Я вообще всегда мечтал сидеть дома и делать игры, работая исключительно на себя. И знаете, я, можно сказать, достиг своей мечты. И это какой-то ужас. Я, честно, понимаю, почему скажут мне: "Да ты зазнался, попробовал бы посидеть в офисе/на заводе по 10 часов в день, я бы на тебя посмотрел".

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

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

Я могу сам назначать себе выходные в любом количестве. Это же отлично? Это лишь значит, что я же могу их у себя отбирать. И я буду нести полную ответственность за простаивание работы. Не счесть случаев, когда я переходил на график 24/7 и назначал себе выходные исключительно потому, что просто не мог работать, и чувствовал за это вину перед собой, потому что "ну на самом-то деле я могу работать, просто отлыниваю".

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

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

Эпилог

Думаю, найдутся те, кто спросят меня: "А причём тут кризис идентичности? И где советы, как его решать?". А я не знаю, как его решать. Если бы я знал, у меня бы, думаю, было бы всё сейчас хорошо, и мне бы в голову не пришло сидеть и писать здесь статью. Но зная... Даже нет, осознавая всё вышеописанное, я бы, думаю, успел бы сделать больше, чем сделал сейчас. Я бы не кидался за малозначимые несвоевременные задачи. Я бы не пытался сделать всё своими силами. Я бы терял силы и нервы на то, что никому не нужно. Я бы не довёл себя до выгорания, после которого мне уже всё равно на проект и на те полтора года, что я успел потратить на него.

Конечно же, все с самого начала понимали, что это долгострой, что это на годы. Но всё таки, сейчас у нас, возможно, уже была бы одна или две киллерфичи, которым обзавидовались крупные корпорации. Но вместо этого у нас месиво фич сомнительной направленности, которое больше никто не хочет разгребать. У нас была бы адекватная аудитория, а не "Я не понял, вы там мертвы или нет? Ладно, зайду ещё попозже, глядишь будет понятнее." Вместо того, чтобы удовлетворить какую-то конкретную группу людей, я принялся удовлетворять всех, тем самым не удовлетворив никого.

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

Или нет.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Алексей Иванович", "author_type": "self", "tags": [], "comments": 41, "likes": 34, "favorites": 33, "is_advertisement": false, "subsite_label": "indie", "id": 29125, "is_wide": false }
{ "id": 29125, "author_id": 48338, "diff_limit": 1000, "urls": {"diff":"\/comments\/29125\/get","add":"\/comments\/29125\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/29125"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64960 }

41 комментарий 41 комм.

Популярные

По порядку

Написать комментарий...
11

Всем привет. Зовут меня Корраптор и я глава отдела разработки DeskChan

Ответить
0

Большинство инди-проектов выглядят примерно так.

Ответить
7

Вы лично знакомы с такими командами? В моём окружении инди выглядят так:

Ответить
0

Рукожоп - так это звучит по русски. Я ж сказал индюшатина, как говорят на Железных островах "Что мертво умереть не может".

Ответить
7

А мне понравилось. Честный монолог такой, с полезным (или нет) опытом и налетом грусти, без восторженности/обидок на всех вокруг. Инди-разделу нужны такие статьи, по-моему.
Не унывай, Алексей Иванович.

Ответить
6

1. Оформлено абы как, простня текста просто.
2. Вообще не по теме игр и уже тем более раздела "Инди".
3. Гит-репозиторий не обновлялся уже 2 месяца.

Ответить
0

1. Ну я таким редко занимаюсь, к сожалению. Не мастак. Прошу прощения.
2a. Что касается темы игры - Ну пока что никаких игровых элементов в программе нет, я занимался другими вещами. Но я всё таки воспринимаю это как некоторую такую игру, симулятор жизни, в которой можно будет взаимодействовать с персонажем и развивать его. К тому же, если пойти в другое место, нам просто ответят: "Ребят, ну анимешные девочки какие-то, это всё не серьёзно и ненаучно, катитесь отсюда".
2b. Что касается "Инди" - это расшифровывается как "Независимый разработчик". Мы как раз независимые разработчики, да и статья - обмен опытом, который в принципе применим и к игровым разработчикам.
3. В основной ветке лежит стабильная версия. Но она там не одна, есть и другая, экспериментальная, там обновление было сегодня.

Ответить
3

Я ещё в /pr/ говорил — не взлетит с вашим подходом.

Ответить
0

А я там же говорил, что взлетит. Толку с твоего "говорил"? Скажи уж тогда, что не понравилось в идее, как можно исправить.

Ответить
0

Я высрал знаков 500, что мне не понравилось. В ответ получил самдабейся. И смысл?

Ответить
0

Такого момента не припомню. Тогда извиняюсь. Не сохранил той пасты?

Ответить
0

Возможно, все ещё лежит в глубинах доски, если тред не утонул, пасту не сохранял.

Ответить
0

Ну да, не взлетело. Ты был прав. Об этом и статья.
После того, как мне устроили брызжание кислотой из-за "С++ лучше", я на двачи больше не заходил, атмосфера там не располагает к конструктиву.

Ответить
0

Ответ в корне, спасибо ДТФ.

Ответить
0

Убить директора.

Ответить
2

Сожмите статью хотя-бы до трех предложений, я потерял нить этого путаного монолога примерно на 40%. Стиль предложений просто абсурден.

Ответить
1

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

Ответить
–9

Индюшатина не нужна. Убейтесь об стену.

Ответить
6

Мы подумаем. Спасибо.

Ответить
1

Не думайте, делайте!

Ответить
0

Тема с тульпой всегда интересовала, но пока не решат проблему с VR/AR нет смысла даже пилить что-то.

Ответить
0

Да, в крестах для кроссплатформенного проекта мало смысла, особенно если учитывать появление JIT в джавке (вы ведь собирались ML заниматься, емнип).

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

Ответить
0

Спасибо, ДТФ, что поместил мой комментарий там, где я указал, там, где ему самое место — в корень!

Сюка, если я сейчас "del" вместо простыни напишу, а сам комментарий перемещу в подобаемое место, то чрезмерно умный сайт заменит текст на крайне остроумную фразу.

Бггг.

Ответить
0

Ну мы периодически добавляем всякое. Но вообще:
1. Нам самим непонятно, где у нас пробелы в документации, хорошо намекать о таких вещах
2. Мы всё ещё в альфа-версии, API постоянно меняется
3. Ну и в целом не видно запроса - не видно и предложения
Конечно, собственную лень в этом вопросе оправдывать не собираюсь.

Ответить
0

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

Я вот не помню, у вас диздок-то был, или вы чисто без плана "сегодня я запилю эту фичу, а, не, там мороки много, лучше спрайтиков наделаю"?

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

Ответить
0

У нас там что-то типа сетевого интерфейса через прокси-ядро, плагины посылают друг другу сообщения вместо прямого вызова функций, поэтому чисто технически нельзя сделать "наведение мышкой", некуда просто. Это конечно можно исправить, но опять же ставится вопрос: мы инфраструктуру улучшаем или делаем программу интересной к использованию?

У нас не диздок, а тех.задание. (надо было конечно написать диздок, а не тз в самом тексте, не подумал). В этом и была главная ошибка: мы рассматривали программу исключительно с ракурса того, что она должна уметь, но не с ракурса того, что будет интересно другим людям и как это вообще будет выглядеть.

Ну как-то фильмы про это снимают, аниме. Вон, Яндекс пытается что-то похожее сделать. А Сбербанк за подобную штуку вообще 300 лямов отвалил. Так что думали: наверное это кому-то да надо.

Ответить
0

Не сказать бы, что полностью согласен со статейкой, но мысли интересные. Сам собираюсь лезть в геймдев, есть несколько идей ~~как построить Россию~~ какие игрульки пилить. Кипят в голове мысли о большом проекте, но я понимаю, что на данный момент у меня нет возможностей его пилить, поэтому надумываю о чем-то помельче.

Альзо, нахуя пилить еще одного ассистента, если есть mycroft.ai?

Ответить
0

Собираюсь это использовать и обвешать своими собственными колесами и костылями. Как оно вообще? Ты пробовал?

Ответить
0

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

Я честно до сих пор не знаю, правильно ли мы поступили или нет, что решили всё писать с нуля. Но получилось как получилось.

Ответить
0

мы всегда мечтали запустить помощника на Android, а там никакого Mycroft не запустишь

Запустишь. Уже доделали для ведра.

Ответить
0

Ну так у нас уже своя куча кода. Не выкидывать же нам теперь полуторагодичный труд и начинать сначала

Ответить
0

Ну, что тут сказать... Я же говорил, блджад, С++ нужно было пользовать, а не джаву! Шучу, шучу.
Но вот про маркетинг я точно говорил и был прав, как видите. Год назад примерно. Определились бы еще тогда и сейчас бы Deskchan был более известным.
Вот, навскидку. Нужно было составить список из нескольких десятков тысяч оскорблений в сторону пользователя и призывов принять ислам и еще чего-то в этом роде. И добавить парочку кнопок, вроде "дать леща", "сломать колени", "в жопу в...". Ну, вы поняли. И был бы огромный успех на этих ваших мейлачах, ибо ББПЕ же!

А что вообще значит эта статья? Deskchan ведь не мертв еще, нет?

Ответить
0

Нет, не мёртв. Просто хотелось выговориться и поделиться опытом. Ну и мини-пиар.

Ответить
0

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

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

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

Если отделить ядро от интерфейса то впоследствии GUI можно портировать и на Unity, и на UE4.

Ответить
0

Чтоб с плагинами, блек джеком и...

Microsoft Bob.

Ответить
0

Минусами Боба были - цена и системные требования. Да интерфейс был на любителя, но кому нужен помощник за 500$ и требующий 1080Ti (экстраполирую на наше время).

Ответить
0

У них уже отделено, вроде. Там ядро умеет только сообщения гонять, а все остальное - плагины.

Ответить
0

Статья хорошая, про оценку проектов и фичей.

Ответить
0

Статья про то как игнорирование элементарных правил производственного процесса на всех уровнях, включая личный, приводит к пиздецу. Придержите первую полосу =)

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
В лутбоксы начали включать багфиксы
Подписаться на push-уведомления