Как стать автором
Обновить
131.78
Рейтинг
Pixonic
Разрабатываем и издаем игры с 2009 года
Сначала показывать
  • Новые
  • Лучшие

Архитектура мета-сервера мобильного онлайн-шутера Tacticool

Блог компании PixonicАнализ и проектирование системПроектирование и рефакторингРазработка игрКонференции
Еще один доклад с Pixonic DevGAMM Talks — на этот раз от наших коллег из PanzerDog. Lead Software Engineer компании Павел Платто разобрал мета-сервер игры с сервисно-ориентированной архитектурой, рассказал, какие решения и технологии были выбраны, что и как у них масштабируется, и с какими трудностями пришлось столкнуться. Текст доклада, слайды и ссылки на другие выступления с митапа, как всегда, под катом.

Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры7.9K
Комментарии 5

Практика использования модели акторов в бэкэнд-платформе игры Quake Champions

Блог компании PixonicАнализ и проектирование системПроектирование и рефакторингРазработка игрКонференции
Продолжаю выкладывать доклады с Pixonic DevGAMM Talks — нашего сентябрьского митапа для разработчиков высоконагруженных систем. Много делились опытом и кейсами, и сегодня публикую расшифровку выступления backend-разработчика из Saber Interactive Романа Рогозина. Он рассказывал про практику применения акторной модели на примере управления игроками и их состояниями (другие доклады можно посмотреть в в конце статьи, список дополняется).

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

CICD: бесшовный деплой на распределенные кластерные системы без даунтаймов

Блог компании PixonicСистемное администрированиеАнализ и проектирование системПроектирование и рефакторингСерверное администрирование
Выкладываю второй доклад с нашего первого митапа, который провели в сентябре. В прошлый раз можно было почитать (и посмотреть) про использование Consul для масштабирования stateful-сервисов от Ивана Бубнова из BIT.GAMES, а сегодня поговорим про CICD. Точнее расскажет об этом наш системный администратор Егор Панов, который отвечает за доступность инфраструктуры и сервисов в Pixonic. Под катом — расшифровка выступления.


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

Использование Consul для масштабирования stateful-сервисов

Блог компании PixonicПроектирование и рефакторингРазработка игрСерверное администрированиеКонференции
22 сентября провели наш первый нестандартный митап для разработчиков высоконагруженных систем. Было очень круто, много позитивного фидбека по докладам и поэтому решил не только их выложить, но и расшифровать для Хабра. Сегодня публикуем выступление Ивана Бубнова, DevOps из компании BIT.GAMES. Он рассказал о внедрении дискавери-сервиса Consul в уже рабочий высоконагруженный проект для возможности быстрого масштабирования и failover`а stateful-сервисов. А также об организации гибкого пространства имен для бэкэнд-приложения и подводных камнях. Теперь слово Ивану.


Я администрирую продакшн-инфраструктуру в студии BIT.GAMES и расскажу историю внедрения консула от Hashicorp в наш проект «Гильдия Героев» — fantasy RPG с асинхронным pvp для мобильных устройств. Выпускаемся на Google Play, App Store, Samsung, Amazon. DAU около 100 000, online от 10 до 13 тысяч. Игру делаем на Unity, поэтому клиент пишем на С# и используем свой собственный скриптовый язык BHL для игровой логики. Серверную часть пишем на Golang (перешли на него с PHP). Дальше — схематичная архитектура нашего проекта.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры14.5K
Комментарии 9

Как мы отлаживаем в браузере самописный ECS на игровом сервере

Блог компании PixonicРазработка мобильных приложенийПроектирование и рефакторингРазработка игрUnity


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

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

Это вдохновило нас на создание своих инструментов на игровом сервере, чтобы смотреть, что происходит в матче с игроками, как они играют, как перформит система в целом. На клиенте у нас тоже есть подобные наработки для визуальной отладки игры, но инструменты в клиенте чуть более простые по сравнению с тем, что мы сделали на сервере.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры5K
Комментарии 4

А что, можно было дешевле?

Блог компании PixonicУправление продажами
Я всегда любил и умел торговаться. Со стороны покупателя это своего рода игра на получение максимальной выгоды, а для продавца — способ показать, что он ценит труд и нелегкую жизнь человека, которому делает скидку. Видел, как торгуются за 10 рублей, за 5 и даже жвачку.

Статья же призвана раскрыть определенную точку зрения на ведение переговоров для заключения контрактов с максимально выгодными для вашей компании условиями. За 14 лет эволюции от инженера первой категории до заместителя техдиректора по направлению внутренней и внешней инфраструктуры (а также консалтинга медиа-холдингов, стартапов, криптобирж и соцсетей) мне пришлось договориться о сотнях контрактов с контрагентами. Могу сказать, что подобный опыт применим везде — выбираете ли вы дата-центр, закупаете оборудование или ищите новый автомобиль. Как говорится: смелость города берет, а наглость и деревнями не брезгует.


Читать дальше →
Всего голосов 46: ↑37 и ↓9 +28
Просмотры12.3K
Комментарии 43

(А|а)рхитектура: почему это нестандартный митап для разработчиков высоконагруженных систем

Блог компании PixonicРазработка игрСерверная оптимизацияКонференцииРаспределённые системы
Мы давно стремимся быть максимально открытыми и делиться опытом, пусть и не всегда идеальным. Это помогает не только находить узкие места у себя в разработке, но и пробовать что-то новое.

И если в текстовом формате мы не первый раз рассказываем истории из разработки, то теперь решили организовать митап в сентябре вместе с друзьями из DevGAMM, где будем на реальных кейсах разбирать архитектуру в глобальном понимании — от системных решений и приложений до архитектурных паттернов и стилей. И в этот раз мы решили уйти от традиционного стиля «митапов», поэтому — всего 222 отобранных приглашенных, актуальные темы и крутой нетворкинг на митапе (А|а)рхитектура.

А для тех, кто заинтересовался — под катом FAQ и подробности.


Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры2.9K
Комментарии 2

Раннеры для тех, кто любит унижения или как мы меняли и дорабатывали PixJam

Блог компании PixonicРазработка игр

— А мы покажем казуальный PvP-раннер с препятствиями для тех, кто любит унижения.
— Что?
— Что?

Перед одной из презентаций на PixJam Summer'18.

Зимой мы провели первый внутренний PixJam, в котором ребята из всех отделов креативили и придумывали концепты для новых игр (кстати, один из них уже готовится к софт-ланчу). Собрали тонну позитивных отзывов и фидбека, чтобы сделать его еще лучше, и повторили эксперимент. Расскажу, как он проходил на этот раз и что мы изменили.
Читать дальше →
Всего голосов 36: ↑33 и ↓3 +30
Просмотры5.8K
Комментарии 2

Клиент-серверное взаимодействие в новом мобильном PvP-шутере и устройство игрового сервера: проблемы и решения

Блог компании PixonicРазработка мобильных приложенийПроектирование и рефакторингРазработка игрUnity
В предыдущих статьях цикла (все ссылки в конце статьи) о разработке нового fast paced шутера мы рассмотрели механизмы основной архитектуры игровой логики, базирующейся на ECS, и особенности работы с шутером на клиенте, в частности, реализация системы предсказания локальных действий игрока для повышения отзывчивости игры. В этот раз подробнее остановимся на вопросах клиент-серверного взаимодействия в условиях плохого соединения мобильных сетей и способы повышения качества игры для конечного пользователя. Также вкратце опишу архитектуру игрового сервера.


Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Просмотры13.2K
Комментарии 19

Как мы перебанили обычных игроков и заDDoSили свои сервера: практическое руководство

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

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


Читать дальше →
Всего голосов 110: ↑106 и ↓4 +102
Просмотры40.2K
Комментарии 31

Как мы писали сетевой код мобильного PvP шутера: синхронизация игрока на клиенте

Блог компании PixonicРазработка мобильных приложенийПроектирование и рефакторингРазработка игрUnity
В одной из предыдущих статей мы провели обзор технологий, которые используются на нашем новом проекте — fast paced шутере для мобильных устройств. Теперь хочу поделиться, как устроена клиентская часть сетевого кода будущей игры, с какими трудностями мы столкнулись и как их решали.


Читать дальше →
Всего голосов 50: ↑49 и ↓1 +48
Просмотры26K
Комментарии 31

Допинг для аналитики: почему стоит обратить внимание на Apache Zeppelin

Блог компании PixonicPythonРазработка игрАналитика мобильных приложенийУправление продуктом
Все рано или поздно приходят к аналитике за данными. В больших многопользовательских играх (да и синглплеере) без этого уже вообще никуда. Сколько пользователей предпочитают новый режим; где слабые места монетизации; куда смотреть геймдизайнерам, чтобы повысить вовлеченность игроков; и еще миллион вещей — подсчитывается вообще всё. И всё это влияет на решения, которые потом принимают разработчики.

А вот внедряют аналитику все по-разному: кто-то покупает сторонние решения (просто, но негибко), кто-то пишет под себя (долго и дорого), а кто-то пока просто считает несколько базовых метрик силами программистов и не заморачивается.

Поэтому я расскажу об инструменте, который будет полезен для всех. Кто только начинает выстраивать аналитику — сможет «на коленке» создать систему с нуля, а компании с уже готовыми решениями — «бустануть» свой подход.
Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Просмотры25.8K
Комментарии 19

Как и почему мы написали свой ECS

Блог компании PixonicПроектирование и рефакторингРазработка игрC#Unity
В прошлой статье я описал технологии и подходы, которые мы используем при разработке нового мобильного fast paced шутера. Т.к. это была обзорная и даже поверхностная статья — сегодня я копну глубже и подробно расскажу, почему мы решили написать собственный ECS-фреймворк и не стали использовать существующие. Будут примеры кода и небольшой бонус в конце.

Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры29.7K
Комментарии 48

Google I/O 2018 глазами разработчика мобильных игр + рекомендации по итогам

Блог компании PixonicРазработка мобильных приложенийРазработка игрРазработка под AndroidКонференции


В мае вместе с CTO Pixonic Сергеем Ждановым (я — слева, он — справа) посетили Google I/O 2018 в Калифорнии. Хотелось посмотреть на тренды, технологии, пообщаться с разработчиками (я еще собирался поучаствовать в Codelabs, а то в прошлый раз не удалось туда попасть). В целом, если сравнивать с прошлым годом, Keynote был не такой впечатляющий, но все равно есть о чем рассказать по итогам конференции.

Не буду повторять, что и так уже все слышали, а расскажу, что заинтересовало меня, как разработчика мобильных игр, и что будет полезно знать другим. Начнем.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры13.4K
Комментарии 11

Как мы замахнулись на мобильный fast paced шутер: технологии и подходы

Блог компании PixonicРазработка под iOSРазработка игрРазработка под AndroidУправление разработкой


Год назад у нас в компании был один проект — мобильный шутер War Robots с относительно медленными, но красочными и напряженными боями. Игра продолжает развиваться, у нее десятки миллионов установок и игроков по всему миру, постоянно выходят апдейты. В какой-то момент мы захотели сделать динамичный шутер на Unity со скоростями, сравнимыми с Overwatch, CS:GO или Quake. Но реализовать задуманное для мобильных платформ (в первую очередь iOS и Android) на основе War Robots при текущих архитектуре и подходах было практически нереально.

Мы понимали, как это сделать в теории — есть много статей, презентаций на YouTube, детально рассказывающих о том, как написать шутер, как работать с сетью, какие возникают проблемы и как их решать. Здесь нет Rocket Science, все эти подходы придумали еще 30 лет назад и за это время они особо не поменялись. НО: у нас не было практики.

Забегая вперед, скажу — нам удалось реализовать задуманное. Мы создали для мобильных платформ динамичный быстрый шутер, который сейчас находится в бета-тестировании и активно дорабатывается. И мне очень хотелось бы всем этим поделиться. Это первая, обзорная статья с перечислением и кратким описанием практически всего того, что мы используем (прошу не путать с другим нашим проектом в разработке, технологии и подходы в котором похожие, но отличаются в деталях).
Читать дальше →
Всего голосов 41: ↑39 и ↓2 +37
Просмотры21.7K
Комментарии 43

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

Блог компании PixonicРазработка под iOSРазработка мобильных приложенийРазработка игрУправление разработкой


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

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

Пишем плагин для Unity правильно. Часть 2: Android

Блог компании PixonicРазработка мобильных приложенийРазработка игрРазработка под AndroidUnity


В предыдущей части мы рассмотрели основные проблемы написания нативных плагинов на Unity под iOS и Android, а также методы их решения для iOS. В этой статье я опишу основные рецепты по решению этих проблем для Android, стараясь сохранить схожую структуру взаимодействия и порядок их рассмотрения.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры13.8K
Комментарии 4

Пишем плагин для Unity правильно. Часть 1: iOS

Блог компании PixonicРазработка под iOSРазработка мобильных приложенийРазработка игрUnity


Когда делаешь на Unity игры для мобильных платформ, рано или поздно придется писать часть функционала на нативном языке платформы, будь то iOS (Objective C или Swift) или Android (Java, Kotlin). Это может быть свой код или интеграция сторонней библиотеки, сама установка может заключаться в копировании файлов или распаковки unitypackage, не суть. Итог этой интеграции всегда один: добавляются библиотеки с нативным кодом (.jar, .aar, .framework, .a, .mm), скрипты на C# (для фасада к нативному коду) и Game Object со специфичным MonoBehavior для отлавливания событий движка и взаимодействия со сценой. А еще часто требуется включать библиотеки зависимостей, которые нужны для работы нативной части.

Весь этот механизм интеграции обычно не вызывает проблем на чистом проекте, в котором еще нет (или мало) интеграций таких сторонних библиотек. Но когда проект разрастается, всплывает много проблем, усложняющих этот процесс, а часто дающих необходимость дополнительных модификаций и адаптирования под проект плагина, что потом выливается в увеличении сложности последующей поддержки и обновления.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры13.5K
Комментарии 3

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

Блог компании PixonicСистемное администрированиеIT-инфраструктураСерверное администрированиеDevOps
Tutorial


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

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

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

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

Блог компании PixonicРазработка под iOSРазработка мобильных приложенийРазработка игрUnity


Месяц назад Apple предупредила всех разработчиков, что с апреля все приложения, которые заливаются в App Store, должны быть собраны с использованием последнего iOS 11 SDK. О том, как правильно позиционировать контент, используя новый API, уже давно можно почитать в официальной документации и Human Interface Guidelines. А хорошими и подробными статьями об адаптации игр на Unity ни на русском, ни на английском языке нас не радуют. А так как в War Robots поддержка нового UI появилась с февральским релизом версии 3.6.0, я решил написать собственный гайд со скриптами и скриншотами.
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры16.5K
Комментарии 8

Информация

Дата основания
Местоположение
Россия
Сайт
pixonic.com
Численность
201–500 человек
Дата регистрации