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

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

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

.NET Aspire — империя дотнета наносит ответный удар

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

Когда я первый раз услышал про .NET Aspire, я подумал что это какая-то очередная лажа от Майкрософта, про которую все забудут через неделю.

Особенно, учитывая какую дичь часто завозят в шарп (например те же ужасно спроектированные Primary Constructor'ы про которые я писал, или вот прикол-пропозал от самого Тоуба). Так что ожидания у меня, честно говоря, были ниже нуля.

Но попробовав его лично, я был, честно говоря, шокирован. Трепещите, жависты!! Трепещите гошники! Трещепищите питонисты - такого вы еще точно не видели.

Я даже представить не мог, что DevEx можно сделать настолько офигительным.

Узнать про Aspire без смс и регистрации
Всего голосов 38: ↑36 и ↓2+42
Комментарии51

Книга «ASP.NET Core в действии» в правильном переводе команды DotNetRu

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

Полтора года назад мы рассказывали про опыт совместной работы нашего сообщества DotNetRu с издательством ДМК Пресс над переводом книги Конрада Кокосы «Управление памятью в .NET для профессионалов». Напомним суть: издатель делал первоначальный перевод, а ребята из сообщества в качестве экспертов доводили текст до ума, пока кровь из глаз не превратилась в слезы счастья. В итоге книга была успешно напечатана и выпущена в продажу, а эксперимент признан успешным.

И сегодня мы рады представить вам наш следующий совместный проект: книга Эндрю Лока «ASP.NET Core в действии» в правильном переводе DotNetRu. В продолжении поста — впечатления о процессе перевода от непосредственных участников и промокод на скидку от издательства.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии28

Техники обработки отказов сервиса в микросервисных архитектурах, или Альтернативы Circuit Breaker

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

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

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

Система SMS поп-апов в приложении на Unity: админ-панель и как удобно работать с информацией

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

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

Заметка от партнера IT-центра МАИ и организатора магистерской программы “VR/AR & AI” — компании PHYGITALISM.

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

FizzBuzz по-сениорски

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

- Добрый день, я на интервью на позицию старшего разработчика.

- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.

Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.

Читать далее
Всего голосов 295: ↑288 и ↓7+369
Комментарии306

Валидация ассетов в Unity3D

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


Начнём с того, что я обожаю сериализацию в Unity. Она надёжна и очень проста в использовании. Я просто расширяю MonoBehaviour, ScriptableObject и подобные классы и настраиваю сериализуемые поля экземпляров в инспекторе.

Но у неё есть и слабости. Одна из них ― человеческий фактор. Представьте себе огромный проект, который живёт несколько лет и над которым работает около сотни человек. И любой из них может совершить ошибку: оставить пустую ссылку на объект, указать число вне диапазона, ввести строку в неверном формате, заполнить массив слишком маленьким или, наоборот, слишком большим количеством объектов. Уверен, у каждого из вас найдутся такие примеры из своего опыта. Причин и оправданий тоже множество: невнимательность, неожиданные последствия слияния веток, сбои редактора… И никто от этого не застрахован.

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

Конечно, можно добавить проверок в коде, но от этого он загрязнится. Иногда эти проверки негативно влияют на производительность. А ещё не всегда однозначно понятно, как именно обработать каждую конкретную ошибку.

Универсального или даже штатного метода бороться с подобным в Unity нет. Поэтому мы в Pixonic реализовали свою систему валидации ассетов. И это очень помогает нам жить.

Сейчас я опишу, как там всё устроено.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+26
Комментарии6

Unity ball trajectory 2d для новичков

Время на прочтение5 мин
Количество просмотров5.9K
Всем привет. Эта статья будет посвящена написанию предугадывания траектории мяча в Unity. Версия Unity 2019.0.6f
Читать дальше →
Всего голосов 10: ↑5 и ↓5+4
Комментарии2

Карты высот и параллакс

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

Из этой статьи вы узнаете о картах высот (height maps), также называемых картами параллакса (parallax maps).

Что такое карта высот?


Как обычно, когда я говорю «карта», то имеют в виду текстуру, содержащую информацию о внешнем виде 3D-объекта. Карта высот/параллакса — это карта, которую можно использовать для того, чтобы создать иллюзию того, что одни части объекта выступают сильнее, чем другие, то есть имеют бОльшую высоту.


Без карты высот.


С картой высот.

По описанию это может показаться очень похожим на карту нормалей (normal map), благодаря которой 3D-объект кажется более рельефным, но действует она немного иначе. Карта нормалей использует освещение, чтобы объект казался более рельефным, чем на самом деле. Карта высот использует параллакс, чтобы сделать объект выше, чем на самом деле.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии1

Блендинг и Unity Terrain: как избавиться от пересечений и перестать делать глазам больно

Время на прочтение15 мин
Количество просмотров13K
Для того, чтобы получить реалистичный мир внутри игры, необходимо учитывать взаимодействие различных форм рельефа между собой и с другими моделями. И если видимые линии пересечения между 3D-моделями портят органичность изображения, стоит задуматься над тем, как их устранить. Самый распространенный случай таких линий, который может быть знаком многим, — пересечение билбордов частиц с непрозрачной геометрией.

image

Другой пример — нарушающие естественность композиции пересечения скал и растительности с поверхностью ландшафта в сценах «на открытом воздухе».

image

Помимо разнообразных методов сглаживания (SSAA, MSAA, CSAA, FXAA, NFAA, CMAA, DLAA, TAA и др.), которые пусть и смягчают вызывающий внешний вид таких линий пересечений, но не исправляют ситуацию в полной мере, существуют и более действенные приемы. Их мы и рассмотрим.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии10

RabbitMQ. Часть 1. Introduction. Erlang, AMQP

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

Добрый день, Хабр! Хочу поделиться учебником-справочником знаний, которые мне удалось собрать по RabbitMQ и сжать в короткие рекомендации и выводы.

Читать дальше →
Всего голосов 14: ↑13 и ↓1+18
Комментарии6

Линейная алгебра для разработчиков игр

Время на прочтение19 мин
Количество просмотров778K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Всего голосов 314: ↑296 и ↓18+278
Комментарии61

Шейдеры 3D-игр для начинающих

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

Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю каждую технику таким образом, чтобы вы могли применить/портировать эту информацию в любом стеке инструментов, будь то Godot, Unity или что-то иное.

В качестве «клея» между шейдерами я решил использовать великолепный игровой движок Panda3D и OpenGL Shading Language (GLSL). Если вы пользуетесь таким же стеком, то получите дополнительное преимущество — узнаете, как использовать техники затенения конкретно в Panda3D и OpenGL.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии6

Скелетная анимация на стороне видеокарты

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

Не так давно Unity представила ECS. В процессе изучения мне стала интерестно, а каким образом можно подружить анимацию и ECS. И в процессе поиска я наткнулся на интересную технику, которую применяли ребята из NORDVEUS в своем демо для доклада Unite Austin 2017.
Unite Austin 2017 — Massive Battle in the Spellsouls Universe.


Доклад содержит много интересных решений но сегодня пойдет речь о сохранении скелетной анимации в текстуре с целью дальнейшего ее применения.


Зачем такие сложности, спросите вы?


Ребята из NORDVEUS одновременно отрисовывали на экране большое количество однотипных анимированных объектом: скелетов, мечников. В случае использования традиционного подхода: SkinnedMeshRenderers и Animation\Animator, повлечет за собой увеличение вызовов отрисовки и дополнительную нагрузке на CPU по просчету анимации. И чтобы решить эти проблемы анимацию перенесли на сторону GPU, а точнее в вершинный шейдер.


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

В этой статье слишком много воды

Время на прочтение9 мин
Количество просмотров41K
«Мы начинаем разработку новой игры, и нам нужна классная вода. Такую сможешь?»


, — cпросили меня. «Да не вопрос! Конечно, смогу», — ответил я, но голос предательски задрожал. «А, еще и на Unity?», — и мне стало понятно, что впереди очень много работы.
Читать дальше →
Всего голосов 175: ↑174 и ↓1+173
Комментарии36

Как реализован рендеринг «Ведьмака 3»: молнии, ведьмачье чутьё и другие эффекты

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

Часть 1. Молнии


В этой части мы рассмотрим процесс рендеринга молний в Witcher 3: Wild Hunt.

Рендеринг молний выполняется немного позже эффекта занавес дождя, но всё равно происходит в проходе прямого рендеринга. Молнии можно увидеть на этом видео:


Они очень быстро исчезают, поэтому лучше просматривать видео на скорости 0.25.

Можно увидеть, что это не статичные изображения; со временем их яркость слегка меняется.

С точки зрения нюансов рендеринга здесь есть очень много сходств с отрисовкой занавес дождя в отдалении, например, такие же состояния смешивания (аддитивное смешивание) и глубины (проверка включена, запись глубин не выполняется).
Всего голосов 48: ↑48 и ↓0+48
Комментарии2

Математика в Gamedev по-простому. Триангуляции и Triangle.Net в Unity

Время на прочтение5 мин
Количество просмотров21K
Всем привет! Меня зовут Гриша, и я основатель CGDevs. Математика – очень крутой инструмент при разработке игр. Но если скажем без понимания векторов и матриц обойтись в принципе сложно, то алгоритмы триангуляций не столь обязательная вещь, но с помощью них решается достаточно большое количество интересных задач. Сегодня хотелось бы поговорить про достаточно важный инструмент в вычислительной геометрии, такой как триангуляции и их применение в игровой индустрии. Кроме того, я написал порт и немного обёрток великолепной библиотеки Triangle.Net для Unity. Если интересно – добро пожаловать под кат. Ссылка на гитхаб прилагается.


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

Математика в Gamedev по-простому. Кривые и рябь для эффекта дождя в Unity

Время на прочтение6 мин
Количество просмотров16K
Всем привет! Меня зовут Гриша, и я основатель CGDevs. Продолжим говорить про математику что ли. Пожалуй, основное применение математики в геймдеве и компьютерной графики в целом – это VFX. Вот и поговорим про один такой эффект – дождь, а точнее про его основную часть, требующую математики – рябь на поверхности. Последовательно напишем шейдер для ряби на поверхности, и разберём его математику. Если интересно – добро пожаловать под кат. Гитхаб проект прилагается.


Всего голосов 21: ↑17 и ↓4+13
Комментарии22

Введение в новую систему тайловых карт Unity

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

Знакомство с систему двухмерных тайловых карт Unity даёт отличную возможность экономии времени инди-разработчиков и игровых студий на прототипирование и создание качественных 2D-игр.

Без этой системы можно потратить дни, если не недели на написание собственной системы тайловых карт или переработку чужой. И это только программирование, а как насчёт редактора тайловых карт?

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

В этой статье мы воспользуемся простой тайловой 2D-игрой, чтобы узнать следующее:

  • Как работают тайловые карты.
  • Как включать тайловые карты в Unity и настраивать сетку.
  • Как добавлять в проект спрайты, преобразовывать их в тайлы, а затем добавлять их в палитру тайлов.
  • Как использовать инструменты редактора тайлов для создания уровней.
  • Как сортировать тайлы и размещать их в разных слоях.
  • Как добавить тайлам физику Unity.
  • Как динамически окрашивать тайлы.
  • Как изменять тайлы-префабы с помощью собственного кода и логики.
  • Как добавлять в проект собственные расширения и скрипты тайловых карт.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Особенности работы с Mesh в Unity

Время на прочтение5 мин
Количество просмотров26K
Компьютерная графика, как известно, является основой игровой индустрии. В процессе создания графического контента мы неизбежно сталкиваемся с трудностями, связанными с разницей его представления в среде создания и в приложении. К этим трудностям прибавляются риски простой человеческой невнимательности. Учитывая масштабы разработки игр, такие проблемы возникают либо часто, либо в больших количествах.

Борьба с подобными трудностями навела нас на мысли об автоматизации и написании статей на эту тему. Большая часть материала коснется работы с Unity 3D, поскольку это основное средство разработки в Plarium Krasnodar. Здесь и далее в качестве графического контента будут рассматриваться 3D-модели и текстуры.

В этой статье мы поговорим об особенностях доступа к данным представления 3D-объектов в Unity. Материал будет полезен в первую очередь новичкам, а также тем разработчикам, которые нечасто взаимодействуют с внутренним представлением таких моделей.

Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии10

Reflective Shadow Maps: Часть 1

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

Привет, Хабр! Представляю вашему вниманию перевод статьи «Reflective Shadow Maps» автора Eric Polman.

Reflective Shadow Maps (RSM) (отражающие карты теней) ― это алгоритм, расширяющий “простые” shadow map. Алгоритм учитывает свет, рассеянный после первого попадания на поверхность (diffuse). Это означает, что кроме прямого освещения, вы получаете непрямое освещение. В данной статье я разберу алгоритм из официальной статьи, чтобы объяснить его по-человечески. Я также кратко расскажу о shadow mapping.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Информация

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