Как стать автором
Обновить

Компания Playrix временно не ведёт блог на Хабре

Сначала показывать

Шрифты в играх: (почти) идеальные засечки, кернинги и иероглифы

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

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

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

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

Шрифты в играх: как из 191 Мб сделать 12 Мб

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

Каждый, кто хоть раз играл в игры Playrix, замечал, что в них приходится много читать. Тексты окружают игрока повсюду: это разные элементы интерфейса, окна сезонов, баннеры, а также диалоговые окна, в которых разворачиваются целые сюжетные линии. Иногда нам кажется, что если собрать все наши игровые тексты, то можно выпустить ещё один том «Войны и мира». 

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

Читать далее
Всего голосов 24: ↑23 и ↓1+22
Комментарии12

Как организовать техническую поддержку в 130 городах мира для 4000 сотрудников. Опыт Playrix

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

Мы в Playrix с 2015 года перешли на систему, когда сотрудники могут сами выбирать, где им удобнее работать — в офисе или удаленно. Когда в прошлом году на дистанционную работу перешли все, уже имеющийся успешный опыт работы с удаленными сотрудниками стал для нас огромным преимуществом. 

В этой статье мы расскажем, как организовать удаленную техподдержку и обеспечить пользователей ИТ-оборудованием в 130 городах мира — от Владивостока в России до Сантьяго в Чили.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии11

Движок VSO: причиняем добро сценаристам

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

В этой статье мы расскажем о том, как вместе с «движковой» командой разработали наш внутренний редактор ICS и упростили процесс работы с проигрыванием кат-сцен.

Read more
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Как устроена система игровых событий в проектах Playrix

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

В продолжение темы нашего движка VSO, которую затронули ребята в статьях про разработку нашей «маленькой Unity» и про улучшение редактора, расскажу об одной из систем, относящихся к игровой логике. Это кросс-проектная система игровых событий GameEvents.

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

Движок VSO: Под капотом нашего редактора

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

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

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

Яблочный CI

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

Введение


Мы — команда Platform в Playrix, у нас большая и сложная билд-ферма, использующая возможности всех платформ и облачных решений и успешно применяющая их на практике. В этой статье я бы хотел поделиться с вами особенностью работы с платформой MacOS.

Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Путь от хаоса к порядку. Как справляться с инцидентами и успевать достигать цели? Делимся опытом

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

Введение


Мы — команда Platform в Playrix, и мы предоставляем серверную инфраструктуру, CI/CD и сервисы автоматизации. Платформа состоит из трёх мини-команд, две из которых являются операционными. В этой статье я хочу рассказать, как мы победили хаос в этих командах и сделали их работу прозрачнее, эффективнее и спокойнее. Мы прошли непростой путь, но сейчас довольны (почти) результатом и готовы про него рассказать.

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии11

Как мы улучшили интерфейс VSO — движка Playrix и приблизили его по удобству к Unity

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

Ранее на Хабре мы уже писали о том, как сделали собственный игровой движок VSO, а сегодня расскажем, как мы улучшали его интерфейс и удобство работы с ним. Статья будет полезна всем, кто только начинает разбираться с UX/UI и хочет узнать, как с помощью базовых принципов построения интерфейса сделать работу со своим инструментарием удобнее и эффективнее.

Читать далее
Всего голосов 26: ↑21 и ↓5+16
Комментарии22

Внедрение подхода «Self-Service» для самостоятельного анализа данных

Время на прочтение16 мин
Количество просмотров8.5K
Инструменты Business Intelligence (BI) за последние несколько лет проникли почти во все виды бизнеса, а изучению данных уделяется все больше внимания и выделяется больше ресурсов. Если говорить об IT-компаниях, то здесь, наверное, большинству понятно предназначение Business Intelligence и то, какую ценность для компании представляет анализ внутренних данных. 


Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии2

Как убедить гейм-дизайнера запустить тесты?

Время на прочтение10 мин
Количество просмотров3.8K
Полагаю, ни для кого не секрет, что в разработке игр участвует очень много специалистов, а не только программисты. Выпуск игры невозможен без художников, моделлеров, VFX-художников, и, конечно, гейм-дизайнеров. Кстати о последних. Мы их очень любим, но они часто ломают ресурсы. Не то чтобы они хотят это делать, но из-за особенностей работы им нужно делать много мелких правок, и шанс накосячить выше. И ведь множество ошибок — это тривиальные опечатки, недописанная или, наоборот, лишняя удалённая строка. Всё это можно исправить не отходя от кассы. Но как это сделать? Прописать в регламенте, что перед коммитом обязательно запустить %my_folder%/scripts/mega_checker? Мы проверяли — не работает. Человек — существо сложное и забывчивое. А проверять ресурсы хочется.

Но мы нашли выход — теперь нельзя закоммитить в репозиторий без тестов. По крайней мере незаметно и безнаказанно.


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

Сборка, роутинг и обслуживание метрик

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

Введение


Неотъемлемой частью любой сложной системы является телеметрия (мониторинг). Она включает в себя сборку логов, сборку различных метрик из разных частей системы, межсервисную трассировку вызовов и в самых критических случаях, если это возможно, — ручное взаимодействие. В этой статье мы остановимся только на процедуре сбора метрик. Возможно, кому-то наш подход покажется архаичным и устаревшим, однако для нас он, как говорится, battleprоven и хорошо себя зарекомендовал в наших условиях.



В основе наших метрик лежит хорошо известная система Graphite. Здесь мы не будем останавливаться на базовых вещах его конфигурирования и первичной настройки, для этого существует достаточное количество материалов в интернете, скажем лишь то, что от самого проекта Graphite у нас нет практически ничего :). Все его компоненты заменены на более производительные аналоги. В этом, кстати, большое достоинство Graphite: он построен из кубиков, которые легко друг с другом комбинировать и заменять. Остановимся лишь на проблемах, с которыми мы столкнулись в ходе эксплуатации.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Как однажды была чуть не сорвана разработка Gardenscapes

Время на прочтение5 мин
Количество просмотров10K
Disclaimer: Эта история произошла несколько лет назад. Но кажется, что она и до сих пор не утратила актуальности.


… Мы разрабатывали Gardenscapes. В нём всё ещё оставались следы старого Gardenscapes под Windows. Он даже был не Match-3, а Hidden Object. И никто даже и представить не мог высот, которых достигнет игра.

И вот в один прекрасный день…
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии46

Оптимизация рендера под Mobile. Часть 3. Шейдеры

Время на прочтение9 мин
Количество просмотров7.1K
Привет Хабр! В предыдущих частях цикла (раз, два) мы рассматривали тайловую архитектуру мобильных GPU, а также классифицировали различные семейства GPU, представленные у пользователей. В этой части мы рассмотрим приемы, которые помогут писать быстрые шейдеры для мобильных GPU.


В мобильной экосистеме оптимальный код — всегда хорошо. Ведь даже в случае достижения требуемой частоты формирования кадров более оптимальный код позволяет переводить CPU и GPU на пониженные частоты, за счет чего снижается расход заряда и увеличивается среднее время сессий. Это, в свою очередь, положительно сказывается на доходе от игр со встроенной монетизацией.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии6

Оптимизация рендера под Mobile, часть 2. Основные семейства современных мобильных GPU

Время на прочтение11 мин
Количество просмотров8.2K
Приветствую, дорогие любители и профессионалы, программисты графики! Приступаем ко второй части нашего цикла статей про оптимизацию рендера под Mobile. В этой части мы будем рассматривать основные семейства GPU, представленные у игроков на Mobile.


Для начала рассмотрим ряд критериев, по которым можно классифицировать мобильные GPU.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии8

Оптимизация рендера под Mobile

Время на прочтение7 мин
Количество просмотров10K
Здравствуйте, дорогие читатели, любители и профессионалы программирования графики! Предлагаем вашему вниманию цикл статей, посвященных оптимизации рендера под мобильные устройства: телефоны и планшеты на базе iOS и Android. Цикл будет состоять из трех частей. В первой части мы рассмотрим особенности популярной на Mobile тайловой архитектуры GPU. Во второй пройдемся по основным семействам GPU, представленным в современных девайсах, и рассмотрим их слабые и сильные стороны. В третьей части мы познакомимся с особенностями оптимизации шейдеров.

Итак, приступим к первой части.

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


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

Отложенный Alpha blending

Время на прочтение6 мин
Количество просмотров10K
В этой статье я хочу поговорить о методах смешивания растеризуемой геометрии. Классические модели смешивания полупрозрачных объектов — Alpha, Additive, Multiplicative — объединяет один и тот же принцип отрисовки: последовательно рисуем один примитив за другим, смешивая получаемые на выходе фрагментного шейдера пиксели с тем, что находится в текущем буфере. Каждый новый примитив обновляет область буфера, в которую рисуется; в случае с альфа-смешиванием объекты, которые находятся выше, заслоняют ранее отрисованные. Но что если хочется что-то сделать с группой объектов, рисуемых поверх сцены, — например, обрезать их по маске или подсветить? Тут сразу в голову приходят два решения: или внести изменения в их материал (т.е. изменить шейдер, расширить набор текстур), к примеру, добавив проекцию еще одной текстуры, которая будет отвечать за маску прозрачности. Однако если у нас много разношерстных объектов, менять каждый уникальный материал неудобно и чревато ошибками. Второй вариант — нарисовать все интересующие нас объекты в отдельный полноэкранный таргет и рисовать уже его на финальную сцену. Тут мы можем сделать с его содержимым все, что захотим, но это требует выделения лишней памяти и, что самое неприятное, — переключения рендер таргетов. Это не самая «дешевая» операция на мобильных устройствах, которую будет необходимо выполнить дважды. А если захочется вот так работать с несколькими слоями?


Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии16

CI/CD в Playrix: как мы собираем и тестируем наши игры

Время на прочтение11 мин
Количество просмотров12K
Команда должна фокусироваться на создании прекрасных и успешных игр, для всего остального есть CI.

Где мы применяем CI? Какие подходы и концепции используем? Зачем собирать и тестировать билды? Развернутый рассказ о CI и о том, как он устроен в Playrix, потянет на курс лекций. Под катом — краткая выжимка и немного акцентов.

Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии3

Анимационный граф состояний

Время на прочтение5 мин
Количество просмотров11K
Привет! Мы тут в Playrix решили сделать свой Unity3D. А там есть Animator. В этой статье я  расскажу, как мы сделали его у себя и как он работает.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии12

Как мы делали нашу маленькую Unity с нуля

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


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

  • рендеринг;
  • работа с SDK;
  • работа с операционной системой;
  • с сетью и ресурсами. 

Однако в нем не хватало того, чем так ценится Unity, — удобной системы организации сцен и игровых объектов, а также редакторов к ним.

Здесь я хочу рассказать, как мы внедряли все эти удобства и к чему пришли.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии9
1