Search
Write a publication
Pull to refresh
4
0
PoliTeX @PoliTeX

User

Send message

Сетевая оптимизация для Unreal Engine 4

Reading time11 min
Views32K


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


В начале я не планировал как-то раскрывать или упоминать эту тему, но потом подумал, что оформить "Best Practices" было бы неплохо даже для себя и своей команды.


Так что, если вам интересно, как мы делали сеть для нашей Armored Warfare: Assault, добро пожаловать под кат.

Читать дальше →

Электронный протоглаз на микроконтроллере v.1

Reading time3 min
Views10K
Здравствуй, Сообщество! Статья — классический «велосипед», но для начинающих в электронике и робототехнике может быть интересна.

Как известно, самую мелкую и простую робототехнику собирают сейчас на микроконтроллерах типа Atmega или STM. Здесь в статье я принципиально не беру уровень мини-компьютеров типа Raspberry.

В робототехнике, кроме движений, бывает необходимо делать хотя бы оценку окружающего пространства. Так вот — оптического растрового датчика для простых МК мне не попадалось. Популярный «датчик линии» — это не то. Поиск по Гиктаймсу и аналогичным ресурсам дал ссылки на видеокамеры, но они слишком быстрые для простых МК и одну статью про использование 8 шт. светодиодов в качестве фотодиодов.

image

Поэтому родилась идея сделать примитивный растровый датчик — протоглаз, по аналогии с первыми живыми организмами. Всё, что написано далее, мной делалось только для собственного развлечения, с минимальными затратами и практического применения не предполагалось. Пусть и снова велосипед, но с уважением к Нипкову и отцам механического телевидения.
Подробности под катом…
Читать дальше →

Сетевая физика в виртуальной реальности

Reading time17 min
Views14K
image

Введение


Около года назад ко мне обратилась компания Oculus с предложением проспонсировать мои исследования. По сути, они сказали следующее: «Привет, Гленн, существует большой интерес к передаваемой по сети физике для VR, а Вы сделали отличный доклад на GDC. Как считаете, сможете ли Вы подготовить образец сетевой физики в VR, который мы могли бы показывать разработчикам? Возможно, Вам удастся использовать сенсорные контроллеры?»

Я ответил «Да, чёрт побери!» «Кхм. Разумеется. Это будет весьма интересно!» Но чтобы быть честным, я настоял на двух условиях. Первое: разработанный мной исходный код должен быть опубликован под достаточно свободной лицензией open source (например, BSD), чтобы мой код принёс наибольшую пользу. Второе: когда я закончу, я буду иметь право написать статью, описывающую шаги, предпринятые мной для разработки этого образца.

Ребята из Oculus согласились. И вот эта статья! Сам исходный код примера сетевой физики выложен здесь. Написанный мной код в нём выпущен под лицензией BSD. Надеюсь, следующее поколение программистов сможет научиться чему-то из моих исследований сетевой физики и создать что-то действительно замечательное. Удачи!
Читать дальше →

Простой менеджер ассинхронных задач для Unity3D

Reading time7 min
Views19K

Введение


Приветствую Вас, уважаемые читатели. В данной статье пойдет речь о реализации простого менеджера асинхронно выполняемых задач для среди разработки Unity3d. Данный менеджер использует в своей основе так называемые Coroutine, которые присутствует в движке.
Читать дальше →

Мобильная 3D игра на Unity3D менее чем за 90 часов

Reading time11 min
Views95K
image Приветствую! Сегодня я расскажу вам о своем опыте разработки игры на Unity для платформы Android, менее чем за 90 часов, на примере создания простенького «раннера». В процессе повествования я затрону некоторые детали и ключевые этапы, с описанием всех возможных подводных камней и методов их решения. Данная история описывает процесс создания игры для мобильных платформ, начиная от концепции и заканчивая готовым продуктом. Надеюсь, она вдохновит вас на создание собственного проекта, либо поможет пролить свет на некоторые особенности движка Unity. Без лишних слов, приступим к делу!
Читать дальше →

Развязываем игровой код с помощью паттерна Command, и дебажим, летая на машине времени

Reading time18 min
Views22K

Картинка для привлечения внимания: > Replay bug-10492; going back in time


Привет! Я пишу статьи, посвященные архитектуре в игровой разработке. В этой статье я хочу разобрать паттерн Команда (Command). Он многогранен, и может быть применен по-разному. Но я покажу, как сделать мой любимый трюк — машина времени для отладки изменений гейм стейта.


Эта штука сэкономила мне кучу времени в поиске и воспроизведении сложных багов. Она позволяет делать "снапшоты" игрового состояния, историю его изменения, и пошагово их применять.


Начинающие разработчики познакомятся с паттерном, а продвинутые, возможно, найдут трюк полезным.


Хотите узнать как это сделать? Прошу под кат.

Читать дальше →

Как сделать часы из старого навигатора на Windows CE

Reading time2 min
Views25K
Лет десять назад на рынке операционных систем для мобильных устройств лидировал Windows CE, разгромивший своих конкурентов в виде PalmOS, Symbian и других. Windows CE был везде — в навигаторах, магнитолах, коммуникаторах, КПК и даже в медицинском оборудовании. Но прошло время, и теперь это скорее экзотика, а сами устройства устарели и прочно осели по кладовкам. Одно из них обнаружилось у меня дома в лице китайского навигатора Nexx. После недолгих размышлений было решено сделать из него часы. И у меня это почти получилось…


Читать дальше →

Реализация быстрых 2D-теней в Unity с помощью 1D shadow mapping

Reading time7 min
Views12K

Введение


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

Таким ограничением я отбрасывал множество уже существовавших способов расчёта теней, которые мне удалось найти. Популярной была пара техник. В одной применялась реализуемая на ЦП трассировка лучей, определяющая границы силуэтов блокирующей свет геометрии. В другой все препятствия для света рендерились в текстуру, а затем для неё выполнялся алгоритм типа ray-stepping с несколькими проходами для создания карты теней. Эти техники обычно используются не более чем с парой источников света и точно не позволили бы мне работать с десятками источников света в соответствии с выбранными мной ограничениями.
Читать дальше →

Туториал по Unreal Engine: Cel Shading

Reading time9 min
Views29K
image

Благодаря физически точному рендерингу в Unreal Engine 4 удобно разрабатывать реалистичные игры. Модель рендеринга имитирует взаимодействие света с материалами, что приводит к созданию реалистичной картинки. Однако если вы хотите разработать игру со стилизованным внешним видом, то вам придётся исследовать другие техники.

Один из способов создания стилизации — использование cel shading (также известного как toon-шейдинг). Эта техника подражает затенению, обычно используемому в мультфильмах и аниме. Примеры её использования можно увидеть в таких играх, как Jet Set Radio, The Legend of Zelda: The Wind Waker и Gravity Rush.

В этом туториале вы научитесь следующему:

  • Создавать и использовать материал постобработки
  • Создавать cel-шейдер
  • Изолировать cel-шейдер для отдельных мешей
  • Управлять цветовыми полосами с помощью таблиц поиска
Читать дальше →

Создание двухмерных эффектов частиц в Unity3D

Reading time5 min
Views26K

Привет, меня зовут Дэвид Финсет. Я технический художник Synapse Games и работаю над играми, в которых нужны визуальные эффекты, требующие и технической, и художественной составляющей. Большая часть моей работы заключается в создании эффектов частиц для мобильных игр. Мне очень нравится эта работа, поэтому я хочу поделиться своим рабочим процессом и дать несколько советов по самостоятельному созданию таких эффектов.

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

Сначала я расскажу об отдельных частях своего рабочего процесса создания эффектов частиц в Unity, а затем поделюсь некоторыми техническими советами и хитростями. Большинство этих примеров взято из моей работы над играми Spellstone и Animation Throwdown.
Читать дальше →

Сетевой код для бедных

Reading time11 min
Views38K

Чем больше узнаёшь в своей области знания, тем чётче понимаешь, что никто не может знать всего.

По какой-то причине (за что, господи, за что?) моей областью стала разработка игр. Каждый, кто работает в этой сфере, скажет вам: никогда не добавляй сетевой многопользовательский режим в уже готовую игру, никогда, пьяный ты клоун.

Как бы то ни было, я именно это и сделал, и ненавижу себя за это. На удивление, вышло замечательно. Никто из нас не знает всего.

Проблема №1: ресурсы


Первый вопрос, который у меня возник: как сказать клиенту, что для рендеринга объекта нужно использовать такой-то меш?

Сериализировать весь меш? Не стоит, у клиента он уже есть на диске.

Передавать имя файла? Не-а, малоэффективно и небезопасно.

Ну ладно, может быть, просто строковый идентификатор?

К счастью, прежде чем у меня появилось время на реализацию собственных бредовых идей, я посмотрел доклад Майка Эктона, в котором он говорил об опасностях «ленивого принятия решений». Смысл в следующем: строки позволяют разработчикам лениво игнорировать принятие решений до момента создания работающего приложения, когда исправлять ошибки уже поздно.

Еще один способ разложения сигнала в спектр

Reading time3 min
Views13K
Привет всем, здесь я хочу рассказать про алгоритм анализа звукового сигнала, позволяющий разобрать сигнал на отдельные волны, конечно 100% точности он не дает, но тем не менее результат на мой взгляд довольно неплох.

image

Не пельменем единым жив программист или история о том, как все успеть

Reading time7 min
Views140K
image

По заявкам трудящихся и в связи с переносом — возвращаю пост, который многих порадовал. Надеюсь НЛО будет не против.

На написание этого поста меня сподвиг замечательный пост «За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил». Сразу хочу извиниться за возможные опечатки — пишу с планшета, сидя в микроавтобусе и вытягивая сеть телефоном. Hacker's keyboard очень удобен для ssh-доступа, но большие тексты писать им не очень удобно.

IT- специалисты — народ любопытный. То соберут на базе микроконтроллеров автоматическую систему полива и освещения для любимого фикуса, то пропатчат прошивку мультиварки для раздачи торрентов. Но, по непонятной и загадочной причине, когда дело доходит до еды, пресловутый принцип DIY дает сбой. И наш герой, способный часами переделывать кинескоп старого телевизора в Луч Смерти, идет на кухню утолить голод соевым текстуратом пополам с гидроцеллюлозой и «коллагеновым сырьем».

В этом посте я хочу разрушить миф о том, что еда может быть либо быстрой и удобной, либо съедобной. Не секрет, что многим из нас приходится работать по 12 часов в сутки, что не способствует кулинарным подвигам с участием 28 приправ и перьев с зада дракона, омытых слезами единорога. Вы получите замечательную возможность посмотреть в глаза своей половинки на 8 марта после того, как она получит не контроллер для дистанционного управления шторой, а свежевыпеченный хлеб ручной работы рано утром. Если вам надоело есть синтетику — добро пожаловать под hubracut.
Читать дальше →

Чему робототехника может научить игровой ИИ

Reading time32 min
Views14K

Я исследователь-робототехник и в то же время моё хобби — разработка игр. Моя специализация — планирование многомерного движения манипуляторов роботов. Планирование движения — это очень важная тема для разработчиков игр, она пригождается каждый раз, когда нужно переместить управляемого ИИ персонажа из одной точки в другую.

В процессе изучения разработки игр я находил множество туториалов, в которых рассказывалось о планировании движения (обычно в литературе по разработке игр оно называется «поиском пути»), но большинство из них не вдавалось в подробности того, в чём заключается планирование движения с теоретической точки зрения. Насколько я могу судить, в большинстве игр редко используется какое-то иное планирование движения, кроме одного из трёх серьёзных алгоритмов: поиск по сеткам A*, графы видимости и поля течения. Кроме этих трёх принципов, существует ещё целый мир теоретических исследований планирования движения, и некоторые из них могут быть полезными разработчикам игр.

В этой статье я хотел бы рассказать о стандартных техниках планирования движения в своём контексте и объяснить их преимущества и недостатки. Также я хочу представить основные техники, которые обычно не используются в видеоиграх. Надеюсь, они прольют свет на то, как их можно применять в разработке игр.
Читать дальше →

Создание системы бонусов в Unity

Reading time15 min
Views15K
image

На что бы была похожа игра Sonic The Hedgehog без золотых колец и скоростных ботинок, Super Mario без грибов или Pac-Man без мигающих точек? Все эти игры стали бы намного скучнее!

Бонусы (power-ups) — это важнейший компонент игрового процесса, потому что они добавляют новые уровни комплексности и стратегии, побуждая игрока к действию.

В этом туториале вы научитесь следующему:

  • Конструировать и собирать систему бонусов с возможностью многократного применения в других играх.
  • Использовать в игре систему связи на основе сообщений.
  • Реализовывать всё это в игре с видом сверху, использующей ваши собственные бонусы!
Читать дальше →

Интерфейс DALI и Arduino. Реальный сюрреализм

Reading time6 min
Views21K
Всем привет. Нашему отделу была поставлена задача провести презентацию цифрового интерфейса DALI. Причем презентацию с демонстрацией работы этого интерфейса. Если надо — значит, надо. Чего мы только не делали. Для этой цели были предоставлены два модуля управления светодиодными светильниками. Оба оказались ведомыми. А мастер? Начали выбирать контроллер для управления этим интерфейсом. В итоге или цена какая-то заоблачная или сроки поставки такие же. А приближается отпуск, и откладывать уже не хочется. Ещё раз просмотрели характеристики и обратили внимание на особенности данного цифрового протокола:

  • DALI является открытым протоколом;
  • DALI- децентрализованная шина, то есть не имеет центрального контроллера и допускает любую топологию.

Всё это показалось очень привлекательным и задача показалась совершенно не сложной. На первый взгляд. Решили сделать мастера DALI на Arduino.

ESP8266 и Arduino, подключение, распиновка

Reading time5 min
Views371K
Привет Хабр. Тема ESP8266, как и IoT(интернет вещей), всё больше набирает популярности, и уже Arduino подхватывает инициативу — добавляя эти Wi-Fi модули в список поддерживаемых плат.
Но как же его подключить к ардуино? И возможно как-то обойтись вообще без ардуино? Сегодня именно об этом и пойдёт речь в этой статье.

Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля ESP8266 в среде разработки Arduino IDE. Но, обо всём по порядку.

image

Этот видеоролик, полностью дублирует материал, представленный в статье.


Читать дальше...

Рендерим облака на мобильных девайсах

Reading time3 min
Views22K
3 года назад художник спросил меня:
— Слушай, а можно в нашу мобильную игру добавить красивые облачка?
— Нет, это абсолютно невозможно, у нас постоянно вращается камера, так что билборды будут смотреться очень фальшиво даже если на них добавить карты нормалей, а другие способы…
*художник погружается в летаргический сон*

Для меня нет большего удовольствия, чем выяснять, что я был неправ.



Про фотореалистичный рендеринг облаков написано много статей, но если хочется рисовать облака на смартфоне, приходится придумывать кучу всяких хаков, упрощений и допущений.
Под катом подробное описание рендеринга облаков на мобильных и много html5 гифок.
Поехали!

Надоело писать PropertyDrawer в Unity? Есть способ лучше

Reading time13 min
Views23K

Не так давно я участвовал в разработке игры на Unity. Много времени уделял инструментам для коллег: редактор уровней для геймдизайнера, удобные базы данных для художников.


По понятным причинам, в программировании интерфейсов под Unity мы не всегда можем использовать автоматическую разметку (удобные средства GUILayout), и нередко приходится вручную нарезать прямоугольники и рисовать интерфейсы средствами класса GUI. Эта работа утомительна, связана с большим количеством ошибок, а код получается сложным в поддержке. Со временем, возникла привычная каждому программисту мысль: напишу свой велосипед! "Должен быть способ лучше!". За подробностями приглашаю под кат.



Картинка для привлечения внимания взята отсюда.

Читать дальше →

Оптимизируем PropertyDrawer под Unity3d

Reading time8 min
Views4.8K

В своей предыдущей статье я описал OneLine — PropertyDrawer, позволяющий рисовать объект любой вложенности в одну строку.


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



Внимание, под катом много гифок и картинок!

Читать дальше →

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity