В одной из предыдущих статей мы провели обзор технологий, которые используются на нашем новом проекте — fast paced шутере для мобильных устройств. Теперь хочу поделиться, как устроена клиентская часть сетевого кода будущей игры, с какими трудностями мы столкнулись и как их решали.
Рубрика «mobile development» - 5
Как мы писали сетевой код мобильного PvP шутера: синхронизация игрока на клиенте
2018-07-03 в 7:59, admin, рубрики: android, C#, ecs, Gamedev, iOS, mobile development, online multiplayer, pvp, unity, unity3d, Блог компании Pixonic, геймдев, мобильные игры, мультиплеер, проектирование, Проектирование и рефакторинг, разработка игр, разработка мобильных приложений, шутер, юнитиМогут ли PWA (Progressive Web Apps) образца 2018 года составить достойную конкуренцию нативным приложениям?
2018-06-20 в 12:04, admin, рубрики: cross-platform, css, flutter, Google Chrome, Houdini, html, javascript, mobile development, progressive web apps, pwa, web-разработка, webassembly, Блог компании Google, Разработка веб-сайтов, разработка мобильных приложений
Когда изменения происходят постепенно, шаг за шагом, порой бывает трудно заметить насколько они драматичны и всеобъемлющи. Казалось бы всего несколько лет назад web платформа проигрывала нативным приложением практически по всем фронтам, и пропасть между тем, что можно было сделать в браузере, и тем, что было доступно приложениями, загружаемым из магазинов, таких как Apple App Store или Google Play Store, была ужасающе огромной. Одним из свидетельств этой пропасти является то, что в 2007 году web по факту был основной платформой разработки приложений для первого iPhone, но эта платформа явно не взлетела. App Store же появился только год спустя со второй версии операционной системы, и сразу же случился бум нативных приложений, который и сформировал рыночный ландшафт таким, каким мы его знаем теперь.
Многое изменилось с тех пор, и web технологии на месте не стояли. Они шли по пути снятия ограничений, и то, что раньше было принципиально невозможно — работа оффлайн, фоновая синхронизация данных, push-нотификации, поддержка входа в один клик и оплаты с помощью кредитных карт, Apple Pay, Google Play и других методов, встроенная в браузер — теперь реальность. Эти функции органично дополняют основную часть платформы — HTML/CSS и JavaScript, которая в последние годы развивалась более чем активными темпами. Например новый проект Houdini, который ещё находится на достаточно ранней стадии, снимает почти все ограничения на то, что можно сделать с помощью CSS, давая возможность среди прочего создавать свои лэйауты и использовать их наравне с Grid и Flexbox, и открывая программный доступ к внутренностям CSS движка. Но даже и без Houdini уже сейчас можно создавать CSS анимации, работающие со скоростью 60 FPS (frames per second).
Как и почему мы написали свой ECS
2018-06-13 в 8:14, admin, рубрики: android, C#, ecs, Gamedev, iOS, mobile development, online multiplayer, pvp, unity, unity3d, архитектура, Блог компании Pixonic, геймдев, мобильные игры, мультиплеер, проектирование, Проектирование и рефакторинг, разработка игр, управление проектами, шутерВ прошлой статье я описал технологии и подходы, которые мы используем при разработке нового мобильного fast paced шутера. Т.к. это была обзорная и даже поверхностная статья — сегодня я копну глубже и подробно расскажу, почему мы решили написать собственный ECS-фреймворк и не стали использовать существующие. Будут примеры кода и небольшой бонус в конце.

Читать полностью »
Google I-O 2018 глазами разработчика мобильных игр + рекомендации по итогам
2018-05-27 в 20:02, admin, рубрики: android, app development, game development, Gamedev, Google, Google Chrome, i/o, mobile development, андройд, Блог компании Pixonic, геймдев, конференции, конференция, мобильная разработка, разработка, разработка игр, разработка мобильных приложений, Разработка под android
В мае вместе с CTO Pixonic Сергеем Ждановым (я — слева, он — справа) посетили Google I/O 2018 в Калифорнии. Хотелось посмотреть на тренды, технологии, пообщаться с разработчиками (я еще собирался поучаствовать в Codelabs, а то в прошлый раз не удалось туда попасть). В целом, если сравнивать с прошлым годом, Keynote был не такой впечатляющий, но все равно есть о чем рассказать по итогам конференции.
Не буду повторять, что и так уже все слышали, а расскажу, что заинтересовало меня, как разработчика мобильных игр, и что будет полезно знать другим. Начнем.Читать полностью »
Как мы замахнулись на мобильный fast paced шутер: технологии и подходы
2018-05-21 в 10:30, admin, рубрики: android, Gamedev, iOS, mobile development, multiplayer, online, pvp, unity, Блог компании Pixonic, геймдев, мобильные игры, мультиплеер, проектирование, разработка игр, Разработка под android, разработка под iOS, управление разработкой, шутер
Год назад у нас в компании был один проект — мобильный шутер War Robots с относительно медленными, но красочными и напряженными боями. Игра продолжает развиваться, у нее десятки миллионов установок и игроков по всему миру, постоянно выходят апдейты. В какой-то момент мы захотели сделать динамичный шутер на Unity со скоростями, сравнимыми с Overwatch, CS:GO или Quake. Но реализовать задуманное для мобильных платформ (в первую очередь iOS и Android) на основе War Robots при текущих архитектуре и подходах было практически нереально.
Мы понимали, как это сделать в теории — есть много статей, презентаций на YouTube, детально рассказывающих о том, как написать шутер, как работать с сетью, какие возникают проблемы и как их решать. Здесь нет Rocket Science, все эти подходы придумали еще 30 лет назад и за это время они особо не поменялись. НО: у нас не было практики.
Забегая вперед, скажу — нам удалось реализовать задуманное. Мы создали для мобильных платформ динамичный быстрый шутер, который сейчас находится в бета-тестировании и активно дорабатывается. И мне очень хотелось бы всем этим поделиться. Это первая, обзорная статья с перечислением и кратким описанием практически всего того, что мы используем (прошу не путать с другим нашим проектом в разработке, технологии и подходы в котором похожие, но отличаются в деталях).Читать полностью »
Дневник техлида: вторые полгода разработки нового мобильного PvP
2018-04-26 в 10:00, admin, рубрики: android, Gamedev, iOS, mobile development, multiplayer, online, pvp, unity, Блог компании Pixonic, геймдев, мобильные игры, мультиплеер, проектирование, разработка игр, разработка мобильных приложений, разработка под iOS, управление разработкой
Я лид команды в Pixonic, где работаю уже год. О старте и развитии одного из наших новых проектов я ранее написал статью на Хабре. По ходу дальнейшего производства, спустя еще полгода, у меня накопилось большое количество интересного опыта, которым хотел опять поделиться. На этот раз речь пойдет о процессе наращивания функционала в мобильном клиенте и поддержании кода в гибком состоянии.
Уверен, подавляющее большинство хотя бы раз запускали какую-нибудь многопользовательскую игру. На старте клиент, как правило, пишет несколько магических сообщений и через несколько секунд (хотя в случае с одним известным десктопным шутером — несколько минут) игрок попадает в главное меню, где есть заветная кнопка «В бой» или типа того. Но процесс запуска состоит из огромного количества этапов, которые происходят очень быстро и без вмешательства игрока:Читать полностью »
Стажировка в e-Legion
2018-04-25 в 12:23, admin, рубрики: android, android development, e-legion, iOS, ios development, iOS разработка, mobile, mobile development, Блог компании e-Legion Ltd., Карьера в IT-индустрии, мобильная разработка, мобильные приложения, разработка мобильных приложений, Разработка под android, разработка под iOS, стажировкаПривет! Мы запускаем программу стажировок в e-Legion, ищем таланты в Петербурге.
Мы предлагаем:
- 4 позиции — 2 iOS- и 2 Android-разработчика.
- 3 месяца работы на реальных проектах в топовой компании по мобильной разработке.
Прокачайся и стань одним из легионеров! Самым ловким и умелым по результатам стажировки мы сделаем оффер.
Как попасть на стажировку:Читать полностью »
Как победить рутину, или Готовое приложение в Xcode за пару кликов
2018-04-09 в 16:44, admin, рубрики: iOS, ios development, iOS разработка, mobile, mobile apps, mobile development, objective-c, programming, swift, xcode, Программирование, разработка мобильных приложений, разработка под iOSУ каждого опытного разработчика есть набор инструментов, к которым он привык и с которыми ему удобно работать. Это может быть простейшая настройка окружения, утилиты для промежуточных операций (к примеру, помощник по тестированию API Postman), проверенные временем и лично разработчиком библиотеки и сниппеты.
Также у многих разработчиков может быть свой подход к реализации выбранной архитектуры. Поэтому очень полезно иметь в своем арсенале заготовку приложения – общий скелет, к которому останется только добавлять новые модули, экраны и фичи. В этом материале я расскажу, как создать собственный шаблон приложения в Xcode.
Твоё первое мобильное приложение: выбери платформу
2018-04-04 в 11:59, admin, рубрики: android, android apps, android development, android studio, e-legion, iOS, ios development, iOS разработка, mobile, mobile development, swift, xcode, Блог компании e-Legion Ltd., Карьера в IT-индустрии, мобильная разработка, мобильные приложения, образование, образование в ит, образование онлайн, разработка мобильных приложений, Разработка под android, разработка под iOS, Учебный процесс в IT
Академия e-Legion продолжает набор студентов, а те, кто уже учатся, перешли ко второму блоку программы. В посте рассказываем, чему уже научились и что ждёт студентов на втором этапе.Читать полностью »
Порхающие* велосипеды. Что делать с сохранением состояния во Flutter?
2018-03-31 в 7:34, admin, рубрики: android, android development, dart, flutter, Google, mobile development, touch instinct, Блог компании Touch Instinct, Программирование, разработка мобильных приложений, Разработка под android
(*одно из значений слова flutter — порхать)
Разбираемся, есть ли жизнь сохранение состояния во Flutter-приложении. Что будет, если ОС решит его перезапустить. Куда денется пользовательский ввод и навигация, и как с этим справляться.
Дисклеймеры:
- для понимания нужно иметь стартовые знания о Flutter;
- рассуждаю с точки зрения Android, про iOS — это не ко мне;
- не являюсь специалистом по Flutter/Dart, подхожу с позиции новичка;
- в некоторых местах опускаю второстепенные моменты (например, реализации вспомогательных функций), найти недостающее можно в полном коде проекта.

