Как стать автором
Обновить
0
0
Никита Кузнецов @Braidner

Пользователь

Отправить сообщение

Unity3D ECS и Job System

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

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

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

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

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

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


Всего голосов 17: ↑16 и ↓1+15
Комментарии9

Angular — настройка среды разработки и production сборки с AOT-компиляцией и tree-shaking (Gulp, Rollup, SystemJS)

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

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


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


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


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

От геймера до разработчика игры

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

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


«Да, мой герой похож на Рагнара, в полной версии будет другая внешность»
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии58

«Как я провёл это лето»: видео с летних встреч JUG.ru

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

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

Всего голосов 34: ↑34 и ↓0+34
Комментарии2

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

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

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

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

Задача — не уйти в себя на поддержке проекта в таком виде, в каком он есть, начать писать хороший, поддерживаемый код, научиться чему-то новому.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии11

Создание уровней по методу Super Mario World

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

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


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

Unity3D Ускорить отрисовку 2D анимации в разы? Легко

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

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

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

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


Безусловно, первое решение было простым: все сделать с помощью уже встроенного в UnityEngine компонента Animator. Посмотрим, что из этого получается.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии11

Unite Europe 2016: Обзор доклада “Overthrowing the MonoBehaviour tyranny in a glorious ScriptableObject revolution”

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


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

Видео докладов с Docker митапа

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

18-го июня мы провели Docker митап, а сегодня публикуем видео докладов.

Познавательного вам просмотра!
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии17

systemd: getty-подобный сервис для htop

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

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


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

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

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


С развитием HTML5 и мобильных платформ 2D-игры возвращаются в моду. Заниматься такими проектами, будь то браузерные игры, игры на телефон или для ПК, стало легче благодаря таким инструментам, как Unity, и онлайн-ресурсам с игровыми ассетами. Ниже представлен список из 10 лучших сайтов с 2D-ресурсами для игр – как платными, так и бесплатными.

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

Почему не взлетел Pied Piper: наш разбор 9 серии 3 сезона сериала «Кремниевая долина»

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

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


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

Язык Go, микросервисы и DevOps – хорошая компания?

Время на прочтение5 мин
Количество просмотров21K
Привет, Хабр!

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



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

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

Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии13

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

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

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

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

Давайте уже разберемся в DNS

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

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


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


Что такое DNS


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


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

Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии36

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

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

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

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

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

Все исходники приведены в конце статьи.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии6

Подход игродела к созданию современных веб приложений

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

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


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

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


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

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

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

Дайджест разработки на Unreal Engine

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


Читать все
Всего голосов 24: ↑20 и ↓4+16
Комментарии23

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

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


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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность