24 сентября 2022

Рекомендательное

Что я понял за 6 лет в независимом геймдеве на платформе ботов Telegram. И что я мог бы посоветовать другим начинающим разработчикам. Все рекомендации являются лишь моим субъективным взглядом на опыт нескольких лет разработки игр в Telegram, многие вещи могут показаться очевидными, однако именно этими вещами мы чаще всего пренебрегаем. 


  1. Поймите кто ваши будущие игроки. Изучите психотипы Бартла и поймите какая из ваших будущих механик чьи потребности будет удовлетворять. Одна механика может удовлетворять несколько психотипов. Главное вы должны понимать для кого вы это делаете, чтобы отсечь ненужное, что очень полезно, когда ты единственный разработчик и твое время сильно ограничено.

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

  3. Правильно выбранная архитектура может сэкономить кучу времени в будущем. Для игр на основе ботов Telegram нет готовых движков и фреймворков и многие вещи приходится изобретать самому. А учитывая, что я вовсе не собирался делать BS масштабным и долго поддерживать, то делал как велит сердце и в итоге всё пришлось переписать заново. Информацию об архитектурах многопользовательских игр найти непросто, а то, что есть, может показаться избыточным или неподходящим. Здесь, скорее всего, придется изобретать свои велосипеды, но всегда помнить о необходимости масштабирования при нагрузках. А нагрузки появятся когда ты их совсем не ждешь. 

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

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

  6. Логируйте абсолютно все. Каждое действие, каждую транзакцию, каждое взаимодействие. Логируйте туда, где можно осуществлять удобный поиск и агрегации по записям. Не обязательно хранить все логи, иначе они скорее всего будут съедать порядочный объем на диске и замедлятся выборки и агрегации по ним. Вам будет достаточно от одного до трех последних месяцев. Логи за больший период времени на моей памяти мне ни разу не пригодились. Остальные можете смело удалять или, если есть возможность, архивировать на какой-то срок. Логи вам понадобятся для выявления твинков и ботов как в ручном, так и в автоматическом режиме, когда станут понятны паттерны нарушений, а также логи помогут вам апеллировать обращения игроков, у которых что-либо пропало, но они ничего не делали, а на деле всё ровно до наоборот. Даже только при упоминании слова “логи” трепещут все нарушители и ликуют честные игроки.

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

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

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

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

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

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

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

  14. У игры должен быть чат, а лучше несколько. Чат, где можно спросить, с жесткой модерацией и чат, где можно пообщаться. Можно сделать только первый чат, но игроки обязательно создадут сами второй чат, а в какой-то момент там появятся разногласия и жаловаться придут именно к вам. Потому лучше создать оба чата под своим руководством. Именно отсюда начинается построение комьюнити.

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

  16. У вашей игры должна быть база знаний. Большинство игроков не будут ее читать, но остальные обязательно ознакомятся и уже передадут эти знания другим в упрощенной форме. Главное, чтобы вся эта информация была на видном месте, в удобочитаемой форме и в актуальном состоянии. Перед каждым релизом вносите правки в базу знаний, не оставляйте на потом.

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

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

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

  20. Дружить с комьюнити можно и нужно, но иметь определенные границы. В какой-то момент может возникнуть ситуация, когда вам придется наказать “близкого” вам игрока или принять решение против него, что может показаться тяжелым проступком, в противном случае вас обвинят в подыгрывании, а это испортит ваш рейтинг. Сюда же стоит отнести ограничение распространяемой информации о себе. Адрес проживания, семейное положение, уровень дохода, да что угодно, что можно использовать против вас. На моей памяти были только угрозы заблокировать мой донатный счет или дискредитировать игру на просторах интернета, но вот коллеге по цеху на долю выпали угрозы расправы после вычисления адреса проживания. Однако это всё не мешает проводить сходки сообщества, если есть такая возможность. Просто выбирайте публичные места.

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

  22. Твинки и боты, а также твинки-боты могут сильно подпортить игровой опыт игроков. Начиная новый проект, нужно сразу закладываться на нечестных игроков и стараться избегать выгодных для злодеев механик, а также реализовывать какие-то базовые защиты от них. С ботами бороться очень сложно в ручном режиме, а парадоксален тот факт, что именно ботоводы – те самые небезразличные к твоей игре игроки. Именно им стало настолько интересно, что они не ушли из игры, а приложили усилия и автоматизировали некомфортные аспекты и будут продолжать это делать по мере развития игры. В такие моменты лучше задуматься нужна ли та механика, от которой игроки стараются избавиться через скрипты и может ее стоит автоматизировать на уровне игры? Но бороться с нарушителями нужно. И от ручных проверок будет сложно уйти. Главное доносить до игроков максимально широко и регулярно, что борьба ведется и не только словом, но и делом. И тогда на нарушения решатся только самые отчаянные, а чем меньше нарушителей, тем меньше вреда игровому опыту других игроков. На это не всегда будет хватать времени и желания, можно даже отложить проверки на некоторое время, но НИ В КОЕМ СЛУЧАЕ не нужно пускать этот пункт на самотек и помнить, что нарушители есть всегда, даже если тебе кажется иначе. 

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

  24. Игрокам всегда мало контента. Хоть вы будете выпускать обновление каждую неделю, хоть раз в полгода – всегда будет мало. Особенно вечно скучающие “старички” будут просить чего-то нового, раз за разом спрашивать когда следующий релиз. Не ведитесь, сохраняйте свой привычный темп разработки. Им все равно будет сложно угодить. Можно попробовать вводить “долгие” механики, например, сложный последовательный крафт с добычей ресурсов, или боевые пропуски на месяц, но здесь важно не переусердствовать, ведь если затрачиваемые усилия на достижения цели будут слишком высокие, игроки даже пробовать не станут.

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

  26. Не игнорируйте идеи игроков, особенно, если они легко реализуемы и не оказывают негативного воздействия на баланс. Указывайте в релизных отчетах авторов этих идей. Желание игроков помочь – бесценно, многие хотят помочь, но не многие действительно помогут. Чем больше вы будете взаимодействовать с неравнодушными игроками, тем быстрее и качественнее ваш проект обрастает экосистемой, созданной игроками, в виде дополнительных инструментов или гайдов.

  27. Донаты нужны с самого первого дня. Это отличная мотивация разработки и возможность избежать бессмысленных расходов личных средств. Ваш проект должен хотя бы частично окупать ресурсы: сервера, домены и сопутствующие сервисы. Если вы держите игру на своем домашнем сервере или, того лучше, на обычном компьютере или ноутбуке, который может быть выключен в любой момент, то, скорее всего, ваш проект не очень серьезен и за такое брать деньги я бы не советовал. Комфорт игроков не должен перебиваться проблемами вашего провайдера или включенного торрента. Не обязательно искать решения с автоматическим приемом платежей. Если платежеспособных игроков не так много, то можно обрабатывать донаты вручную. Главное донести до игроков, что такая возможность есть и иметь четкий прайс имеющихся предметов и услуг. Также все игроки должны быть в одинаковых условиях относительно донатов. Не нужно продавать эксклюзивов одним игрокам и скрывать это от других, как бы сильно первые этого не просили. А такие игроки обязательно будут. Чаще всего это донатеры, которые платят больше других и соответственно считают, что у них есть привилегии. 

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

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

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

  31. Если вы стартуете проект чтобы подзаработать, то скорее всего вы ошиблись временем и местом. Игру в Telegram можно делать для души и для признания в кругу небольшого комьюнити, но никак не для заработка. Его там попросту нет, если, конечно же, вас не заинтересовал мелкий заработок при максимуме усилий. Конечно, всегда может найтись исключение и какая-то игра “выстрелит”, но каков шанс что это будет именно ваша игра? Однако если уж очень сильно хочется попытаться сделать такую игру, то сразу понадобится команда и большие вливания средств в рекламу. И это уже не говоря о механиках, направленные на удержание и возврат игроков внутри самой игры о чем напишу ниже.

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

  33. В игре должно быть обучение. Обязательно простое. Желательно короткие тезисы с эмоджи и подсветкой основных моментов. Если обучение будет сопровождать игрока по мере его добровольных действий, то это еще лучше. Главное не оставлять игрока одного на произвол судьбы в незнакомом месте.

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

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

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

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


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

Всем мир.


Комментариев нет:

Отправить комментарий