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

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

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

От установки AWX до запуска первого плейбука — настройка централизованного управления Ansible

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


Количество серверов в нашей инфраструктуре уже перевалило за 800, хотя еще год назад их было около 500. Для работы с этим всем активно используются решения от Red Hat. Про FreeIPA — для организации и управления доступами для Linux-серверов — мы уже писали, сейчас же я хочу затронуть тему управления конфигурациями. Для этих целей у нас юзается Ansible, а с недавних пор к нему добавился AWX — представленное полгода назад решение для централизованного управления плейбуками, расписанием их запусков, управления инвентори, учетными данными для доступа к серверам, а также механизм callback'ов для запроса конфигураций со стороны сервера.

Из-за ряда вещей мы не сразу смогли интегрировать его для работы с нашим основным проектом War Robots, но полей для проверки AWX нашлось предостаточно. Во-первых, в компании ведутся разработки новых проектов, которым нужны dev/stage-окружения и, само собой, production-окружения в перспективе. А недавно к этому добавился еще и проект для внутренней аналитики, которому потребовался полностью новый кластер.

Итак, начнём!
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии11

Как адаптировать игру на Unity под iPhone X к апрелю

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


Месяц назад Apple предупредила всех разработчиков, что с апреля все приложения, которые заливаются в App Store, должны быть собраны с использованием последнего iOS 11 SDK. О том, как правильно позиционировать контент, используя новый API, уже давно можно почитать в официальной документации и Human Interface Guidelines. А хорошими и подробными статьями об адаптации игр на Unity ни на русском, ни на английском языке нас не радуют. А так как в War Robots поддержка нового UI появилась с февральским релизом версии 3.6.0, я решил написать собственный гайд со скриптами и скриншотами.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии8
Помните бесконечное «Давайте Dust 2!» в каждом CS-чате? Реиграбельность — важнейшая черта для онлайн-шутеров. Игрокам раз за разом приходится возвращаться на одни и те же локации, поэтому можно смело сказать, что работа левел-дизайнера не менее важна для проекта, чем код, на котором он написан. Нужно продумать баланс карты во всех ее точках; помнить о разных тактиках игроков и целых команд; расставить достаточное количество укрытий; не забыть о «снайперах»; провести ряд внутренних и внешних тестов; учесть пожелания игроков касательно сеттинга и визуала. И думаем, не только нам интересно, как можно решить все эти задачи.
Подробности – под катом
Всего голосов 45: ↑45 и ↓0+45
Комментарии20

How-to: смена основного домена в G Suite для всей компании и с сохранением всех данных

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


Появилась необходимость сменить основной домен компании в G Suite с .ru на .com с сохранением всех данных, календарей, псевдонимов и доступов на сторонние ресурсы. Информации о переезде в интернете не очень много, а точнее, кроме справки самого Google, вообще ничего не нашлось, что и стало причиной создания этого how-to. Будет полезно, если кто-то решит повторить подобное.

Дело в том, что изначально в компании использовался домен pixonic.ru. Затем был добавлен псевдоним pixonic.com, но везде по умолчанию стояла почта в зоне .ru. А так как многие сотрудники компании ведут переписку с зарубежными коллегами и клиентами, было желание использовать международный формат. Для этого им приходилось заходить в настройки аккаунта, самостоятельно менять основной почтовый адрес и приводить подпись в соответствие с корпоративным шаблоном. Не все это делали (или делали, но через раз) и можно представить, какой беспорядок и путаница творились в ветках сообщений. Для внешних партнеров это выглядело еще менее презентабельно из-за разных подписей.

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

В конце статьи есть ссылка на весь скрипт, поэтому в тексте будут лишь его куски.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии11

Создаем концепт игры без навыков программирования: как мы проводили первый PixJam в компании

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


— А у тебя какая идея игры?
— Хочу, чтобы все офигели, передать ощущение скорости, которая нарастает, пока у тебя мясо от костей не начнёт отлетать, и ты уже не понимаешь, сможешь ли с ней совладать, но все равно продолжаешь пушить как сумасшедший!
— Матч-3 что ли?
— Ага.

Из разговоров на PixJam.
Провели внутри компании первый Jam по созданию концепций новых игр и хотим поделиться впечатлениями. Идея заключалась в том, чтобы раздвинуть рамки и «заразить» креативом как можно больше сотрудников (в независимости от скилла в программировании или гейм-дизайне). Идея провести подобное мероприятие в формате Jam'a возникла у Игоря Клюкина — нашего СОО. Как показывает практика, такой формат в целом хорошо подходит для решения креативных задач.

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

Для финалистов мы привлечем маркетологов, проведем реальное исследование и узнаем, насколько их идеи окажутся востребованы. Тогда уже можно будет браться за разработку.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии11

«Ура, нас зафичерили!» или Как сменить дата-центр под нагрузкой и без даунтаймов, когда всё летит к чертям

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


Пару лет назад мы располагались в самом cost-effective (читай: «дешевом») дата-центре в Германии. Чтобы вы понимали условия — роутинг мог сбоить от стойки к стойке или внутри неё; свитч в стойке перегружался или зависал; сам дата-центр постоянно ддосили; жесткие диски выходили из строя; материнские платы и сетевые карты сгорали; сервера произвольно выключались, перезагружались, а сетевые кабели выпадали как осенние листья во время урагана.

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

Наступила точка кипения и мы решили переезжать. Хотя в какой-то момент даже казалось, что дешевле нанять больше обслуживающего персонала, чтобы менеджерить ситуации в вышеупомянутом ДЦ. Но в итоге, чтобы «стало более лучше жить» — мы выбрали стабильность.
Выбор остановился на дата-центре в Голландии, в Амстердаме. А вот тут самое интересное: к тому времени у игры уже был приличный DAU, переезд нужно было осуществить онлайн, без даунтаймов, одновременно на обе платформы (Android и iOS). Мало того, мы получили фичеринг на Google Play, маркетинг еще и запустил рекламную кампанию. Как понимаете, дополнительного трафика стало очень и очень много.

В общем, задачка не самая обыденная и вот как мы с ней справлялись.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии18

Навыки, инструменты, требования — масштабное исследование HackerRank о рынке разработчиков 2018

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


HackerRank в этом месяце предоставили интересную аналитику на основе опроса 39 441 разработчика. В опросе поднимается много актуальных вопросов про состояние IT-рынка, востребованные качества среди разработчиков и то, что ищут программисты среди потенциальных работодателей. Отчет получился интересным, многим может быть полезно.

Под катом очень много картинок.

1. Пролог

Hello world


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

Мы запустили HackerRank в конце 2012, чтобы помогать разработчикам найти работу, которая будет им по душе. За эти годы мы сильно выросли — сейчас в нашем сообществе 3,2 млн человек и 2% всех новых наймов разработчиков в прошлом году были сделаны с нашей помощью.

И сейчас мы впервые провели опрос среди нашего сообщества разработчиков, чтобы разобраться в том, как именно они работают и как они этому научились: когда они впервые запушили код в репозиторий, как они научились кодить, расспросили о любимых языках программирования и фреймворках, узнали, чего они хотят от работодателей. А еще мы спросили HR-менеджеров о том, что именно они ищут в кандидатах на позиции разработчиков и о многом другом. Мы опросили 39 441 человека и готовы поделиться знаниями, которые получили в результате.

Вы знали, что 1 из 4 разработчиков научился кодить до того, как получил водительские права?

Надеемся, что наш доклад будет для вас полезным.

Вивек Равинскар, Co-founder/CEO HackerRank
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии30

Почему мы не стали делать идеально: как менялась инфраструктура серверов War Robots

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


Первый прототип (например, игры в новой для вас нише) часто делается «на коленке» из палок и самизнаетечего. Причем палки, как правило, тоже из этого самизнаетечего. И на то есть несколько причин.

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

Забегу вперед и расскажу, что сейчас DAU в наших проектах около 1,5 млн. Но так было не всегда.
Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии16

Дневник техлида: полгода разработки мобильного PvP

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


В марте 2017 года мы собрали небольшую команду и взялись за разработку нового перспективного проекта. Без особых деталей могу сказать, что задача стояла интересная и соблазнительная — мобильный, синхронный, командный PvP. Спустя 7 месяцев активной разработки мне захотелось рассказать коллегам из других проектов и отделов Pixonic технические детали и я подготовил для них презентацию, которая в дальнейшем превратилась в эту статью.

Как техлид команды, я расскажу, с какими задачами и проблемами мы успели столкнуться, как их решаем и почему. Мы используем итеративный подход добавления функционала в проект и в данный момент у нас реализованы: PvP на iOS и Android (обе платформы играют на одних серверах); набор персонажей, три десятка игровых механик, боты; матчмейкинг; набор мета-фич (кастомизация персонажей, прокачка и другие); решена задача масштабируемости на весь мир.

Итак, поехали.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии16

Как расправиться с читерами и не переписать весь код

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


Несколько лет назад появился прототип игры War Robots (тогда она еще называлась Walking War Robots). Это был первый опыт Pixonic в жанре тактического PvP, поэтому многие будущие проблемы были заложены в коде изначально. Но несмотря на ряд трудностей (популярность проекта стремительно росла, небольшая команда не могла полностью изменить архитектуру игры в краткие сроки), нам в итоге удалось свести к минимуму количество читеров, а также исправить другие недостатки оригинального кода. Расскажу немного подробнее.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии72

Пошаговая настройка Graylog2

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


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

Напомню, кластер будет размещаться на площадке хостера, логи будут собираться со всего мира по TCP, а среднее количество логов — около 1,2 Тб/день при нормальных условиях.

В настоящее время мы используем CentOS 7 и Graylog 2.2, поэтому все конфигурации и опции будут описываться исключительно для этих версий (в Graylog 2.2 и Graylog 2.3 ряд опций отличается).
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии14

Как мы Graylog2 выбирали

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


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

Эта обзорная статья, суть которой рассказать об основных особенностях Graylog2, почему мы выбрали именно его и как эксплуатируем.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии6

Набор полезных советов для эффективного использования FreeIPA

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


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

Содержание:

  1. FreeIPA агенте в lxc контейнерах
  2. Библиотека для использования API в python
  3. Несколько слов про Ansible модули
  4. FreeIPA агент в debian
  5. Реплика в Амазоне

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

Монетизация приложений в iOS 11: таргетируем встроенные покупки в новом App Store

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


На WWDC’17 Apple показала обновленный интерфейс App Store и представила ряд нововведений. Среди них были продвигаемые встроенные покупки, которые с выходом iOS 11 будут выводится прямо в поиске и редакторских подборках наряду с приложениями.

В нашем случае это особенно актуальная вещь, так как в текущем проекте War Robots мы используем встроенные покупки, которые для нас стали самым оптимальным способом монетизации. Поэтому в нескольких новых играх, которые сейчас в разработке, мы также собираемся их использовать.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии5

Автооптимизация виртуальной реальности или В чем разница между репроекцией, timewarp и spacewarp

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


Оптимизация проектов для виртуальной реальности требует своего особенного подхода. Помимо общих вещей, на которые следует обращать внимание при разработке 3D-игр, VR накладывает ряд строгих ограничений. От любого приложения требуется не только практически мгновенный отклик на любое движение игрока (будь то поворот головы или взмах руки), но и обеспечение стабильной частоты кадров, намного превышающей стандартные требования к «классическим» играм любого жанра.

Современные шлемы, такие как Oculus Rift и HTC Vive, поддерживают ряд специальных технологий, которые призваны сглаживать падения производительности. Это должно позволить компенсировать проседания FPS, искусственно повышая частоту кадров; улучшить пользовательский опыт; предоставить немного дополнительной свободы разработчикам конечных продуктов и снизить минимальные системные требования. Но так ли прекрасно все оказывается на практике? Как работают эти технологии и в чем между ними разница? Об этом и пойдет речь в настоящей статье.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии3

Про PKI «на пальцах» за 10 минут

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


Предложил коллегам провести внутреннюю мини-лекцию по сабжу — идея зашла. Сел писать план лекции и… чот психанул — в итоге очнулся, дописывая небольшой гайд. Подумал, что будет полезно добавить сюда что-то для быстрого понимания, что такое PKI, зачем она нужна и как работает, так как пока готовился, чтобы освежить память, искал информацию в том числе на полюбившемся «Хабрахабре», но статей в таком формате не нашел.

Пишу на примере наших повседневных задач, которые знакомы многим: беспарольный доступ к серверам OpenVPN и защита доступа к ресурсам с помощью HTTPS.
Читать дальше →
Всего голосов 20: ↑14 и ↓6+8
Комментарии15

Как перестать искать хороший дата-центр и начать жить

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


Жаль вас расстраивать, коллеги, но мой ответ: никак. Или, как говорилось в одной отечественной рекламе, «сынок, это фантастика». Нет, в природе существуют Tier IV ДЦ и ЦОДы, заключающие и выполняющие SLA, но в этой статье речь пойдет не о них (так как их услуги стоят, простите за каламбур, заоблачных денег), а о провайдерах выделенных физических и виртуальных серверов и сервисов, которыми в настоящее время пользуется большинство простых смертных, в том числе и мы в Pixonic.

Я намеренно не буду приводить названия конкретных компаний, с которыми мне приходилось работать как в Pixonic, так и до него, чтобы донести уже озвученную идею: так или иначе, серьезные «нюансы» обнаруживаются у всех. Возможно, кто-то захочет поспорить, но мое заключение основывается на более чем 8-летнем опыте общения с техподдержкой и менеджментом дата-центров разного уровня по всему миру.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии3

«Это не про деньги и разработку»: 5 заблуждений о работе комьюнити-менеджера

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


Много раз я пытался объяснить своим знакомым, чем занимаюсь. Обычно я обзываю себя специалистом по связям с общественностью. По крайней мере, это более или менее понятно. Но когда аналогичный вопрос задают люди из игровой индустрии — это настораживает. «Как же так, — подумает комьюнити-менеджер. — Есть же игроки, нужно сделать социальную среду — неужели вам этого недостаточно?». Возможно огорчу кого-то из коллег, но, нет, недостаточно. Когда к вам обращается основатель инди-студии и спрашивает, зачем же нужны КМ, аксиомы вроде «услышанный игрок = счастливый игрок» не убедят его тратить и без того ограниченный бюджет.

Не только в России, но и за рубежом, я все чаще натыкаюсь на обсуждения ценности и обязанностей таких сотрудников: «Кто эти люди, чем они занимаются, в чем их польза, а главное — как подсчитать эту пользу?». Так что давайте уже разбираться — нужен ли кому-нибудь комьюнити-менеджер…
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии2

Пост-эффекты в мобильных играх

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


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

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

Помимо того, что пост-эффекты (точнее — их не очень грамотное использование) являются предметом ненависти среди игроков, они также едва ли не единственный способ быстро и дешево «оживить» и «освежить» картинку. Насколько качественным получится это «оживление» и не обернется ли оно в результате «свежеванием», зависит по большей части от художников.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии8

Настройка репликации во FreeIPA 4.4 с domain level 1

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

У нас в компании для организации и управления доступами для Linux-серверов
используется такой сервис как FreeIPA. FreeIPA — это вполне полноценная замена AD для Linux-систем от RHEL. В новой версии появились уровни доменов и был переработан процесс настройки репликации. Так как инструкций вменяемого вида в рунете найти не удалось, я решил написать собственную.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии18