Как стать автором
Обновить
13
0
Отправить сообщение

Игровая техподдержка в мобильном шутере: тандем Discord и Zendesk

Время на прочтение7 мин
Количество просмотров1.8K

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

Поэтому занялись улучшением процессов: расширили штат сотрудников, обновили график для поддержки 24/7 и внедрили саппорт-сервис Zendesk. Подробнее обо всем под катом.

Читать далее
Всего голосов 38: ↑35 и ↓3+32
Комментарии1

Нативный маркетинговый инструмент App Store и Google Play или Как рассказать об апдейте прямо на странице приложения

Время на прочтение10 мин
Количество просмотров3.1K

Лайв-опсами можно назвать по сути любые апдейты и ивенты в приложении. Раньше в App Store и Google Play не было нативных маркетинговых инструментов для их продвижения, затем появились лайв-опс карточки. Они могут прямо в сторе познакомить пользователя с игровыми ивентами, и ему даже апдейт качать не придется. 

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

Читать далее
Всего голосов 38: ↑37 и ↓1+36
Комментарии1

Как выжить при быстром росте аудитории, когда игра за день становится хитом

Время на прочтение8 мин
Количество просмотров12K

В 2013 году, когда игры-сервисы были где-то в зачатках, мы продавали Pixel Gun 3D за доллар просто как прототип FPS-шутера. В игре была одна карта, одно оружие и два вида зомби, при этом она сильно цепляла эмоционально — игрокам приходилось выживать в ограниченном пространстве с постоянно появляющимися монстрами. Словом, адреналин зашкаливал (по этой же причине до сих пор популярны батлрояли). 

Проект выложили в стор и тут началось: огромное количество установок, оценок, отзывов. Вскоре он занял топ-1 в App Store среди платных игр. Мы совсем были не готовы к огромному потоку игроков, которые что-то советовали, писали развернутые фидбеки и всячески пытались выйти на контакт. 

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

Читать далее
Всего голосов 60: ↑59 и ↓1+58
Комментарии6

Ошибки геймдизайна или как мы сделали игровой режим, который был никому не нужен

Время на прочтение13 мин
Количество просмотров32K

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

Мечтали о своих кланах и мы. Не просто мечтали, а сделали. Трижды.

Под катом я расскажу о каждых граблях, на которые мы наступили в процессе разработки: механики, которые работают не по плану, проблемы экономики, смурфинг, и даже «договорняки» через Discord.

Читать далее
Всего голосов 91: ↑91 и ↓0+91
Комментарии10

Децентрализованная конфигурация webpack или как упростить сборку проекта

Время на прочтение8 мин
Количество просмотров8.8K

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

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

Но если говорить о конфигурации сборки, то такая декомпозиция скорее редкость, и в больших проектах часто можно встретить огромные webpack.config.js, модификация которых может доставить немало проблем и привести к ошибкам.

Если вам хочется сделать работу со сборкой проще и надёжнее при модификациях, то добро пожаловать под кат.

Читать далее
Всего голосов 51: ↑51 и ↓0+51
Комментарии19

11 худших особенностей Windows 11, и как их исправить

Время на прочтение8 мин
Количество просмотров344K


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

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

Предлагаем вашему вниманию худшие особенности Windows 11 и пути их исправления – или, по крайней мере, смягчения.
Читать дальше →
Всего голосов 100: ↑89 и ↓11+78
Комментарии343

Увеличивает ли соседство простых чисел количество делителей числа?

Время на прочтение12 мин
Количество просмотров9.4K

В последнее время я думал о числе 60.

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

Но у числа 60 есть и другая особенность, которую я заметил только несколько недель назад, хотя о ней могли знать вавилоняне, а уж Рамануджан знал точно. Число 60 с его выдающимся количеством делителей тесно расположено между двумя другими числами, вовсе не имеющими делителей, за исключением 1 и самого себя: и 59, и 61 являются простыми. Такие пары простых чисел, разделённые одним промежуточным целым, называются числами-близнецами. Примерами таких чисел являются пары (5, 7), (29, 31) и (1949, 1951). На протяжении многих лет исследователи теории чисел внимательно изучали числа-близнецы. Меньшего внимания удостоилось число посередине — непрошенный гость, отделяющий близнецов друг от друга. Рискуя выглядеть немного слащавым, я назову это число посередине братом близнецов, или просто братом.
Читать дальше →
Всего голосов 74: ↑74 и ↓0+74
Комментарии2

Нужна ли вакцинация переболевшим?

Время на прочтение11 мин
Количество просмотров79K

Сколько длится иммунитет после болезни и вакцинации?

Есть понятие напряженного иммунитета и ненапряженного (долговременного) иммунитета. В первые месяцы после болезни (и вакцинации) наблюдается напряженный иммунитет, который защищает от повторного заболевания: в крови 3-7 месяцев определяются высокие титры антител, 1-2 месяца циркулируют цитотоксические Т лимфоциты. Постепенно антитела исчезают и Т лимфоциты мигрируют в лимфоузлы, однако в организме остаются В и Т клетки памяти, долгоживующие плазматические клетки, которые при повторной встрече с антигеном быстро развертывают иммунный ответ. Активация иммунных клеток памяти в организме и синтез антител занимает примерно 3-10 суток. Это долговременный иммунитет, который плохо защищает от заражения, но снижает тяжесть течения болезни.

Читать далее https://habr.com/ru/post/5699
Всего голосов 175: ↑155 и ↓20+135
Комментарии815

Как добавить обязательный запрос на IDFA через App Tracking Transparency

Время на прочтение6 мин
Количество просмотров4.4K

С весны этого года каждый iOS-разработчик должен запрашивать разрешение пользователя на использование рекламного идентификатора IDFA. В предыдущей статье мы сделали подробный обзор изменений в App Store и их влияния на мир iOS-разработки.

А сегодня — практический материал. Расскажем, как с помощью нового фреймворка App Tracking Transparency добавить в своё приложение обязательный запрос на использование персональных данных, как потом эти данные передавать рекламным сетям и что делать, если пользователь решил не делиться своей активностью. 

Читать далее
Всего голосов 48: ↑45 и ↓3+42
Комментарии6

Чаты на вебсокетах. Теперь про бэкенд

Время на прочтение4 мин
Количество просмотров14K

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

Ниже подробности о том, что было до написания кастомных чатов и какие стояли требования к реализации, из каких компонентов они состоят, как вписываются в нашу инфраструктуру и что получилось в итоге. А в конце статьи — ссылки про особенности разработки наших чатов на вебсокетах для iOS и Android.

Читать далее
Всего голосов 51: ↑51 и ↓0+51
Комментарии17

Добавляем ботов в мультиплеерный шутер на Unity

Время на прочтение7 мин
Количество просмотров8.8K

С ростом проекта в него приходит постоянно приходит новая аудитория: как матерые игроки, так и новички в жанре. Закинуть всех в один матч можно, но первым будет скучно, а вторым — сложно. В итоге всех можно потерять уже на старте.

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

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

Читать далее
Всего голосов 47: ↑46 и ↓1+45
Комментарии2

20 вещей, которые я узнал за 20 лет работы инженером-программистом

Время на прочтение8 мин
Количество просмотров99K

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

Особенно отзываются пункты «стройте компактные системы» и «лучший код — это отсутствие кода». Последний совет я превращаю в цитату из какого-то второсортного фильма про самураев: «Лучшая победа — та, которую ты одержал, не доставая меч из ножен» (думаю, сослуживцы за моей спиной уже закатывают глаза). И, конечно, бесконечные разговоры про легендарных 10x-программистов постоянно хочется прервать советом не связываться с 0,1x-программистами (которые реально существуют, в отличие от 10x).

Читать далее
Всего голосов 186: ↑181 и ↓5+176
Комментарии158

App Tracking Transparency: что изменилось с новой политикой приватности от Apple

Время на прочтение6 мин
Количество просмотров6.3K

Apple в прошлом году заставила понервничать весь мобильный рекламный рынок, анонсировав для App Store новую политику приватности данных. Теперь создатели приложений обязаны спрашивать разрешение пользователей на рекламный трекинг (да-да, тот самый нашумевший IDFA). Правила, которые несколько раз откладывали, вступили в силу в начале этого года. 

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

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии2

Оптимизация игр на Unity: проверенный в деле план

Время на прочтение10 мин
Количество просмотров31K

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

Читать далее
Всего голосов 33: ↑32 и ↓1+31
Комментарии2

Перешли всем отделом геймдизайна на Notion. Полёт нормальный

Время на прочтение10 мин
Количество просмотров21K

Недавно наш отдел геймдизайна поменял основной инструмент и переехал с Google Документов на Notion — хотели решить проблемы хранения и организации документов. В общем, ни разу не пожалели. 

Notion — это такой мегакомбайн, совмещающий в себе Jira, Confluence и Google Docs. В нем бок о бок уживаются огромная база данных, совместная работа над документами, календари, напоминания, списки задач, канбан-доски, интеграции сторонних инструментов и много-много другого.

Для себя мы организовали удобное хранилище всех геймдизайнерских материалов (ГДД, концепт-доки, фоллоу-апы, планы по контенту и так далее), сделали систему тегов, которая быстро позволяет найти любой документ, и создали готовые шаблоны для создания ТЗ в пару кликов.

Под катом расскажу, зачем решили сменить инструмент, как его выбирали и почему остановились на Notion. А мой коллега поделится логикой и организацией инструмента изнутри.

Читать далее
Всего голосов 50: ↑50 и ↓0+50
Комментарии18

Дообучаем готовую нейросеть для классификации данных

Время на прочтение12 мин
Количество просмотров6.6K

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

• approved — картинки идут в раздел collective (развлекательный контент и мемы);
• not suitable — не попадают в общую ленту, но остаются в ленте пользователя (селфи, пейзажи и другие);
• risked — получают бан и удаляются из приложения (расизм, порнография, расчленёнка и всё, что попадает под определение «противоправный контент»).

Сегодня расскажу на наглядных примерах, как мы перестраивали модель под наши классы, обучали её и выделяли паттерны распознавания картинок. Технические подробности — под катом.

Читать далее
Всего голосов 49: ↑48 и ↓1+47
Комментарии0

Jetpack Compose — как легко построить UI на Android

Время на прочтение4 мин
Количество просмотров14K

В июле этого года вместе с Android Studio Arctic Fox вышла одна из долгожданных библиотек — Jetpack Compose. Она позволяет создавать пользовательский интерфейс в декларативном стиле и обещает быть революцией в построении UI.

Разбираемся, так ли это на самом деле, какие у библиотеки преимущества и недостатки. Подробности — в статье.

Читать далее
Всего голосов 51: ↑46 и ↓5+41
Комментарии15

Photon Plugin: защищаем игровой процесс от читеров

Время на прочтение7 мин
Количество просмотров5.7K

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

Мы используем Photon Cloud для сетевого взаимодействия игроков, поэтому сразу стали искать удобное решение на его основе. И нашли Photon Plugin, который закрыл все потребности. Изначально его вводили только для защиты, но потом стали использовать и при разработке новых фичей, где требуется серверная логика. Как мы его внедряли — рассказал под катом.

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии6

Jetpack Microbenchmark — тестируем производительность кода

Время на прочтение6 мин
Количество просмотров4K

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

В этой статье расскажу, как устроена и работает библиотека Microbenchmark от Google, а также покажу примеры использования. С ней можно не только оценить производительность, но и решить спорные ситуации на код-ревью.

Читать далее
Всего голосов 43: ↑42 и ↓1+41
Комментарии0

Как нейросети помогают делать ремастеры

Время на прочтение10 мин
Количество просмотров9.2K

Наиболее очевидный способ освежить игру — увеличить в ней разрешение, обновить текстуры и можно снова выкладывать в стор. В том числе по этой причине GTA V выходит уже на третьем поколении консолей, но сейчас не об этом. 

Есть примеры и легендарных проектов, которым переиздание было просто необходимо. Среди таких, например, Mass Effect Legendary Edition. Игра стала одним из первых AAA-ремастеров, где разработчики, чтобы облегчить себе жизнь, использовали нейросети для апскейлинга текстур. Наткнулись на подробный разбор, что это за технология, чем отличается от DLSS и как работает. Примеры тоже имеются. Подробности — под катом.

Читать далее
Всего голосов 32: ↑32 и ↓0+32
Комментарии5
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность