User
Пишем шейдеры кодом в Unity URP (LWRP)
Введение
Здравствуй, Хабр. Сегодня хочется рассказать немного о том, как можно быстро и безболезненно (почти) начать писать классические текстовые шейдеры в Unity с использованием Lightweight Rendering Pipeline (LWRP, а ныне URP — Universal Render Pipline) — одним из примеров конвейера Scriptable Rendering Pipeline (SRP).
А как же Shader Graph?
Shader Graph — это удобное и быстрое средство прототипирования или написания простых эффектов. Однако, порою, требуется написать нечто сложное и комплексное и вот тогда — количество нод, кастомных функций, суб-графов неимоверно увеличивается, отчего даже самый матёрый программист графики начинает путаться во всём этом бардаке. Все мы понимаем, что автоматически генерируемый код априори не может быть лучше написанного вручную — за примерами ходить далеко не нужно, ибо любая ошибка в планировке нод может привести к тому, что уже известный результат вычислений в вершинном шейдере будет посчитан повторно во фрагментом. Бывают и люди, которым просто удобнее работать с кодом, а не с нодами. Причины могут быть разными, но суть одна — долой ноды, да здравствует код!
WTF per Hour
Душа поэта не вытерпела безвестности, и он щедро делится своими высокими идеями. (с) анонимус
Некоторое время назад я написал три статьи «Архитектурные решения для мобильной игры» посвящённые архитектуре моей мечты:
• Часть 1: Model
• Часть 2: Command и их очереди
• Часть 3: View на реактивной тяге
Я даже думал сделать из этого продукт на ассетсторе, но в ходе голосования выяснилось, что людям идеи и обсуждения гораздо важнее готового кода. С тех пор я поработал в двух игровых конторах, одна занимались и одна до сих пор занимается десктопными играми, но идеи организации User Interface через реактивности в обоих случаях пришлись очень кстати, в разы ускорили некоторую часть работы над сложными интерфейсами, и сделали возможным реализацию интерфейсов, которые до того казались слишком уж сложными. Всё это показало, что даже стадия первых закрытых бетта-тестов ещё не слишком поздно, чтобы сделать проекту сильно лучше.
Удобный инструмент для измерений C# кода
В стремительно развивающемся, большом и сложном продукте поиск узких мест, в плане производительности, становится не тривиальной задачей. Конечно есть инструменты для решения таких задач, например, BenchmarkDotNet. Бесспорно, это полезный и нужный инструмент, но при этом не всегда удобный. Это можно обнаружить, например, когда необходимо померить не публичный метод полностью, установив соответствующий атрибут, а некоторый кусок кода внутри приватного метода. Здесь я ни в коем случае не критикую обозначенный инструмент, а лишь хочу указать на потребность в несколько ином способе сбора метрик фрагментов кода. Встречаются весьма сложные, запутанные методы, с ветвлением, с циклами, обработкой исключительных ситуаций, а проблемное место может быть где-то внутри. Чтобы его найти нужно обильно обложить код измерителями, при этом есть очевидное желание не трогать и не перерабатывать существующую логику.
Рекомендации по дизайну UX мобильных игр
Уже более 10 лет я работаю гейм-дизайнером в очень успешных компаниях (старшим гейм-дизайнером в Matific, ведущим гейм-дизайнером в TabTale, владельцем Lookandfeel Games), и всё это время обладал привилегией и возможностью использования данных, полученных от сотен миллионов пользователей со всего света. Настало время поделиться моими знаниями с миром.
Долгое время гейм-дизайнеры использовали данные, полученные при плейтестинге, сеансах тестирования usability и в отчётах, чтобы обеспечить максимальное удобство пользования своим игрокам и продуктам. Работа в больших игровых компаниях хороша тем, что у тебя есть специализированный отдел анализа данных игр, сообщающий о плюсах и минусах, дающий советы и знакомящий с тенденциями.
«Жаль вас разочаровывать, но ваша идея не сработала».
Разочаровывать? С какой стати! Спасибо за то, что дали мне возможность переосмыслить свой дизайн, чтобы я не заблуждался в его правильности. Как иначе бы я мог совершенствоваться? Как иначе достигнуть мастерства? Благодаря анализу данных хорошие идеи дублируются и применяются в моих следующих проектах, а «пробные шары» в соответствии с ним улучшаются или отбрасываются. Вот «библи»я моих рекомендаций с уроками, почерпнутыми из 250 с лишним игр. Данные подтвердили, что они повышают монетизацию, удерживание игроков (retention), игровой процесс и вовлечённость (engagement).
Э — Эксперимент. Или как наука помогает проектировать интерфейсы
Читая различные книги и статьи по психологии, сохранила себе в копилку некоторое количество интересных экспериментов, которые могут натолкнуть на мысли и решения при проектировании интерфейса, дизайна, подаче материала (товара и пр.).
Описанные эксперименты не новы, но их актуальность сохраняется и в наши дни.
Кому-то они будут уже знакомы, под тем или иным соусом. Кто-то найдет для себя что-то новое, ну а кто-то, возможно, не найдет вообще ничего.
Примеров или мыслей, на которые натолкнули меня эти эксперименты не будет, каждый может применить на свое усмотрение, а вот суть и выводы, очень даже пожалуйста.
О простых вещах-сложно. Письмо химика 3D-печатнику. Растворители для пластмасс и защита от них
Одним из наиболее часто задаваемых вопросов в моей консультационной практике являются вопросы связанные с растворением/склейкой пластмасс с помощью всевозможных органических растворителей. В последнее время произошел настоящий всплеск интереса к химии высокомолекулярных соединений, связанный с появлением доступных 3D принтеров и необходимостью ориентироваться в «чернилах» для них (т.е. полимерных нитях-филаментах). Лишний раз убеждаюсь в том, что ни один, даже самый продвинутый «музей науки» с эффектным шоу не может так заставить IT-шника интересоваться пластмассами, как собственный 3D-принтер. Так что, читатель, если тебе хоть раз приходилось думать чем склеить пластмассу, которую не клеил default-ный суперклей, если мучали сомнения по поводу растворения поддержек свежеотпечатанной детали, да и просто интересно, чем можно отмыть клей от магазинного ценника на подарке — прошу под кат. Также настоятельно рекомендую страницу отправить в закладки не только тем, кто часто занимается склеиванием пластмасс, но и всем тем, кому часто приходится работать с различными растворителями/разбавителями. Делалось для себя — подарено Хабру!
Инкапсуляция для настоящих самураев, или нюансы, связанные с ключевым словом internal в C#
Пролог: internal is new public
Каждый из нас мечтал о проекте, где всё будет сделано правильно. Это кажется вполне естественным. Как только ты узнаёшь о самой возможности писать хороший код, как только слышишь легенды о том самом коде, который можно легко читать и изменять, сразу загораешься тем самым «ну вот теперь я точно всё сделаю правильно, я ведь теперь умный и Макконнела читал».
Случился такой проект и в моей жизни. Очередной. Причём делаю я его под добровольным надзором, где за каждой моей строчкой следят. Соответственно, уже не только хотелось, но и надо было делать всё правильно. Одним из «правильно» было «чти инкапсуляцию и закрывайся по максимуму, потому что открыться всегда успеешь, а закрыться обратно потом будет поздно». И поэтому я везде, где только мог, стал использовать для классов модификатор доступа internal вместо public. И, естественно, когда ты начинаешь активно использовать новую для тебя фичу языка, возникают некоторые нюансы. О них по порядку и хочу рассказать.
Переосмысление детской робототехники
За два года существования детских центров робототехники RoboCore, мы прошли долгий путь, полный взлётов и падений, о которых хотим Вам рассказать в статье.
Моя подборка с Youtube на тему DIY
В итоге вашему вниманию предлагается моя подборка подписок на каналы Youtube, которые посвящены теме DIY в широком смысле слова, а по большей части — деревообработке, то есть столярному и плотницкому мастерству. Большую часть каналов я постарался прокомментировать. Порядок, в котором каналы приведены, в значительной степени случайный, хотя я пытался ставить наиболее интересные для меня каналы ближе к началу.
Список ни в малейшей степени не претендует на полноту. В частности, я опустил многие каналы условно «строительного» профиля, которые содержат ролики по столярному делу, но при этом остальные ролики там например о штукатурке, укладке плитки или работе с гипсокартоном.
Ну и раз уж началось все со стола, то красной нитью через весь обзор будут проходить именно столы.
Обучение детей программированию
Здравствуйте. Меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО более 10 лет. Из них последние годы связаны с iOS. В свободное время разрабатываю игры и средства для их создания.
Обзор
Сегодня хочу рассказать о своём опыте обучения детей программированию, в частности мы рассмотрим:
- организацию процесса обучения
- программу обучения
- игру на память
- инструмент программирования
- уроки
- результаты и планы
Математика в Gamedev по-простому. Векторы и интегралы
Расширение редактора Unity через Editor Window, Scriptable Object и Custom Editor
Юнити — прекрасный инструмент, но в нём есть небольшая проблема. Новичку, чтобы сделать простую комнату (коробку с окнами), необходимо либо осваивать 3д моделирование, либо пытаться что-то собрать из квадов. Недавно стал полностью бесплатным ProBuilder, но это так же упрощённый пакет 3д моделирования. Хотелось простой инструмент, который позволит быстро создавать окружения вроде комнат со окнами и правильными UV при этом. Достаточно давно я разработал один плагин для Unity, который позволяет быстро прототипировать окружения вроде квартир и комнат с помощью 2д чертежа, и сейчас решил выложить его в OpenSource. На его примере мы разберём, каким образом можно расширять редактор и какие инструменты для этого существуют. Если вам интересно – добро пожаловать под кат. Ссылка на проект в конце, как всегда, прилагается.
Математика в Gamedev по-простому. Матрицы и аффинные преобразования
Математика в Gamedev по-простому. Триангуляции и Triangle.Net в Unity
Математика в Gamedev по-простому. Кривые и рябь для эффекта дождя в Unity
Многопоточность в Unity средствами реактивных расширений
В данной статье будут рассмотрены основные проблемы, возникающие при разработке многопоточных мобильных игр средствами Unity, а также способы их решения с помощью UniRx (реактивные расширения для Unity).
Статья состоит из двух частей. Первая посвящена многопоточности для «самых маленьких», в ней доступным языком рассказывается о потоках и способах их создания, о синхронизации потоков. Вторая часть посвящена реактивным расширениям, их устройству, принципу работы и способам применения.
Про геймдев с настольной выставки
Что интересно, в этом году пришло много гибридных игр. То есть тех, где ИТ очень плотно пересекается с физическим миром. Вот, например, просто трындец весёлая игра «Советская кухня» от европейского издателя:
Сюжет такой. После Второй мировой было нечего есть, и Сталин приказал готовить из всего подряд. Берёте водку, ядерные отходы, сапоги с трупа и бублики, смешиваете в мясорубке. Если получился нужный цвет — получаете очки.
По довольно очевидным причинам, лицензию на игру мы брать не стали. Но если абстрагироваться от особенностей сеттинга, то именно механика до безумия прекрасна.
Пульсация экранов телевизоров
Работа с EventSystem в Unity. Базовые вещи в работе с UI
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity