• Unity3D ECS и Job System

    • Tutorial
    В Unity3D с выходом версии 2018 появилась возможность использовать нативную (для Unity) ECS систему, сдобренную многопоточностью в виде Job System. Материалов в интернете не особо много (пара проектов от самих Unity Technologies да пара обучающих видео на ютубе). Я попробовал осознать масштаб и удобность ECS, сделав небольшой проект не из кубов и кнопок. До этого у меня не было опыта проектирования ECS, так что два дня ушло на изучение материалов и перестроение мышления с ООП, день ушел на восхищение подходом, и еще один-два дня — на разработку проекта, борьбу с Unity, выдергивание волос и курение семплов. В статье содержится немного теории и небольшой пример проекта.

    Читать дальше →
  • MMO с нуля. С помощью Netty и Unreal Engine. Часть 1

    • Tutorial
    Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.

    В конечном итоге у нас будет клиент, который логинится или регистрируется в игре, может создавать игровые комнаты, пользоваться чатом и начинать игры, соединение будет зашифровано, клиенты будут синхронизироваться через сервер, в игре будет присутствовать одно оружие — лазер, выстрел будет проверяться на проверочном сервере. Я не стремился сделать красивую графику, тут будет только необходимый минимум, дальнейший функционал добавляется по аналогии. Логику можно легко расширить на сервере, добавить например случайные игры и балансер. Для меня было важно создать ММО базу и разобраться с тем что понадобится для создания полноценной мобильной ММО игры.

    Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями
    Часть 2. Наращивание игрового функционала + алгоритм Diamond Square


    Читать дальше →
    • +15
    • 33,6k
    • 9
  • Angular — настройка среды разработки и production сборки с AOT-компиляцией и tree-shaking (Gulp, Rollup, SystemJS)

    • Tutorial

    Одна из особенностей Angular, присущая и первой и новой версии — высокий порог вхождения. Новый Angular, помимо всего прочего, трудно даже запустить. А и запустив, легко получить 1-2 Мб скриптов и порядка нескольких сотен запросов при загрузке hello world страницы. Можно, конечно, использовать всякие стартеры, seed'ы или Angular CLI, но для использования в серъезном проекте нужно самому во всем разбираться.


    В этой статье я постараюсь описать, как настроить удобную среду разработки с использованием SystemJS, и production сборку Angular приложения на основе Rollup, с выходом около 100кб скриптов и нескольких запросов при открытии страницы. Использовать будем TypeScript и SCSS.


    Попробовать все в деле можно в моем angular-gulp-starter проекте.


    Читать дальше →
  • От геймера до разработчика игры

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

    На данный момент создан простой уровень и введены основные элементы механики игры. Предлагаю ознакомительный 20-секундный ролик.


    «Да, мой герой похож на Рагнара, в полной версии будет другая внешность»
    Читать дальше →
  • «Как я провёл это лето»: видео с летних встреч JUG.ru

      Вот и наступила осень. Кто-то возвращается в город с центнером яблок в багажнике, кто-то — c норвежским пивом прямиком с JavaZone, а мы подготовили для вас материал, который, надеемся, скоротает дождливые вечера. Мы расскажем о трёх летних встречах JUG.ru. Посему разработчики, вернувшись из отпусков, имеют замечательную возможность запастись чашкой горячего чая, завернуться в плед и посмотреть видео с наших митапов.

      Итак, летом у нас было три встречи:
          — Douglas Hawkins из Azul рассказал об особенностях работы JIT-компиляторов в HotSpot JVM;
          — Alvaro Hernandez, разработчик ToroDB, рассказал о том, как Java работает с PostgreSQL;
          — наконец, Евгений Борисов порадовал нас новой порцией загадок на тему Spring.

      Читать дальше →
    • Начало перевода «legacy» Angular JS проекта на Angular 1.5 Components / ES6 и TypeScript

      • Tutorial
      В статье я хотел поделиться уже работающим в продакшене вариантом начала постепенной миграции «legacy» Angular JS проекта на все хорошее, что дал нам Angular 1.5 и связку ES6/TypeScript.

      Итак дано: стандартный проект, разработка которого началась еще на бородатом Angular 1.2 (человеком, далеким от мира фронтенда), представленный в более или менее стандартном виде — отдельно по директориям сгруппированы модули с роутами, сервисы, директивы и невероятно жирные контроллеры, функционал из которых потихоньку выделяестся в отдельные директивы. Адский поток фич к реализации, полное отсутствие моделей, доступ к объектам и их модификации — как бог на душу положит.

      Также в проекте уже присутствует более или менее налаженный и прописанный процесс сборки/минификации и деплоя всего этого добра при помощи gulp, CI и прочее.

      Задача — не уйти в себя на поддержке проекта в таком виде, в каком он есть, начать писать хороший, поддерживаемый код, научиться чему-то новому.
      Читать дальше →
    • Создание уровней по методу Super Mario World

      • Перевод
      Несколько лет назад я написал книгу, в которой проанализировал все уровни игры Super Mario World (1990). В ней я вывел систему, по которой была создана большая часть её уровней. Игра Super Mario World – это классика жанра, она сама по себе стоит того, чтобы её изучить. Но уроки, которые она преподносит, могут и сегодня широко применяться при разработке игр. Метод Super Mario World, или метод Nintendo, активно используется для создания уровней в самых разнообразных играх – даже в тех, которые сделаны не компанией Nintendo.

      В этом уроке мы рассмотрим простую форму организации контента, которая берет начало еще в 90-х годах. По мере того как разработчики игр (в особенности из компании Nintendo) совершенствовали свое ремесло, они интуитивно вырабатывали определенные способы организации контента. Я постараюсь объяснить, как можно сознательно использовать эти интуитивные приемы в ваших играх.


      Читать дальше →
      • +9
      • 15,9k
      • 3
    • Unity3D Ускорить отрисовку 2D анимации в разы? Легко

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

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

      • 1 Необходимо обеспечить отрисовку большого числа анимированных объектов на сцене. Ведь мы хотим, чтобы игрок отстреливался от полчищ монстров.
      • 2 Прогресс анимации должен быть различен для каждого из объектов. Ведь мы не хотим, чтобы мобы ходили строем.

      Решение «из коробки»


      Безусловно, первое решение было простым: все сделать с помощью уже встроенного в UnityEngine компонента Animator. Посмотрим, что из этого получается.
      Читать дальше →
    • Unite Europe 2016: Обзор доклада “Overthrowing the MonoBehaviour tyranny in a glorious ScriptableObject revolution”



        Недавно мы побывали в Амстердаме на конференции Unite Europe 2016, где получили массу эмоций и интересного опыта. На этой конференции было очень много увлекательных докладов по разным направлениям и различного уровня сложности. Темой одного из выступлений была “Overthrowing the MonoBehaviour tyranny in a glorious ScriptableObject revolution”, на котором Ричард Файн (https://twitter.com/superpig / https://github.com/richard-fine), специалист из Unity Technologies, подробно рассказал о ScriptableObject и на примерах показал, как он может быть применен в проекте.
        Читать дальше →
        • +14
        • 5,3k
        • 4
      • systemd: getty-подобный сервис для htop

        • Tutorial

        htop — это интерактивная программа для наблюдения за процессами; она — альтернатива программы top. Каждый, кто работает за машиной с линуксом на борту, хоть раз использовал её: будь то поиск процесса (и его последующее убийство) или тщательный мониторинг используемых ресурсов.


        Читать дальше →
      • 10 полезных сайтов с 2D ресурсами для игр

        • Перевод


        С развитием HTML5 и мобильных платформ 2D игры возвращаются в моду и привлекают внимание даже крупных издателей. Благодаря таким инструментам, как Unity, и онлайн-ресурсам с игровыми ассетами, разрабатывать эти игры стало намного легче. Ниже представлен список из 10 лучших сайтов с 2D ресурсами для игр – как платными, так и бесплатными.
        Читать дальше →
        • +39
        • 235k
        • 2
      • Почему не взлетел Pied Piper: наш разбор 9 серии 3 сезона сериала «Кремниевая долина»

          Осторожно, данный текст содержит спойлеры! Если вы смотрите сериал “Кремниевая долина” и еще не видели 9 серию 3 сезона, то не читайте эту статью.

          Напомню, что Pied Piper — это сервис эффективной компрессии и облачного хранения файлов, который в этой серии выходит на массовый рынок, и пока что выходит не совсем успешно.


          Читать дальше →
        • Язык Go, микросервисы и DevOps – хорошая компания?

          • Перевод
          Привет, Хабр!

          Напоминаем, что все желающие по-прежнему могут приобрести отличную книгу Сэма Ньюмена "Создание микросервисов". Поскольку наши ожидания эта тема более чем оправдала, мы продолжаем искать связанную с ней литературу и не так давно обратили внимание на книгу о программировании микросервисов на языке Go



          Интересную статью с обоснованием этого подхода мы нашли в блоге Agile Maverick, и ее перевод размещаем под катом.

          Приятного чтения!

          Читать дальше →
        • Гарвардский курс по основам программирования CS50 теперь на русском

            image

            Предыстория: кто мы и как дошли до жизни такой

            Мы — команда проекта JavaRush. А JavaRush, кто еще не в курсе, — это полностью автоматизированный обучающий онлайн-курс по Java. Когда-то давно, именно благодаря поддержке хаброюзеров и статьям на хабре, JavaRush и появился. В то время мы собирались переучить на программистов миллион человек.
            Читать дальше →
          • Давайте уже разберемся в DNS

            • Перевод

            image
            Внимательный читатель найдет на этой картинке IPv6


            Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.


            Что такое DNS


            DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.


            Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com, и получает в ответ 1.2.3.4.

            Читать дальше →
          • Создание компонента движения для системы лазания в Unreal Engine

            • Tutorial
            image

            Здравствуйте меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби.

            Как вы знаете недавно вышла Mirror's edge 2. Судя по отзывам критиков игра получилась очень слабая. И вы наверно уже захотели сделать свой Mirror's edge. Поэтому сегодня я расскажу как создать компонент движения, чтобы ваш персонаж двигался как героиня Mirror's edge.

            Здесь будет описано создание компонента движения (дальше КД) который позволит персонажу:
            1) Запрыгивать на стену.
            2) Бегать по стене.
            3) Перескакивать через небольшие препятствия
            4) Делать ускорение при непрерывном беге
            5)Делать подкат при нажатие Shift
            6) Скатываться с наклонных поверхностей
            7) А также мы создадим интерактивный объект веревку по которой тоже можно будет скатится

            Все исходники приведены в конце статьи.
            Читать дальше →
            • +18
            • 19,5k
            • 6
          • Подход игродела к созданию современных веб приложений

            Скучное вступление


            Не так давно, мне довелось участвовать в разработке некоего программно-аппаратного комплекса для одной американской компании. Разрабатывал я бэкенд, немного фронтенд, сращивал устройства с облаком (IoT то бишь). Стек технологий был обозначен четко. Ни в право, ни в лево — enterprise, одним словом. В определенный момент меня перекинули в помощь на фронтенд POS (Point of Sale) веб приложения.

            Проблема. Становится интересней


            Всё бы ничего, но веб приложение разрабатывалось для работы в 6 тыс. офисах по всей территории Америки (для начала). Где, как оказалось, с интернетом могут быть проблемы. Да да, в той самой, продвинутой Америке! Проблемы с покрытием не только проводного интернета, но и мобильной связью! Т.е. плохой интернет канал (часто, мобильный) — вполне себе обычная история для небольших американских городов.

            А это же POS… Тут, понимаешь, клиенты стоят, надо инвойс быстро распечатать… Тормозов быть не должно! И livesearch… Были обсуждения, прикидки, в итоге — не стали грузить бэкенд запросами (трафик, опять же). Сошлись на том, что веб приложение должно по-максимуму подгружать данные и делать, тот же поиск, локально. Речь идет, конечно, о данных, размер которых позволяет это сделать.

            Данных фронтенд тянул много, из разных сервисов. Как следствие — большой трафик и долгая загрузка страниц. В общем — беда.
            Часть проблем решается бэкендом (сжатие, гео-кластеринг и тп), но это — отдельная история, сейчас только о фронтенде.
            Читать дальше →
          • Дайджест разработки на Unreal Engine

              Игры на Unreal Engine, разработка на Unreal Engine, туториалы для Unreal Engine и другие интересные материалы об Unreal Engine вы найдете в нашем дайджесте. И кажется, мы забыли упомянуть самое главное – дайджест посвящен Unreal Engine.


              Читать все
            • И тестовое задание может оказаться интересным



                Приветствую тебя, центр вселенского разума — Хабр. Сегодня в центре внимания будет ресурс Codesign.io. Ресурс, призванный упростить жизнь дизайнеру и клиенту на стадии согласования правок в макетах любого направления. Не так давно миновал конкурс на позицию UI/UX-дизайнера (удалённо) и я, как скромный профессионал в данном направлении, решил не упускать возможности поучаствовать.
                Читать дальше →