Как стать автором
Обновить
1
0

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

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

Экспресс создание Telegram бота на C#

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров12K

В данном материале рассматривается реализация телеграм-бота с помощью фреймворка SKitLs.Bots.Telegram, позволяющего абстрагироваться от однообразной if-else архитектуры и качественно перейти на новый, нелинейный, уровень архитектуры реализации ботов.

В качестве фундамента материала взята идея написание простого бота для отображения текущей погоды в указанном городе с помощью API сервисов Яндекса "Геокодер" и "Погода".

Читать далее

Как с помощью практики на LeetCode я получил несколько офферов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров54K

После рассказа о том, как я получил работу в Amazon, в этом посте на reddit мне задали множество вопросов о том, как мне помог LeetCode в подготовке к собеседованиям.

В статье я отвечу на эти вопросы.

Сколько времени это заняло?

Я начал готовиться за 2-3 месяца до собеседований в BigTech. В то время я тратил по 2-3 часа в день на подготовку.

Читать далее

Оптимизация вставки в R-дереве в рамках Unity проекта

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.9K

Привет, Хабр! Меня зовут Алмаз, я работаю программистом Unity. В этой статье хочу поделиться небольшой историей оптимизации вставки данных в R-дереве в рамках проекта на Unity. В статье не будет кода, но будут сравнения результатов поэтапного процесса оптимизации вышеупомянутого алгоритма.

* * *

Немного предыстории. Некоторое продолжительное время назад я задался целью реализовать несложный геймплей игры уровня “танчики”, который бы поддерживал мультиплеерный режим по сети на удаленных устройствах. Примером для копирования я выбрал многим известную игру из 90х для MS-DOS Dyna Blaster, или более известную как Bomberman.

Читать далее

Интересное из мира Unity #1 (27.01.23 — 2.02.23)

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

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Я решил вести дайджест новостей по Unity, отбирая интересные посты из того, что произошло за неделю. Красивые проекты, интересные ролики и многое другое. Если вам интересна Unity разработка — добро пожаловать под кат!

Читать далее

Дельта компрессия и квантизация объектов в C#

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

Cтатья затрагивает тему сериализации данных, которые передаются по unreliable каналам.

В первую очередь это касается реалтайм игр, которые критичны к сетевым задержкам, имеют активное общение клиента и сервера, например, 10 - 60 раз в секунду и используют UDP протокол.

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

Читать далее

Unreal Engine: Unreal header tool и Рефлексия в деталях

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

Привет Хабр!

В этой статье будет разобрана работа Unreal Header tool, рефлексии, и немного затронем VM.

Читать далее

Что почитать для Unity разработчика: Рендер

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

Всем привет. Меня зовут Григорий Дядиченко. Сегодня хочется составить некий список литературы, который как мне кажется было бы полезно почитать каждому, кто решает задачи рендера и занимается графикой в Unity. Разные книжки (и часть лекций) рассчитаны на понимание разных частей областей полезных рендер разработчику.

Читать далее

Roslyn-анализатор для преобразования кода из Regex в новый Regex Source Generator

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

Source generators (генераторы исходного кода) — это часть платформы Roslyn, которая появилась в .NET 5. Они позволяют анализировать существующий код и создавать новые файлы с исходным кодом, которые в свою очередь могут добавляться в процесс компиляции.

В .NET 7 появилась новая функиональность для регулярных выражений, которая позволяет генерировать исходный код для проверки регулярного выражения во время компиляции с помощью специального source generator. Генерация исходного кода во время компиляции, а не во время выполнения, имеет несколько преимуществ:

Читать далее

Использование NavMesh для навигации ИИ в Unity

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

Система навигации NavMesh позволяет объяснить игровым персонажам, как добраться до определённой точки уровня, избегая всевозможные препятствия и используя созданные игроком механики. Для работы с ней Unity предлагает следующие четыре компонента в работе которых мы попытаемся разобраться.

Читать далее

Добавляем рекламу в мобильное приложение. AdMob для начинающих

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

Политика монетизации - одна из самых важных составляющих мобильного приложения. Доходит и до того, что разработчики сначала продумывают маркетинговую схему, а уже потом натягивают на нее геймплей. Сейчас существует множество проверенных способов повысить ARPU (Average Revenue Per User) своей игры: лутбоксы, батлпасы, прямые продажы апгрейдов или косметических предметов. В этой статье мы рассмотрим самый простой, старый, но от этого не менее эффективный способ получения прибыли с мобильного приложения - внутриигровая реклама, а так же поговорим о том, как внедрить ее в Unity на примере Google AdMob.

Читать далее

Как найти своё место в программировании графики для игр

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

Введение


«Графика стала слишком сложной».

В последние годы я всё чаще слышу подобные фразы: программирование графики теперь настолько сложно изучать, что это демотивирует людей осваивать его как хобби и/или профессию, или заставляет их сдаться. Я глубоко очарован этой областью программирования, поэтому подобные комментарии всегда бьют по больному. Программирование графики для игр — это специализация, приносящая невероятное удовольствие, она постоянно эволюционирует и обновляется, к тому же имеет (по большей части) одно из лучших сообществ программистов, развивающееся благодаря активному обмену информацией. Так что же происходит?

Это сложно объяснить, но произносящие такие фразы в чём-то правы.

Когда я начал писать этот пост пару месяцев назад, он был совершенно другим, по сути, в нём аргументировалась необходимости создания высокоуровневой (как DX11, но лучше) API-обёртки для D3D12.

Но чем больше я писал, тем сильнее понимал, что проблема сложнее, чем кажется, а после публикации этого опроса в Twitter я убедился, что единого, подходящего всем решения для изучения графики больше не существует.

Кто-то может сказать «но и раньше его не было», и будет прав, но за последние годы разрыв увеличился. Давайте поговорим об этом.
Читать дальше →

Фотореалистичная графика на уровне ААА в Unity

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

До сих пор распространено мнение о том, что Unreal Engine превосходит Unity в графическом плане, но так ли это в действительности? (Спойлер: нет.)

Такое мнение сформировалось по ряду причин. Одна из причин отсылает нас к 2015 году, когда в Unity был доступен лишь встроенный конвейер рендеринга с рядом ограничений. На тот момент добиться сопоставимого с Unreal Engine визуала было очень сложно. Другой причиной является порог входа в Unity: он довольно низкий, а начинающим программистам и дизайнерам совсем не очевидна концепция компонентной системы Unity, что порождает довольно много слухов по сей день.

Сегодня с уверенностью можно сказать, что на качество графики, независимо от выбранного движка, влияют настройки средств визуализации, ведь параметры постобработки в Unreal Engine и Unity одинаковы.

Всем под кат! Далее мы расскажем, как добиться фотореалистичной графики в Unity.

Читать далее

Как очистить проект от неиспользуемых ассетов в Unreal Engine

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

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

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

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

Как очистить проект читайте в статье

Мультиплеер в Unreal Engine: Подключение и Хостинг

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

Привет Хабр!

В этой статье я хочу раскрыть механику создания онлайн сессии и подключения к ней. Все выполнено в с использованием Online Subsystem для возможного расширения вашей игры в контексте Steam, Origin, Play Station Store и т.д

Читать далее

Unreal engine — UMG Best Practices

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

Эта статья перевод статьи Chris Gagnon, сотрудника Epic Games, который непосредственно создавал UI. Он описал рекомендации и советы, как сделать лучше UMG.

Читать далее

Создание статического анализатора для C# на основе Roslyn API

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

После прочтения этой статьи вы будете обладать знаниями для создания своего собственного статического анализатора для C# кода, благодаря ему вы сможете найти потенциальные ошибки и уязвимости в исходном коде своих и не только проектов. Заинтригованы? Что ж, давайте начнём.

Читать далее

Декомпозируем игровую графику: технологии под капотом современных игр

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

С момента релиза War Robots прошло уже более 7 лет. В 2014 году мобильный игровой рынок был гораздо скромнее, чем сейчас, а девайсов, которые могли без проблем тянуть трехмерную игровую графику, — и того меньше. Несмотря на то, что уже случилась шейдерная «революция», и на замену графического конвейера с фиксированным функционалом (fixed-function pipeline) пришли вершинные и фрагментные шейдеры, возможностей для создания качественной картинки уровня настольного компьютера было явно недостаточно.

На старте разработки оригинальной игры фактически единственным среди графических API на мобильных платформах (Android, iOS) был OpenGL ES 2.0. Результат его эволюционного развития, OpenGL ES 3.0, был только-только утвержден, и на рынке даже не было устройств, которые бы его поддерживали. Таким образом, графика в Walking War Robots была основана на технологиях и возможностях, предоставляемых именно OpenGL ES 2.0. 

У War Robots тех времен был вполне себе типичный графический стек, поддерживающий один направленный источник света и способный рассчитать от него затенение с учетом весьма простой системы материалов. Со временем графика в игре улучшалась и совершенствовалась, но довольно быстро ее развитие стало упираться ограничения OpenGL ES 2.0. Наступил момент, когда потенциал эволюционного развития был достигнут, и без комплексного революционного подхода рывок в графике уже не представлялся возможным. В тот момент мы и приняли решение, что игре нужен ремастер.

Читать далее

Регулярные выражения. Всё проще, чем кажется

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

Всем доброго времени суток. Сегодня хочу рассказать максимум о регулярных выражениях: что они из себя представляют, как их писать, для чего нужны и т.д.

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

Читать далее

Менеджер качества, или как не спалить лоу-энд девайсы ультра-графикой

Время на прочтение12 мин
Количество просмотров4.4K
Всем привет, сегодня мы расскажем о том, как мы делим качества и какие инструменты для этого используем в проекте War Robots.

Релиз War Robots состоялся еще в 2014 году, и за 7 лет существования проекта графическая часть в нем постоянно развивалась. Но в то же время команда постоянно сталкивалась с ограничениями из-за минимальных требований к девайсам. Оперируя таким большим проектом, у которого немало устройств входит в low-end сегмент, нельзя просто взять и запилить крутой современный графен, не потеряв при этом часть аудитории.

image

Так у нас появилась задача: сделать всем красиво и хорошо. Поэтому мы решили делать War Robots Remastered — с блэк-джеком, обновлением графического пайплайна и разделением ассетов на разные качества.

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

На тот момент билд War Robots под Android со всеми ресурсам весил порядка 700 МБ и включал сотни единиц контента. У нас было 13 карт, 81 мех, более ста пушек, десяток дронов и еще куча всякой мелочи. Не то, чтобы все это было категорически необходимо в проекте, но если уж начал пилить контент, то иди в своем увлечении до конца.

И второе — нам нужно этими качествами как-то управлять и предоставлять пользователю то качество, которое будет оптимально для его девайса.
Читать дальше →

Материалы в Unity: Акрил

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

Всем привет! Меня зовут Григорий Дядиченко, я СТО Foxsys, и я всё ещё люблю графику. В прошлый раз я рассказывал, что неплохим упражнением является сборка различных базовых материалов для тренировки в создании интересных эффектов. Давайте сегодня проведём такое упражнение вместе и разберём, каким образом можно получить в Unity такой материал, как акрил, который будет работать в AR и на мобильных платформах. Кому интересно - добро пожаловать под кат!

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность