В Твиттере айтишники иногда поднимают тему выгорания, но она для меня не до конца понятна.
Много лет назад я взялся за написание очень масштабного проекта. У меня было куда меньше опыта программирования, чем сейчас. Используемые мной инструменты были несовершенны, а применял я их не всегда правильно. Стоит ли говорить, что проект, цикл разработки которого планировался года на полтора, занял все пять, и вышел в таком плохом техническом состоянии, что даже после двух переделок был закрыт. Это была онлайн-игра для ВК, кто очень давно меня читает, те могут даже что-то помнить.
Это, пожалуй, самая сокрушительная история моего поражения, после которой были полгода единственной во всей моей жизни настоящей депрессии. Под конец разработки я испытывал сильнейшее эмоциональное истощение. Я просто видеть не мог этот проект. Я просыпался каждый день с мыслью о том, что мне снова нужно открывать IDE и вносить правки, добавлять фичи, и что конца этому нет, потому что сделать нужно столько, сколько я за сегодня в принципе смогу, пока не упаду замертво. Особенно после релиза, когда проявились проблемы, и когда стало ясно, что игра не «выстрелила», и я не стану миллионером, но принять решение бросить её это значило отказаться от надежд, которые питали меня последние 5 лет.
В общем, по всем признакам похоже на выгорание. Разработчик вкладывает в работу так много сил и эмоций, что у него садится батарейка. И всё-таки. Я ведь сам виноват: истощал себя, потому что взял задачу не по силам, да ещё и создал вокруг неё завышенные ожидания. Мою энергию тратило моё же собственное упорство и нежелание признавать фиаско.
Однако принято воспринимать и описывать выгорание, как внешний фактор. Стихию, которая тебе не особо подконтрольна. Разве что условно: ты мог добровольно выбрать не ехать в то место, где потом начался ураган. И вот тут я не особо согласен. Мне кажется, человек понимает, что именно он продолжает делать, чтобы выгорать. А ещё для выгорания нужно иметь возможность похандрить, вы уж простите. Так и представляю себе, как выгорает рабочий, который вагоны разгружает. Или кассирша в Пятёрочке. Что-то тяжело мне стало товары пробивать, уйду в саббатикал! Ну ладно, они, допустим, эмоции в работу не вкладывают (а программисты действительно вкладывают, об этом я как-нибудь ещё напишу). Но где у нас выгорание врачей, учителей? Пашут как проклятые же. Это мы, айтишники — неженки, чуть что, сразу психолога мне.
Так что и к историям о выгорании я отношусь соответственно, хотя сам подобное проходил. Выгорел — значит, была возможность. Было окно в жизни, которое можно заполнить страданиями. Было достаточно денег, чтобы с работы уйти. Это не отменяет того факта, что субъективно человеку действительно очень плохо и тяжело. Но если я себе ногу отпилю — мне тоже будет очень плохо и тяжело.
#dev#life
Закончился второй этап конкурса "Код Петербурга". На первый я отправил скилл для Маруси, позволяющий гибко искать события по базе KudaGo. Но с самого начала говорили, что среди критериев оценки будут метрики: число пользователей и так далее. Там, где есть метрики, нужно делать развлекательный проект или игру, без вариантов. У "полезных" самостоятельных приложений (не связанных с внешним бизнесом) метрик нет почти никогда.
Я посмотрел на топ развлекательных приложений в каталоге ВК и увидел, что местная аудитория любит кликеры / idle. Это такие игры, которые максимально абстрагируют игровой процесс: буквально конвертируют время вашей сессии и совершение простейших действий во внутриигровой ресурс. Грубо говоря, вы получаете очки, потому что просто сидите в игре, и на этом все. Ну, иногда нужно нажимать на экран.
О причинах популярности и кажущейся примитивности этого жанра я сейчас рассуждать не берусь, но во второй этап решил сделать кликер про музеи Петербурга. Напомню, что одно из условий конкурса: использовать API городских сервисов. Здесь я взял базу данных Министерства Культуры.
В игре "Музейный Барон" вам нужно нажимать на посетителей с разными предпочтениями, получать с них деньги, на которые строить музеи, позволяющие получать еще больше денег, в том числе автоматически. Музеи, разумеется, настоящие. Я, кстати, пока подбирал, узнал о нескольких новых, которые хочется посетить.
Еще есть, например, возможность в реальности зачекиниться по GPS у нужного музея и получить его со скидкой. И, конечно, я не отказал себе в удовольствии сделать отдельный режим "Ночь Музеев", генерирующий в разы больше посетителей.
Вообще, делать кликер было интереснее, чем кажется. Отдельно пришлось придумывать, как не допустить написание игроками ботов для автоматизации. Ну и математику тоже пришлось продумывать, строя графики, хотя, кажется, есть куда улучшать.
#dev#games
Я вам уже писал об игре Satisfactory, которая является наследницей Factorio. А вот тут вышла статья (очень хороший перевод с английского), где сравнивают Factorio с программированием и мышлением разработчика, и становится понятно, почему мне так понравился жанр. Тут пишут, что сотрудникам компании Shopify компенсируют покупку Factorio. И вообще много интересных цитат:
«Эта игра в конечном итоге создаёт у игроков привычку смотреть на каждую ситуацию под следующим углом: каков наилучший способ автоматизации этой задачи, и какие зависимости других механизмов подвергнутся угрозе, если я её автоматизирую?»
«вы вряд ли сможете увеличить вес своей становой тяги в 50 раз. Но области, для которых это не так, занимают всё большую долю от общей экономической деятельности по очень тавтологической причине: их доля растёт, потому что именно они могут масштабироваться»
Очень любопытное замечание. И ещё прикольное в конце:
«Оказывается, у того, что некоторые задачи можно автоматизировать, есть и обратная сторона: это значит, что со временем всё большая доля общемировых проблем будет проистекать из задач, которые нельзя автоматизировать. Удачи вам с комбинированием вызовов API для решения проблемы ревности или высокомерия»
#games#dev
Сама статья: https://habr.com/ru/company/sportmaster_lab/blog/678038/
Побегал в технодемке Матрицы на PS5. Действительно впечатляет: с некоторых ракурсов вскользь даже похоже на кино. Кажется, это наиболее приближенная к фотореализму реалтайм графика, которая существует на сегодняшний день. Да, игр с подобными технологиями пока нет, и вряд ли в ближайший год стоит их ожидать — банально количество людей с PS5 слишком невелико, студиям не выгодно выпускать продукты, не работающие на предыдущем поколении. Но веха, на мой взгляд, важная и заметная.
Иронично, что прогресс в создании виртуального мира, неотличимого от реальности, показан на примере вселенной, где люди заперты в виртуальном мире, неотличимом от реальности. Что может пойти не так?
#dev#games
В прошлом году я немного поизучал движок для создания игр Godot — это опенсорсный аналог Unity, который мне посоветовали. И он мне очень понравился, гораздо больше, чем Unity. Он логичный, простой, при этом позволяет делать очень много и гибко. Его создают гики для гиков, а не маркетологи для студий. По сравнению с Unity он объективно выигрывает в легковесности сборок и субъективно выигрывает в понятности и удобстве проектирования. Ну и, конечно, он бесплатный.
Однако, видно, что движок достаточно новый — документация не всегда полна, в самой системе встречаются баги. Впрочем, если вы не боитесь трудностей, или если у вас богатый опыт разработки, для игр настоятельно рекомендую. На днях вышла новая мажорная альфа-версия с кучей интересного.
Поскольку я иногда делаю всякое под платформы с голосовым управлением, то здесь я купил ассеты и попробовал собрать демку — 2D-игру с боем танков в жанре "Артиллерия", по сути это современная копия TankWars аж 1990-го года. Для двух игроков на одном телевизоре или одном СберПортале: ходы по очереди, нужно подстраивать угол и силу выстрела с учётом ветра и позиции противника, чтобы попадать. В таких механиках как раз голосовой ввод оправдан и даже вполне удобен (если смотрели мою лекцию о способах ввода, то поймёте).
Если у вас нет редких устройств от Сбера, то попробовать игру вы не сможете, но можете посмотреть на видео. Там старый вариант, а на скринах уже более новый, с переделанным HUD. В этом году хочу ещё какую-нибудь игру сделать.
#dev#games