Search
Write a publication
Pull to refresh
18
0
Журат Максим @ChessMax

User

Send message

WPF, UWP, WinUI, MAUI, Windows App SDK

Reading time6 min
Views29K

Человека далёкого от клиентской разработки на Windows все эти термины определённо путают. И даже среди MS-сообщества регулярно возникают споры жив UWP или мёртв. Причем главный вопрос в этом споре - а что же такое UWP?

Вот уже года 3 Microsoft проводит "рефакторинг" в своём "королевстве".  Несколько устав видеть одни и те же споры в твиттере, и оставлять одни и те же комментарии на хабре, я решил расписать как же многочисленные UI-фреймворки MS соотносятся между собой. Кто из них больше мёртв. Возможно, кому-то это поможет в выборе технологии для будущего проекта.

Читать далее

Реализация алгоритма Минимакс на примере игры «Крестики-Нолики»

Reading time7 min
Views38K
Недавно я написал непобедимую игру «Крестики-Нолики». Это был интересный и поучительный проект, который многому меня научил. Если у вас есть желание посмотреть результат — это можно сделать здесь.

image

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

Понимание основ алгоритма и реализация игры заняли некоторое время. Я нашел много примеров кода и объяснений, тем не менее это оказалось не такой уж простой затеей. Надеюсь этот пост поможет некоторым из читателей оценить элегантность этого алгоритма.

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

Хоум Кредит банк как он есть

Reading time7 min
Views74K

Хоум Кредит банк позиционирует себя как дружную команду единомышленников. Топ-менеджеры при каждом удачном случае отмечают "необыкновенную атмосферу", царящую в коллективе и даже используют специальный термин для сотрудников банка, "хомяки". Неофитам на онбординге рассказывают в какой прекрасный банк они попали, как им повезло, какие широкие перспективы открывает перед ними банк и как нужно стараться, чтобы не подвести этих замечательных людей. Всё прямо как в секте. Однако, при ближайшем рассмотрении оказывается что коллеги - люди как люди. Встречаются и позитивные и не очень, и профессионалы и джуны, некоторые работают "на износ", другие - "с перекурами".

Правда, есть одна группа людей, в которой позитивные профессионалы встречаются чаще чем в других - это группа покидающих банк. А если кто-то приходит - скорее это будет в лучшем случае человек пришедший прокачивать скилы с около-нулевого уровня, а в худшем человек с тем же около-нулевым уровнем, но который прокачивать ничего не собирается. Но пропаганда топ-менеджмента дает свои плоды: как-то раз я был на собесе в другом банке, который считается прямым конкурентом Хоума и меня на серьезных щах спросили: а что у вам там в Хоуме случилось, слишком много вас оттуда в последнее время, я думал у вас там классно...

Читать далее

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

Reading time5 min
Views4.8K

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

Читать далее

#unitytips: Подборка советов и приемов от сообщества Unity, которыми вы можете похвастаться перед друзьями

Reading time5 min
Views5.5K

Мы вернулись к вам с очередным обзором #unitytips. Когда мы выпустили наш первый обзор в начале этого года, вы ответили нам, что он помог вывести ваши проекты на совершенно другой уровень, поэтому мы вернулись с еще большим количеством лучших практик.

Читать далее

Найти подстроку в строке

Reading time6 min
Views32K

Алгоритм поиска строки Бойера — Мура — алгоритм общего назначения, предназначенный для поиска подстроки в строке.

Давайте попробуем найти вхождение подстроки в строку.

Подготовка к собеседованию

Как я искал работу в США во время пандемии, подался на 200 вакансий и получил оффер на $380K

Reading time41 min
Views42K

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

Адам Леос — Senior Software Engineer в Roku. Пару лет назад он принял решение о релокации и в итоге выбрал своей целью США. Всего за три месяца Адам с нуля собрал все необходимое для подачи на визу О1, но потом в историю вмешалась пандемия. О том, с какими трудностями он столкнулся из-за карантина, как искать работу на американском IT-рынке, как получить большое количество офферов и выторговать самую выгодную компенсацию, разработчик рассказал в интервью DOU.UA

Читать далее

Что читать на английском языке чтобы не умереть от скуки

Reading time9 min
Views51K

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

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

Читать далее

Сетки из треугольников в играх

Reading time6 min
Views7.7K

Поговорим о сетках треугольников. Сетки квадратов используются практически повсюду, от пикселей изображения до расположения домов в квартале. Сетки шестиугольников представлены тоже довольно широко, особенно в настольных играх. Однако сетки треугольников (равномерное заполнение 2D-плоскости равносторонними треугольниками) почему-то не очень популярны. Я встречал заявления, что они бесполезны, или что у них сложная математика. Но этой статьёй я докажу, что оба заявления ошибочны: вычисления на самом деле проще, чем при работе с шестиугольниками, к тому же треугольники обладают множеством преимуществ.

Все вычисления я выполнил в своём коде на github, однако стоит объяснить, как и зачем нужно использовать такие сетки.

Что такое «сетка треугольников»


Когда я говорю о сетке треугольников, то подразумеваю тайловую карту, в которой все тайлы являются одинаковыми равносторонними треугольниками, выстроенными в переменные строки (или столбцы).


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

Настраиваем нагрузочное тестирование с Artillery.io

Reading time2 min
Views7.8K

Не так давно я начала писать тесты для нагрузочного тестирования с помощью инструмента artillery. Раньше писала тесты для K6, поэтому расскажу о преимуществах artillery по сравнению с К6, а также напишу пошаговый сценарий для настройки проекта с нуля.

Читать далее

Гексагональные тайловые миры

Level of difficultyHard
Reading time32 min
Views39K

Тайловость в играх – очень распространенное явление, особенно в играх инди сегмента. Чаще всего используют квадратные тайлы – в них проще всего задать необходимые данные, будь то карта уровня или инвентарь. Однако на квадратных и прямоугольных формах возможности подобной системы не ограничиваются.

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

Читать далее

7 подсказок, как создать и улучшить Battle Pass в вашей игре

Reading time4 min
Views8K

51% игр в ТОП 100 игр по гроссингу в США внедрили Battle Pass и данная фича продолжает набирать популярность (по данным сервиса GameRefinery). В данной статье я хотела бы рассказать о подсказках, которые вы можете использовать при создании или улучшении Battle Pass с примерами из игр жанра match3.

Читать далее

Неочевидные сложности CRDT

Reading time23 min
Views7.5K


Мы все так привыкли к облачной синхронизации Dropbox и совместному редактированию в Google Docs, что объединение результатов действий разных пользователей может казаться давно решённой проблемой. Но на самом деле в этом вопросе остаётся множество подводных камней, а работа над алгоритмами CRDT вовсю продолжается.


Один из людей, ведущих эту работу — Мартин Клеппманн (Martin Kleppmann): исследователь в Кембриджском университете и создатель популярной библиотеки Automerge. И на конференции Hydra он рассказывал о нескольких вещах, которые исследовал буквально в последнюю пару лет. Какие действия пользователя могут заставить Google Drive выдать «unknown error»? Почему в CRDT метаданные о работе над документом могут занимать в сто раз больше места, чем сам документ, и как с этим бороться? А у какой проблемы сейчас даже не существует известного решения?


Обо всём этом он поведал в докладе, а теперь мы сделали для Хабра текстовый перевод. Видео и перевод — под катом, далее повествование будет от лица спикера.

Углубленный анализ тестирования виджетов во Flutter. Часть II. Классы Finder и WidgetTester

Reading time10 min
Views3.4K

Это продолжение первой части статьи о тестировании виджетов во Flutter.

Продолжим наше изучение процесса тестирования виджетов. 

В прошлый раз мы сосредоточились на базовой структуре тестового файла и подробно рассмотрели, что может делать функция testWidgets() в тесте. Хотя эта функция отвечает за выполнение теста, непосредственно к тесту мы не перешли и даже не посмотрели, как он выглядит, — и это было сделано специально. На мой взгляд, хорошее знание компонентов, из которых состоит тест, может принести огромную пользу в момент их написания.

Читать далее

Flutter Flavoring in a breeze

Reading time8 min
Views7.9K

Хотелось ли вам иметь несколько версий одного приложения?

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

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

Всем привет!

Меня зовут Андрей!

И в этой статье я расскажу, как настроить сборку приложения для разных окружений.

Читать далее

Парящие Острова: настраиваем стилизованные шейдера с помощью HDRP в Unity

Reading time7 min
Views7K

Maciej Hernik обсудил с нами детали его стилизованной сцены “Парящие Острова”: шейдеры для травы, деревьев и воды, Volume Overrides, текстурирование асcетов и многое другое.

Читать далее

Математика провисающих проводов и цепей в играх

Reading time5 min
Views15K
Во многих современных играх присутствуют провода, кабели и цепи. В этой статье мы рассмотрим математические модели, от которых зависит их форма, также называемая catenary («цепная линия»).

Введение в цепные линии


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

Цепная линия — это фигура, к которой естественным образом сводится подвешенная за края верёвка или цепь. Неслучайно само название catenary происходит от латинского catenaria, что и означает «цепь».

В современных играх появляется всё больше заброшенных предприятий и разрушенных окружений. И во многих из них встречается довольно много свисающих проводов. Например, их можно увидеть в комнате GLaDOS из «Portal» или в «Half-Life: Alyx».


Так как цепные линии окружают нас повсюду, неудивительно, что мы с детства привыкли к их форме. А ещё это означает, что мы очень легко замечаем, когда что-то свисает неправильно. Подобно сложности движения кожи или физики ткани, неправильное свисание цепных линий само по себе создаёт эффект «зловещей долины».

Скрываем воду внутри лодки

Reading time6 min
Views8.3K
При разработке игр про лодки, да и любых других игр с обширными водными поверхностями, существует проблема сокрытия поверхности воды, когда на ней что-то плавает. Я расскажу о решении, используемом в моей игре Sail Forth на движке Unity, но эта методика применима для любого другого движка.


Та самая проблема. Тащите ведро!

Так как в большинстве игр вода — это просто большая плоскость, логично, что плавающие на ней объекты будут пересекаться с её поверхностью!

Как же нам устранить эту проблему? Мне известны две основные методики: одна основана на деформировании меша воды вокруг корпуса судна, вторая заключается в маскировании поверхности воды внутри судна. Я знаю, как использовать вторую методику, поэтому мы реализуем её.

Решение состоит из трёх компонентов:

  • Создание меша «маски» для каждого судна
  • Написание шейдера для меша «маски»
  • Изменение шейдера воды для использования маски
Читать дальше →

Как проходить собеседования на Unity разработчика

Reading time7 min
Views78K

Собеседование на юнити-разработчика состоит в основном из трёх частей. Процесс выглядит практически один в один как и на любую другую техническую специальность в IT. Сначала собеседование с HR или рекрутером, потом техническое интервью с Team Leader команды разработки. В конце, если предыдущие этапы успешно пройдены, вас ждет финальный босс - Project Manager(или Product Owner). Эта статья будет полезна для джунов и мидлов, а также людей которые недавно познакомились с Unity. Бородатые синьоры и лиды - буду рад увидеть от вас в комментариях ваш опыт.

Читать далее

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
Senior
Flutter
Flutter Bloc
MobX
Mobile
Development of mobile applications