Ответ ChaoticGood в «МУЖЧИНЫ И ЖЕНЩИНЫ ДОЛЖНЫ СПАТЬ РАЗДЕЛЬНО!»2
Пост о храпе. От храпаков чтобы избавиться вот прям здесь и сейчас есть супер быстрое и доступное средство - ксилометазолин.
Ксилен, риностоп и тд. Применяют от заложенности носа.
Из негатива - долго пользоваться типа нельзя, хотя есть друг, который храпел ОЧЕНЬ сильно, что-то связано с перегородкой, говорит стал пользоваться перед сном и сон улучшился. Я хз как с негативными сторонами, какие там побочки или нет, но с храпунами я никак не могу спать нормально. Недостаток сна и возможная порча отношений с человеком скорее сильнее скажутся, чем побочки сосудосуживающего.
А так неоднократно испытывал на храпоках, всегда помогало. По крайней мере храп либо сильно уменьшается, либо переходит в режим сопения. Можно брызнуть (спреем) в нос спящего человека.
Ну и нужно понимать, что описывается "мгновенное" снятие симптомов, причины не устраняет, но если нужно нормально поспать рядом с очень хранящим человеком, быстро поможет.
Ещё как вариант - беруши. Можно изготовить, из простого целофанового пакета. Одну часть комкаешь - помещается в ухо и будет пробкой, другой - обертываешь. В качестве пробки можно использовать туалетную бумагу, вату и что угодно, но напрямую в ухо сувать нельзя.
Робот "Центурион" вселенной Аркарион
В нашей вселенной будет целая линейка уникальных роботов!
Одни прибыли на Проксиму с первыми людьми (~800 лет назад) и требовались для обслуживания и обеспечения безопасности Бункеров. Другие же производились уже под поверхностью Проксимы ИИ убийцей, что увидело в человечестве угрозу 👀
Центурион (именно такое название носит этот замечательный робот), имеет единую ходовую, но разные модули на борту.
Макс (наш 3D-работяга) постепенно доводит до нужного вида базу, после чего возьмётся за новые модули. А после, еще и в разном стиле всё сделает!!! Да-да, это пугающе много работы, но Макса не пугают сложности и испытания. Настоящий авантюрист!
А вот про сам Центурион, его роль и лор расскажем уже когда модель будет полностью готова
⭐️ArtStation: artstation.com/maximsmolentsev1
⭐️Telegram: @Maxim_Smolentsev
Инди-геймдев как образ жизни: честный разговор о цене мечты
Казалось бы, уже столько всего сказано и написано про то, как быть разработчиком инди-игры в современное время. Только я написал 3 статьи на подобные темы. Что можно ещё сказать на данную тему?
Однако мне пришло в голову, что все мои статьи касались большей частью технического аспекта создания инди-игр и особо не затрагивали внутреннюю кухню инди-разработчиков. Ту самую часть, которая состоит из сомнений, выгорания, неопределённости и кучи нетехнических проблем.
Именно об этой «внутренней кухне» я и хочу рассказать в данной статье.
1. Вступление.
Начну с маленького отступления: вся статья будет построена на обобщении моего личного опыта (да и откуда взяться иному опыту). Но при этом я уверен, что у подавляющего большинства начинающих инди-разработчиков опыт разработки своей игры и вызванные этим проблемы будут во многом схожими.
Тем разработчикам, которые уже полноценно выпустили свою игру, всё же намного легче. Даже если их более ранняя игра и не снискала большой популярности, они получили самое главное — это бесценный опыт. И имеют представление о том, что их ожидает, а также — где и как им будет больно!
Располагая теми знаниями, которые есть у меня спустя почти два года разработки игры, я бы очень многое делал по-другому. Причём речь не про код или архитектуру — с этим как раз всё более-менее понятно, — а про сам порядок создания и продвижения игры.
Как я говорил в одной из моих более ранних статей: сегодня маркетинг — это уже не «что-то потом», а фундаментальная часть разработки. И его роль будет только расти. Технические барьеры постепенно снижаются благодаря инструментам и ИИ, а вот внимание игроков — нет (советую почитать мою статью на данную тему).
И в данной статье я не буду в очередной раз размышлять про самое главное требование для создания своей игры в одиночку, а именно — стимул. Я про это уже много писал (вот одна их моих статьей на эту тему) и опять эту тему поднимать не буду, т.к. это база — без серьёзного стимула никто не сможет создать любую достаточно серьезную игру, даже если у тебя есть всё для этого. Будем считать, что по умолчанию у вас есть серьёзный стимул создать свою игру.
В общем, технические вопросы и мои ошибки на пути разработки игры я сейчас затрагивать не буду, а хочу поделиться мыслями о том, что это вообще такое — быть инди-разработчиком своей игры?
2. Наивные надежды.
Для людей, не вовлечённых в геймдев, сама концепция работы соло инди-разработчиком крайне привлекательна. Ведь столько замечательных плюсов от работы в геймдеве:
ты никому ничего не должен!
ты можешь заниматься любимым делом!
ты работаешь в своём темпе;
ты играешь в игры!
любимое дело поможет тебе зарабатывать на жизнь;
у тебя нет идиотов-начальников, которые могут только мешать в твоей работе;
у тебя нет необходимости налаживать общение с людьми, которые тебе могут быть неприятны, т.к. основной твой коллега и друг — это ПК с его возможностями;
ты можешь заниматься в своей игре тем, что хочешь в данный момент, и некому тебя заставить делать то, чего не хочется;
ты можешь реализовать все замечательные идеи, которые есть в твоей голове;
и многое другое.
Реальность, как это обычно и бывает, всё расставляет по своим местам:
С огромной долей вероятности твоя игра не принесёт тебе особых денег. Какой процент от выпущенных инди-игр достигают какого-либо значимого успеха? 1%? А сколько из инди-игр вообще дожили до стадии полноценного выпуска, а не «сдохли» ещё до данной стадии? Неужели все эти неуспешные инди-разработчики были так плохи? Сильно сомневаюсь.
Отсутствие начальника — это, конечно, иной раз хорошо. Но где уверенность, что без грамотного руководства более опытного человека у тебя получится правильно пройти весь путь от начала разработки до успешного выпуска инди-игры? С чего ты взял, что ты окажешься компетентнее своего возможного начальника?
Быть разработчиком инди-игры — это, конечно, становится твоим любимым делом, но и означает, что геймдев полностью заменит все остальные интересы и хобби (я уже давно забыл, что когда-то любил играть в разные игры или смотреть хорошие сериалы). А если у тебя есть семья, примет ли она такой образ жизни? Готов ли ты к этому?
Отсутствие необходимости общаться с другими людьми приводит к тому, что тебе надо учиться разбираться во всех областях, связанных с инди-игрой, и быть ответственным за качество каждого элемента игры. Будь то написание кода, оформление визуала игры, общий геймдизайн игры, звуковое наполнение, чертов маркетинг, ведение социальных сетей и т. д. — за всё это ты отвечаешь сам!
А с чего ты взял, что твои замечательные идеи на самом деле настолько «замечательные»? Это тебе кажется, что идея отличная, т.к. именно ты её «родил», ты с ней работаешь, ты её понимаешь, ты вложил все свои силы в неё. Но уверен ли ты, что твоего опыта и знаний достаточно, чтоб сделать качественную и интересную другим людям игру? Да и откуда этому опыту взяться то? Ведь у тебя, скорее всего, нет многолетнего опыта в издании различных успешных игр с разными механиками. В итоге и получается, что у тебя есть «замечательная идея», но у тебя крайне мало возможностей проверить её «замечательность» до того, как ты много сил, времени и труда уже вложил в свою идею.
Люди, которые не работали в геймдеве, особенно те, кто никогда не создавал свою собственную игру, даже близко не имеют представления, сколько времени требует разработка даже не сильно сложной инди-игры. Для этого требуется колоссальное количество времени, и пока ты не начнёшь делать сам свою игру — ты даже не будешь понимать масштаб этой проблемы (не зря мой потенциальный издатель очень обрадовался, когда узнал, что я сейчас разведён).
И многое, многое иное, что становится ясным уже в процессе работы над своим проектом.
В итоге, если рассматривать работу инди-разработчика с этой стороны, то в ней вообще крайне мало привлекательного! На создание своей игры требуется неимоверное количества труда и времени. А гарантии, что весь твой огромный труд не уйдет в корзину — не даст никто. Более того, с намного большей вероятностью ты просто провалишься!
И всё же люди продолжают этим заниматься.
Почему???
3. Главная причина.
Я пересмотрел немало интервью разных инди-разработчиков. И основной вывод, который я вынес по итогам этих интервью — у всех ответ на данный вопрос такой же, как и у меня:
— сам процесс разработки своей игры — это и есть смысл всего.
В первую очередь, на время непосредственно самой разработки. А все остальное — успешность игры, её популярность и её продажи — это всё не то, чтобы вторично, но во время создания игры отходит на второй план.
Именно процесс создания своей игры и есть смысл, а также первопричина всего!
Конечно, так происходит не у всех соло-разработчиков. Но, как мне кажется, для большинства соло инди-разработчиков именно эта причина является главной. Именно эта мысль прослеживается практически во всех интервью инди-разработчиков!
И что самое страшное, почти каждый инди-разработчик впадает в состояние, когда он уже не может перестать делать свою игру. Ему крайне сложно остановиться и «отключиться» от неё. Все твои мысли направлены на проект, а всё остальное кажется вторичным!
Я на своей основной работе заключаю договора на сотни миллионов рублей. Я в жизни такие деньги не заработаю на своих играх! Но мне эта вся суета на основной работе кажется такой мелочью, ведь она отрывает от главного дела — процесса создания игры!
Один из моих любимых авторов по инди-разработке Слава Грисс рассказывал, что он на январские праздники поставил цель отдохнуть и не заниматься разработкой своей игры. И ему потребовалось 3 дня самопринуждения, чтобы у него прошла «ломка» и он смог полноценно отвлечься от работы и заниматься какими-то другими развлечениями.
Почти у всех инди-разработчиков та же проблема. Я себе принудительно выделил два часа в пятницу после окончания рабочей недели, чтобы отвлечься и провести время в какой-то сторонней игре. И очень часто я это время пропускаю из-за того, что не смог остановиться от процесса создания своей игры.
А мысли о том, чтобы надолго заняться чем-то иным, что не связано с разработкой игры, — так это вообще может вызвать ужас.
(Прям про меня (и не только) временами - через 4 часа надо собираться на основную работу, а я не могу оторваться от завершения очередной механики)
Если изложить совсем коротко:
Инди-разработчик — это не совсем адекватный человек, который вместо нормальной жизни и нормальное работы выбирает очень крайне сложную работу с очень маленькими шансами на успех. И не зависимо от шансов на успех, он всё равно будет делать свою игру, т.к. для него главное — сам процесс!
К счастью, большинство людей даже не дойдут до такой стадии. Большинство из указанных ниже причин зарубят желание делать игру намного раньше, чем человек дойдёт до такого состояния. Когда процесс создания игры заменит всё (ну или почти всё). В первый свой год мне было вообще несложно представить, что я брошу свой проект и вообще не буду заниматься геймдевом. А вот сейчас — уже не могу.
4. Основные проблемы
А теперь хочу осветить некоторые проблемы инди-разработчиков, о которых даже не догадывается множество других людей.
4.1. Проблема «Раз». Время
Главная проблема в разработке игр — это хронический недостаток времени (помимо самого того факта, что шанс сделать успешную игру очень мал).
Время — главный ресурс и главный враг инди-разработчика. С большой долей вероятности у всех людей, которые, как и я, разрабатывают игру в одиночку, есть основная работа, которая их кормит (напомню, что инди-игра с очень небольшой вероятностью сможет тебя «прокормить»). И свободного времени у тебя остаётся всего ничего — небольшой промежуток времени между окончанием основной работы и сном. А если у тебя есть семья и дети — то вообще непонятно, откуда брать это время.
Меня выручает только одно — я сейчас живу один и я привык мало спать (6 часов максимум). Этого хватает, чтобы достаточно быстро развивать свою игру (работая каждый день до часа-двух ночи). Да ещё и на основной работе нередко появляются «окна», когда я могу поработать над своим проектом.
Но и в такой ситуации времени катастрофически не хватает. В игре есть огромное количество вещей, которые я не реализовал только по одной причине — приходится постоянно выставлять приоритеты и реализовывать то, что в данный момент важнее.
4.2. Проблема «Два». Сдвиг сознания
Сдвиг сознания, который вызван всё большей вовлечённостью в свой проект.
В начале работы над игрой эта проблема не ощущается. Но по мере усложнения проекта каждая мелочь превращается в новые механики, которые надо реализовать и состыковать. Со временем — такие мелочи вырастают во всё больший и больший ком. И так — бесконечный ком проблем, которые надо постоянно решать.
И постепенно, твой проект начинает требовать всё большее время и всё большую вовлеченность!
А как же реал? А реал начинает всё больше отходить на задний план. Ты начинаешь меньше играть в игры, меньше смотришь фильмы и сериалы, всё меньше времени уделяешь другим хобби.
Не потому что «нельзя». А потому что не хочется. Вот реально — не хочется! Всё остальное кажется вторичным.
И здесь возникает важный вопрос: готовы ли к этому ты и твои близкие?
Потому что это уже не просто увлечение «игрулькой». Это нечто большее. И худшее.
А что было бы с моей игрой, имей я семью? Думаю, тут пришлось бы делать выбор — или работа над своей игрой-мечты или семья. Очень мало найдётся девушек, которые готовы смириться с тем фактом, что ты всё своё время и все свои мысли уделяешь разработке «игрульки», да ещё и с высоким риском провала.
Хорошим примером, который лишь подтверждает правило, может послужить история выпуска игры Stardew Valley, которая достигла какого-то невероятного успеха, хотя была сделана всего одним человеком. Очень многие знают эту игру и вдохновляются ею. Но мало кто знает, что игра смогла выйти лишь по той причине, что девушка разработчика около 8 лет работала на нескольких работах, чтобы им не умереть с голоду, пока её парень не закончил и не выпустил свою игру. Много вы девушек знаете, которые сделают подобное?
Кроме того, в процессе работы над своим проектом очень легко потерять связь с реальностью. Можно годами разрабатывать игру, которая окажется никому не нужна.
4.3. Проблема «Три». Маркетинг
Чертов маркетинг.
Как я уже не раз говорил — в настоящее время успех твоей игры, при прочих равных, напрямую зависит от качества её маркетинга. Именно от качества продвижения игры зависит то, какое количество людей узнают о ней и, соответственно, купят её.
Но хороший маркетинг — это область деятельности, которая не только крайне сложная, но и область, в неимоверных объёмах пожирающая самый основной ресурс разработчика инди-игры — его время.
Когда на меня снизошло понимание, что сделать хорошую игру и сделать хорошую успешную игру — это абсолютно разные вещи, я и занялся изучением этого самого маркетинга. И сильно ужаснулся. Особенно после того, как я копнул поглубже и понял, какое количество времени и сил на это требуется.
Просто делая ролики по игре или выпуская дневники разработки — ты не привлечёшь особого интереса к своей игре. Пока не начнёшь этим заниматься всерьёз. А это требует:
изучить основные алгоритмы продвижения на разных площадках (у каждой площадки свои алгоритмы), таких как YouTube, TikTok, Reddit и т. д.;
научиться создавать контент, который будет интересен людям (думаю, мало кому интересно было бы наблюдать, как какой-то ноунейм, наподобие меня, сидит за ПК и делает свою игру);
научиться работать с разными видеоредакторами, чтобы твой контент не выглядел совсем уж любительским;
посмотреть неимоверное количество обучающих уроков по всем направлениям маркетинга без реального понимания, какой из уроков полезен, а какой — гонит туфту;
совершать неимоверное количество телодвижений, чтобы всего-навсего разместить какой-то пост о своей игре на популярных площадках (те, кто публикуется на Reddit, знают, о чём я говорю — я до сих пор не смог опубликовать вообще ни одной статьи на данной площадке, даже если статья была на нейтральную тему (там боты через 1 секунду всё блокируют));
и многое-многое иное.
А всё это пожирает неимоверное количество времени. Это совсем иная область деятельности, которая не позволит тебе заняться разработкой игры, если ты серьёзно будешь заниматься маркетингом.
А что же делать в данной ситуации обычным инди-разработчикам? Времени вечно катастрофически не хватает на завершение своего проекта. А откуда взять новое время на объём работы, сопоставимый по времени, сложности и объёму с процессом самой разработки игры?
Если, конечно, у тебя есть куча денег — то этот вопрос снимается. Сейчас есть большое количество ресурсов, где, заплатив 10-20 тыс. долларов, можно очень серьёзно продвинуть свой проект. Но что делать обычным смертным, как как большинство соло-разработчиков?
На данный момент я нашёл единственный выход — найти «хорошего» издателя и загрузить его частью указанных выше проблем по продвижению проекта. Оказалось, что делать свою игру мне нравится намного больше, чем заниматься её продвижением. Изначально я вообще хотел обойтись без издателя, но жизнь всё расставила по своим местам.
4.4. Проблема «Четыре». Издатели
Издатели разные. Издателей много (с каждым годом всё больше и больше).
Но инди-разработчиков ещё больше. И с каждым годом будет становиться намного (если не на порядок) больше (об этом в следующем пункте).
Проведя анализ издателей, я их условно разделил на «хороших» и «мусорных».
Какой критерий я взял за основу деления? Очень простой — количество продуктов, выпущенных издателем, и (самое главное) — успех этих продуктов.
На рынке огромное количество «мусорных» издателей, которые выпускают игры просто пачками. Но подавляющее большинство выпущенных ими игр вообще не получили никакого успеха. Их принцип такой: мы берёмся издавать новую игру от какой-либо небольшой студии, вложим в её продвижение доллар и если, каким-то чудом она выстрелит, то мы тогда займёмся её продвижением по-настоящему. Одна из 50 игр выстрелила? Прекрасно! Пора заняться её продвижением и заработать! А на остальных 49 играх мы особо ничего и не потеряли. А ведь во многие из этих 49 инди-игр была также вложена вся душа и все силы.
А «настоящее» продвижение стоит денег. Причём, чаще всего, достаточно существенных денег. Поэтому я обхожу «мусорных» издателей стороной и пытаюсь заинтересовать своей игрой только тех издателей, которые имеют достаточно большой процент успеха у выпущенных ими игр (чтобы хотя бы 40-50% выпущенных ими игр имели какой-либо успех, пусть и не очень большой). И, как правило, у каждого из хороших издателей не так много выпущенных игр (в отличие от «мусорных»).
А вот после отсева «мусорных» издателей круг нормальных издателей оказывается не такой уж и большой. А потом среди нормальных издателей требуется отобрать ещё тех, которые выпускают игры со схожим жанром с разрабатываемой тобою игрой (например, издательства, специализирующееся на выпуске игр-ужастиков, просто не обратит внимание на мою карточную ККИ про танки).
Круг подходящих издателей ещё сильнее сжимается.
А вот потом вступает в силу третий критерий, который подходит не всем, а именно игре с моим жанром — бесплатная ККИ с сетевым режимом и длительной поддержкой. И издателей, которые имеют опыт выпуска схожих игр, — ещё меньше. Ведь у любого хорошего издателя накоплены определённые связи и опыт продвижения игр того жанра, которым они занимались. А вот ККИ с длительной поддержкой, да ещё и в сеттинге Второй мировой войны — это не просто узкий, а катастрофически узкий жанр.
Казалось бы — я делаю просто уникальную по механикам игру — смесь традиционной ККИ с танковыми механиками. На рынке просто нет игр подобного жанра. Мне всегда это казалось большим преимуществом игры. Но масштаб проблемы обнаружился, когда я начал искать издателя. Большинство из них просто понятия не имеет, что ждать от игры с жанром, как у меня.
Для понимания проблемы — в жанре ККИ в сеттинге Второй мировой у меня всего 1 (ОДИН КАРЛ!) потенциальный конкурент (с другими игровыми механиками, чем у меня). И он сам себя издаёт! Т. е. у него нет издателя.
А это означает, что среди сотен потенциальных издателей нет НИ ОДНОГО, который имел опыт издания бесплатной ККИ, похожей на мою, да ещё и с сетевым режимом, что дополнительно усложняет и так непростую ситуацию (мне один из моих потенциальных издателей много рассказывал о том, какие дополнительные сложности вызывает сетевой режим и необходимость поддержки онлайна, о которых я даже не задумывался).
Вот и делай после этого уникальную игру!
Правда меня выручают три вещи:
многие любят танки (в моей игре много танковых механик);
многие помнят игру, послужившей вдохновением для моей игры (WoT Generals);
аудитория классических ККИ тоже для меня не потеряна, т.к. в моём проекте есть все ключевые особенности ККИ.
4.5. Проблема «Пять». Нейрослопы
По моему мнению, которое я озвучил в упоминаемой ранее статье, развитие ИИ-агентов в очень скором будущем приведёт к появлению на рынке огромной массы игровых «поделок», слепленных этими самыми агентами под руководством людей, даже не имеющих представление о том, как писать код или как работать с игровым движком.
И подавляющее большинство этих «игровых продуктов» не будут иметь какой-либо глубины, но зато они будут хорошо выглядеть! Уж сварганить нормальную «обложку» агенты смогут без проблем.
И все эти «шедевры» полетят к издателям инди-игр! Это же просто будет массовый инди-спам, где среди тысяч игровых продуктов, выглядящих как настоящие игры, надо найти полноценные игры. Бедные издатели!
И как сделать так, чтоб твоя полноценна игра не потерялась в этом инди-спаме?
4.6. Проблема номер «Шесть». Бесконечная учёба
Лично у меня такой проблемы особо нет, но для многих это может стать камнем преткновения:
— надо постоянно учиться новой деятельности.
Человеческий мозг устроен так, что большая часть людей очень не любит серьёзно браться за любую новую область знаний/работы. Особенно после 30, когда ты уже отвыкаешь учиться. Ведь недостаточно просто ознакомиться с темой — для разработки игры постоянно требуется начать делать какую-то работу, которой ты раньше никогда не занимался. У многих людей (если не у большинства) само понимание того факта, что тебе надо взять и начать разбираться в чём-то совсем новом и незнакомом для тебя, — вызовет отторжение к такой работе.
Раньше никогда не работал с кодом? Кого это волнует? Хочешь сделать достаточно сложный продукт — будь добр, изучи и пойми, как он работает (хорошо хоть, что в нынешнее время хотя бы можно самому не уметь писать код).
Раньше не снимал трейлеры для игры? Хочешь хороший охват — то уж как минимум посмотри видео, как это делается, разберись, как работать с видеоредактором, и вперёд — трать кучу времени, чтобы сделать хороший трейлер!
Не нравится визуал твоей игры — вперёд! Изучай графические редакторы и начинай переделывать визуал так, как ты это видишь!
И так постоянно. На всём протяжении разработки.
Многих это отпугнёт. А кто-то может принимать это как бонус в виде постоянной прокачки своих навыков как инди-разработчика. И это правильный подход! Я текущий и я в начале разработке моей игры — это просто как два разных человека, если взять за критерий мои возможности.
4.7. Проблема номер «Семь». Современные тренды
Ты соло-разработчик. В штате у тебя:
Программист: Я;
Геймдизайнер: Я;
Художник: Я;
Маркетолог: Я;
Тестировщик: Я;
Переводчик: Я;
Левел-дизайнер: Я;
Саунд-дизайнер: Я;
Техподдержка: Я;
ну и т. д. Смысл, думаю, понятен.
И вот если ты, офигев от количества работы, которую ты должен успеть сделать, попытаешься ускорить разработку игры и сделать часть артов через нейросети, то ты получишь следующий бамс:
— подавляющее большинство издателей сразу выкидывают игре красный флаг, если увидят на скриншотах использование нейросетей.
Им неважно, что в проекте реализованы куча разных режимов, сотни карт, работающие способности, разные нации, выполнена их балансировка и прочее, прочее, прочее — это всё неважно, т.к. красный флаг уже вывешен.
Не имеет значение, хорошая ли игра, красивая ли игра, увлекательная ли, есть ли у неё потенциал и т. д. До данных параметров просто не доходит.
Как ни странно, к самим издателям претензий у меня нет. Хоть это случилось и не сразу, но один из представителей издателя мне обосновал причину таких действий, и их логику я понимаю. Такие сейчас времена — если в проекте будет явно виден след работы нейросетей, то игра рискует сразу получить много негатива на выходе, что моментально ей похоронит.
А издатели — это не благотворительные организации. Они умеют и должны считать деньги. И рисковать своими деньгами ради игры, которая может «умереть» из-за использования нейросетей, они не будут.
(Для издателя не имеют особого значения все эти кнопочки с разными режимами, за каждым из которых сотни часов адского труда)
И что делать соло-разработчику? Я ведь один, и в штате у меня нет художника! Ответ прост — осваивай новую профессию! Не умеешь рисовать — кого это волнует? Если хочешь найти издателя — то садись и рисуй! (мне в этом плане хоть повезло, надеюсь, что 9 классов художки мне помогут).
4.8. Проблема «Восемь». Одиночество
С большой вероятностью ты будешь один.
В том смысле, что очень мало найдётся «фанатиков», которые, так же как и ты, зажгутся идеей твоей игры и будут готовы тратить много своего времени на помощь в разработке твоей игры. Особенно сложно таких найти на начальных этапах разработки игры.
У меня хорошие друзья и знакомые, которые во многих вещах мне помогли в развитии моего проекта. Но я сразу понимал, что это именно мой проект и они мне помогают большей частью потому, что хорошие люди и хорошо ко мне относятся. Но требовать от них большего — я не могу. Ведь это ваш проект, а не их!
Но если найдутся люди, «загоревшиеся» твоей идеей и готовые тратить много времени на помощь тебе с твоей игрой — то ты счастливчик (благодаря моей группе в Telegram, как мне кажется, у меня получилось найти таких людей). А помощи всегда требуется много. Хотя бы взять то же тестирование разных режимов игры и бесконечную балансировку карт…
И уже тем более сложно будет найти понимание у остальных людей. Из моих коллег по основной работе о моей «второй жизни» не знает никто. Тем более есть понимание, что никакого одобрения у них не найду (это и понятно), а проблем получу массу (закономерных). А я провожу немало времени с ними.
4.9. Проблема «Девять». Страх
Страх того, что игра окажется никому не нужной;
Страх того, что игра окажется неуспешной;
Страх того, что делаешь всё неверно;
Страх того, что у тебя не получится довести проект до конца;
Страх, что у тебя не хватит таланта сделать хорошую игру;
Страх того, что реализованный тобою сетевой режим не сможет корректно работать, когда произойдёт наплыв игроков после релиза и оценки игры рухнут вниз;
Страх того, что ты так и не сможешь найти издателя;
И множество иных страхов за будущее проекта, на который ты потратил неимоверное количество сил и ради которого пожертвовал очень многим.
Не то чтобы страх был постоянным и всеподавляющим. Но у любого начинающего разработчика он постоянно стоит за спиной и часто напоминает о себе. И каждый раз приходится посылать его к чёрту и просто продолжать работать дальше. Приходится запрещать себе даже думать о нём. Но он всё равно раз за разом возвращается и напоминает о себе.
4.10. Проблема «Десять». Выгорание
Оно практически неизбежно. Практически все инди-разработчики рассказывали про этот период в процессе создания игры. Оно было, кажется, у всех, кто всё же смог выпустить свою игру.
И это очень трудный период. Период, когда вообще ничего не хочется делать. Когда возникает ощущение, что бы ты ни делал — ком проблем меньше не становится! Когда у тебя нет никакой уверенности, что у твоей игры будет успех или уверенности, что ты вообще сможешь закончить эту чёртову игру!
И не у всех получается нормально пережить этот период.
Выход, как мне кажется, только один — стиснув зубы работать дальше. Сила привычки работать над проектом должна помочь в этом.
У меня, пока такой период ещё не наступил, несмотря на почти 2 года разработки моего проекта. Но я подозреваю, что и моё личное выгорание ждёт своего часа.
5. Выводы
Можно ещё долго разбирать сложности соло-разработки игр. При этом, мною даже не были затронуты иные важные темы (проблемы с локализацией игры, проблемы с получением обратной связи, проблемы с отсутствием качественного тестирования игры, необходимость выработки привычки работать, необходимость соблюдать план разработки и многое иное), но если затрагивать все проблемы — то уж больно большая статья получится.
Но я вернусь к главной теме статьи: какого это — быть инди-разработчиком с учётом всего вышесказанного?
Как ни странно, я отвечу:
— Это классно!
И ведь это действительно классно!
Для любого человека очень важно осознание того факта, что-то, что он делает, — это хорошо и правильно. До начала разработки своего проекта я достаточно много свободного времени проводил в разных играх. Мне это всегда очень нравилось. Но всегда, когда я заканчивал играть, у меня было послевкусие впустую потраченного времени.
А вот при разработке своего проекта данное ощущение у меня не возникло ни разу. Даже если мой проект окажется мало кому интересным, я обогащусь бесценным опытом, который позволит и дальше наполнять мою жизнь смыслом — созданием своей игры.
Не говоря уже о том, что разработка игр — это по-настоящему творческая работа. Это постоянный креатив! Ведь мне постоянно приходится думать, как мне реализовать что-то новое в моей игре или как переделать уже внедренные, но плохо работающие механики. Я бесконечно улучшаю визуал игры. И мне это очень нравится! Для всех людей, которые любят творчество, — это прям огромная отдушина, которая позволяет реализовать твой потенциал.
А уж если твоя игра вызывает искренний интерес у множества других людей, то это вообще обалденное чувство! Когда ты делаешь ту игру, которую многие ждут и хотят поиграть!
Кроме того, я постоянно изучаю что-то новое и постоянно совершенствуюсь. Ощущение постоянного прогресса — это тоже классное ощущение!
Так что повторюсь: — Создавать игры — это классно, и я всем желаю поймать эту волну!
6. Краткий итог
Если меня спросить — а какая у тебя конечная цель с твоей игрой, что ты тратишь так много времени и сил на неё, я отвечу очень коротко:
— Заработать деньги!
Э-э-э, заработать деньги? Что за фигня? А как это соответствует всему, что ты писал ранее???
А очень просто — я хочу заработать деньги, чтобы я мог оставить свою основную работу и ещё больше сил и времени посвящать созданию своих игр! Ведь это так классно — делать свою игру!
Достигну ли я хоть какого-то успеха — я не знаю. Но у меня есть цель и я знаю, что хочу и к чему стремлюсь. И я приложу все свои силы для достижения этой цели!
Вам также желаю обрести свою цель в жизни! Всем спасибо и удачи!
п.с. И по традиции размещу несколько гифок и скриншотов с разрабатываемой мною игры. Надеюсь, она вас заинтересует и вы добавите её в список желаний (ссылка на страницу игры будет в комментарии под постом).
п.п.с. Также, напоминаю о канале в Telegram, посвященному разработке игры (ссылка есть на странице игры в Steam).









Ответ на пост «МУЖЧИНЫ И ЖЕНЩИНЫ ДОЛЖНЫ СПАТЬ РАЗДЕЛЬНО!»2
Я не весь поток сознания автора расшифровал, особенно про дырочки и пещерки.
Но что касается раздельного сна, тут максимально поддерживаю. Вот почему:
Мы с женой сейчас оба 100кг+, ну она конечно поменьше и колеблется от 99 до 100, а я застыл на 110 и ни туда ни сюда, благо рост все это компенсирует с лихвой. Когда познакомились были оба в районе 80 и спали всегда вместе на полутораспальной кровати.
Сейчас у нас у каждого своя кровать в разных комнатах. Мы тупо два бегемота не помещаемся нормально даже на двухспалку, да к тому же к нам постоянно приходит спать собака. Собака средних размеров, но тоже место занимает.
Но всё это полбеды, набрав вес моя любимая начала иногда выдавать такого храпака, что соседи стучали по батареям и в слезах просили наконец-то уже усыпить раненого медведя которого мы держим в квартире.
Самое обидное, если я уже уснул, мне не будет мешать ни храп, ни взрывы БПЛА на окраине города. Но это если я уснул, а под такой храп я это сделать не могу.
Она и к врачам ходила, и всякие штуки покупала чтобы не храпеть, но с природой не поспоришь, если ты бегемотик то шанс храпа кратно выше.
Ну и что мне делать? Не разводиться же, женщина она прекрасная во всех отношениях. А мне в 7 утра вставать и ехать на работу где заниматься умственной деятельностью. Так и приняли решение что она спит в зале на своём огромном раскладном диване, а я сплю в спальне на своей двухспалочке один (ну с собакой иногда, она то у неё, то у меня).
Стал ли я меньше любить и уважать жену после этого? Нет, мы так пять лет уже живем.
Так что все эти поговорки и присказки про совместный сон может и имеют место быть, но частные случаи никто не отменял. Не вижу в этом ничего плохого.
Chrome, Xfce и очень страшное кино
Сейчас вы снова убедитесь, что знание языка С сопоставимо с навыками самообороны, поскольку в современном мире мега-корпораций и победившего киберпанка на простых пользователей всем давно плевать.
Отдыхаем хорошо
Как и все нормальные люди, я смотрю фильмы, сериалы и длинные видео на ноутбуке и чтобы тот случайно не ушел в сон во время просмотра — включаю на нем «режим презентации».
Поскольку за последние годы все кино переместилось в веб, большую часть времени теперь используется не программа-видеоплеер, а обычный браузер Chrome/Chromium.
Однако после одного из обновлений, стал замечать, что браузер-то оборзел научился самостоятельно перехватывать засыпание ноутбука, блокировку экрана и запуск скринсейвера во время просмотра видео, без всяких «режимов презентации».
Затем такое поведение появилось и на обычных сайтах — без видимого видео или аудио-контента.
Без каких-либо сообщений, запросов и подтверждений на подобные действия. Затем ноутбук впервые разрядился в ноль, будучи оставленным с открытой страницей какого-то левого сайта, таймеры для suspend и hibernate внезапно не сработали.
После пятой по счету подставы с перехватом управления, автор окончально огорчился с такой наглости, достал любимый топор компилятор и стал изучать проблему в деталях.
Изучение проблемы
Первым делом я полез в поисковик, убедиться что проблема — не результат осеннего обострения или моего специфического окружения, в котором половина системы это разнообразные компиляторы и средства разработки, а другая — горы исходного кода.
Хотя в статье речь пойдет о Xfce, аналогичным обазом ведут себя все «большие» окружения — KDE, Gnome, Cinnamon и так далее:
Monitor dbus and inhibit swayidle when Firefox or Chromium request it
Хотя любители тайловых менеджеров — особая раса сверхлюдей, понять мотивы которых обывателю не дано, так что не буду даже пытаться.
Разумеется по этой проблеме есть давно заведенный тикет в трекере, с длиннющей перепиской, с приложенными дампами памяти и техническими деталями, открытый уже 11 лет:
Помимо означенного тикета в трекере Ubuntu, где тусуются в основном простые пользователи, нашелся еще один эпичный тикет в трекере уже самого Chromium, где обитают в основном разработчики, висящий аж с 2013 года:
Если прокрутить в самый низ страницы, можно заметить статус «Fixed» и битую ссылку на коммит (поскольку трекер переехал), суть которого — легализация специального API для управления блокировкой экрана и засыпанием.. прямо из кода на странице!
Примерно такого:
// The wake lock sentinel.
let wakeLock = null;
// Function that attempts to request a screen wake lock.
const requestWakeLock = async () => {
try {
wakeLock = await navigator.wakeLock.request();
wakeLock.addEventListener('release', () => {
console.log('Screen Wake Lock released:', wakeLock.released);
});
console.log('Screen Wake Lock released:', wakeLock.released);
} catch (err) {
console.error(`${err.name}, ${err.message}`);
}
};
// Request a screen wake lock…
await requestWakeLock();
// …and release it again after 5s.
window.setTimeout(() => {
wakeLock.release();
wakeLock = null;
}, 5000);
Как тебе такое, Илон Маск?
Повторяю для тех, кто еще не понял и не осознал:
любая веб-макака, верстающая на полставки
порносайты, ныне может с помощью специального кода на странице заставить браузер Chrome заблокировать засыпание вашего ноутбука.
И защитить от такого может лишь знание языка С и эта замечательная статья.
Механизм работы
Прежде чем «карать и патчить» очередную оборзевшую программу, стоит рассказать широкой аудитории как вся эта кухня вообще работает, хотя‑бы для осознания печальных реалий.
Есть одна неведомая штука в Linux-системах, под названием systemd:
systemd is a suite of basic building blocks for a Linux system. It provides a system and service manager that runs as PID 1 and starts the rest of the system.
Описание, взятое с официального сайта столь расплывчато не потому, что это перевод с языка рептилоидов, просто такого рода системные сервисы крайне непросто описать простыми словами, доступными обывателю.
Так вот, у этого замечательного systemd с недавних пор появился «сказочный» функционал, созданный для перехвата управления процессами засыпания и выключения системы:
systemd 183 and newer include a logic to inhibit system shutdowns and sleep states. This is implemented as part of systemd-logind.daemon(8)
Разумеется создан он был с самыми лучшими пожеланиями, ради блага и добра, но как и бывает при реальном использовании - все очень быстро скатилось в треш-угар и рекламу онлайн-курсов.
Да, этот функционал отключаемый, но с последствиями, вроде сломанного процесса автоматического засыпания из менеджеров управления питанием. И риском загнуть систему целиком при обновлении, поскольку например менеджеры пакетов выставляют подобную блокировку при установке пакета.
Можете конечно попробовать заблокировать механизм inhibit в systemd, но все последствия — на вас и вашей совести.
Мы же пойдем немного другим, менее радикальным путем.
Менеджер управления питанием Xfce
Этой командой можно посмотреть список запущенных перехватчиков:
systemd-inhibit --list
В моей системе (Linux Manjaro) вывод выглядит следующим образом:
Обратите внимание, что самого браузера Chrome в списке нет, зато есть xfce4-power-manager — менеджер управления питанием из Xfce, который принимает входящие запросы на перехват и решает что делать дальше.
Остальные сервисы обрабатывают только события засыпания (sleep).
Так что наша цель это xfce4-power-manager , именно туда мы сейчас и залезем, для нанесения правок.
xfce4-power-manager — по большей части фоновое приложение, автоматически запускаемое при старте среды Xfce. Но в отличие от прошлого поциента, тут есть некоторый интерфейс и взаимодействие с пользователем, которое происходит с помощью иконки в трее:
По нажатию правой кнопки мыши, появится меню со списком дерзких приложений, которые в данный момент перехватывают управление питанием:
Так что ответственный за весь этот электронный беспредел был наконец четко определен.
Кровавый патчинг
Исходный код менеджера управления питанием находится в основном репозитории Xfce, исправляемая версия должна совпадать с установленной локально, чтобы не словить феерические проблемы совместимости.
Автор использовал версию 4.20, установленную на момент написания статьи.
Место предстоящей правки — файл xfpm-inhibit.c, в который вынесена вся логика по обработке перехватов (inhibit).
Нас интересует метод xfpm_inhibit_inhibit,строка 370, где начинается обработка входящего запроса на перехват управления.
Код метода небольшой, поэтому привожу его целиком:
static gboolean
xfpm_inhibit_inhibit (XfpmInhibit *inhibit,
GDBusMethodInvocation *invocation,
const gchar *IN_appname,
const gchar *IN_reason,
gpointer user_data)
{
const gchar *sender;
guint cookie;
if (IN_appname == NULL || IN_reason == NULL)
{
g_dbus_method_invocation_return_error (invocation,
XFPM_ERROR,
XFPM_ERROR_INVALID_ARGUMENTS,
_("Invalid arguments"));
return TRUE;
}
sender = g_dbus_method_invocation_get_sender (invocation);
cookie = xfpm_inhibit_add_application (inhibit, IN_appname, sender);
XFPM_DEBUG ("Inhibit send application name=%s reason=%s sender=%s",
IN_appname, IN_reason, sender);
xfpm_inhibit_has_inhibit_changed (inhibit);
xfpm_dbus_monitor_add_unique_name (inhibit->priv->monitor,
G_BUS_TYPE_SESSION, sender);
xfpm_power_management_inhibit_complete_inhibit (user_data,
invocation, cookie);
return TRUE;
}
Обратите внимание на вызов метода XFPM_DEBUG, содержащего текст отладочного сообщения. Все подобные сообщения становятся видны только если запустить xfce4-power-manager с ключом --debug.
Именно так и было найдено место будущей правки, после сообщения в консоли:
xfpm_inhibit_inhibit(): Inhibit send application name=/usr/lib/chromium/chromium reason=Video Wake Lock sender=:1.459
Что мы имеем в итоге:
есть единственная точка входа (метод) в менеджере управления питанием, с которой начинается регистрация перехватчика управления;
метод принимает на вход название приложения (полный путь), посягнувшего на такой перехват.
Думаю не надо иметь высшее техническое образование, чтобы догадаться как будет выглядеть финальное решение этой проблемы:
if (strstr(IN_appname,"chrom") != NULL ) {
XFPM_DEBUG ("Chrome уходи!");
return TRUE;
}
Для не знающих и не владеющих:
метод strstr проверяет на входжение слова «chrom» в названии дерзкого приложения, которое отправило запрос на перехват управления питанием, если оно там есть — происходит немедленный выход из этого метода, а запрос игнорируется.
Вот так, всего лишь 4 строчки на С, вставленные в нужном месте, сразу после проверки на пустоту обламывают рога оборзевшему браузеру, созданному мировой корпорацией, которая решила, что «мы знаем как лучше».
Так это выглядит в действии после наложения моего «кровавого» патча:
В этот знаменательный день браузер Chrome.. пошел лесом.
Сборка
Теперь поговорим о печальном — о сборке всего этого цирка с конями.
Проект xfce4-power-manager это уже существенная часть Xfce, чтобы собрать его из исходников и заставить работать — придется постараться.
Во-первых, не стоит забирать исходники непосредственно из репозитория, поскольку в проекте используется кодогенерация и в этом случае придется заниматься еще и ей, устанавливая дополнительные пакеты в систему.
Куда проще скачать готовый архив со специально подготовленными исходниками релизной версии.
Напоминаю что мы патчим версию 4.20.
Во-вторых, придется установить в систему довольно много библиотек и утилит для разработки:
Gtk+ and Glib headers, in some distributions called the -devel packages
Xfce 4.20 requires Gtk+ 3.24 and Glib-2.0 >= 2.72 (See also: 4.20 dependencies)
Same version for gmodule-2.0, gobject-2.0, gthread-2.0, gio-2.0 and gdbus
gdk-pixbuf-2.0 >= 2.42.8
gobject-introspection >= 1.72
gtk-layer-shell 0.7.0
pkgconfig
Это не весь список, тут внизу страницы находится специальная таблица с описанием зависимостей между компонентами Xfce, часть из которых также придется установить.
Таков путь.
Распаковываем скачанный архив с исходниками и запускаем скрипт configure:
tar xvjf ~/Downloads/xfce4-power-manager-4.20.0.tar.bz2
cd fce4-power-manager-4.20.0
./configure --disable-wayland
Поскольку сам автор не использует Wayland — тут отключена зависимость от него при сборке, но если вам оно актуально, придется установить дополнительные библиотеки:
wayland 1.20
wayland-protocols 1.25
Добавляем описанный выше блок в файл src/xfpm-inhibit.c и наконец запускаем сборку:
make
Если сборка завершится успешно, в каталоге src будет готовый бинарник с патчем, проверить который можно так:
pkill -f xfce4-power-manager
./src/xfce4-power-manager --debug
Дальше открываем в Chrome любую страницу с видео и смотрим выдаваемые сообщения:
Разумеется, после такого патча вам придется вручную включать и отключать режим презентации (Presentation mode) при просмотре длинных роликов в браузере, зато процесс будет полностью контролируемым.
Также подобным образом можно «обламывать рога» и другим интересным приложениям, дерзнувшим покуситься на управление питанием, например с недавних пор за подобным неблаговидным делом был замечен Firefox.
Эпилог
Грустно наблюдать (в который уж раз), как некогда хороший софт, по мере роста популярности скатывается в полное УГ отрицание пользовательского опыта и начинает считать своих пользователей полными идиотами:
неотключаемые опции, неизменяемое поведение и просто наглая ложь — все это стало, к великому сожалению, постоянными спутниками самого популярного браузера на планете.
И лишь владение языком С и навыки системного программирования все еще позволяют ставить на место оборзевшие программы — изучайте же инженерное дело настоящим образом!
Статья была опубликована на Хабре, оригинал статьи как обычно в нашем блоге.
























