Pull to refresh
1
0

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

Send message

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

Level of difficultyMedium
Reading time19 min
Views9.1K

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

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

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments5

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

Level of difficultyEasy
Reading time4 min
Views51K

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

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

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

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

Читать далее
Total votes 46: ↑40 and ↓6+34
Comments54

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

Level of difficultyMedium
Reading time11 min
Views2.8K

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

* * *

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments7

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

Reading time2 min
Views2.2K

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

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments4

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

Reading time11 min
Views12K

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

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

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

Читать далее
Total votes 37: ↑36 and ↓1+35
Comments18

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

Reading time4 min
Views7.7K

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments1

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

Reading time10 min
Views3.3K

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

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

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments0

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

Reading time12 min
Views38K

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments9

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

Reading time5 min
Views16K

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

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments2

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

Reading time6 min
Views9.3K

Введение


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

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

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

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

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

Кто-то может сказать «но и раньше его не было», и будет прав, но за последние годы разрыв увеличился. Давайте поговорим об этом.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments1

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

Reading time12 min
Views23K

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

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

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

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

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments18

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

Reading time5 min
Views15K

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

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

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

Как очистить проект читайте в статье
Total votes 8: ↑8 and ↓0+8
Comments6

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

Reading time11 min
Views18K

Привет Хабр!

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments5

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

Reading time24 min
Views9.8K

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

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments2

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

Reading time19 min
Views8.6K

С момента релиза 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. Наступил момент, когда потенциал эволюционного развития был достигнут, и без комплексного революционного подхода рывок в графике уже не представлялся возможным. В тот момент мы и приняли решение, что игре нужен ремастер.

Читать далее
Total votes 26: ↑25 and ↓1+24
Comments14

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

Reading time7 min
Views102K

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

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

Читать далее
Total votes 49: ↑45 and ↓4+41
Comments71

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

Reading time12 min
Views4.3K
Всем привет, сегодня мы расскажем о том, как мы делим качества и какие инструменты для этого используем в проекте War Robots.

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

image

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

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

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

И второе — нам нужно этими качествами как-то управлять и предоставлять пользователю то качество, которое будет оптимально для его девайса.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments1

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

Reading time5 min
Views4.2K

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments0

Information

Rating
Does not participate
Registered
Activity