Pull to refresh
0
0
Горбатков Василий Павлович @umcherrel

Mobile Developer

Send message

Wave Function Collapse для процедурной генерации в Unity

Reading time7 min
Views4.2K

Wave Function Collapse – это алгоритм, c помощью которого можно реализовать генерацию чего угодно, что можно было бы описать с помощью правил или конкретным примером. В этой статье мы рассмотрим, как использовать WFC для генерации карты в Unity.

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

Немного про особенности реализации Wave Function Collapse в нашей игре

Reading time5 min
Views3.5K

В нашей прошлой игре разработка уровня занимала около трех месяцев, сейчас мы делаем тактическую стратегию и в ней планируется более 100 уровней. Увидев дикий ужас в глазах левел-дизайнера, мы решили, что “Лучше день потерять, потом за пять минут долететь!” и принялись за работу над автоматической генерацией уровней.

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

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments10

Как опенсорсные инструменты замедляют разработку моделей для анализа медицинских снимков

Reading time7 min
Views5.1K

Существует множество опенсорсного ПО и инструментов для проектов компьютерного зрения и машинного обучения в сфере медицинских визуализаций.

Иногда может быть выгодно использовать опенсорсные инструменты при тестировании и обучении модели ML на массивах данных медицинских снимков. Вы можете экономить деньги, а многие инструменты, например, 3DSlicer и ITK-Snap, предназначены специально для аннотирования медицинских снимков и обучения моделей ML на массивах данных из сферы здравоохранения.

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

Как известно командам клиницистов и обработки данных, слои данных в медицинских снимках сложны и детализированы. Для выполнения работы вам нужны подходящие инструменты. Применение неверного инструмента, например, опенсорсного приложения для аннотирования, может негативно повлиять на разработку модели.

В этой статье мы расскажем об основных опенсорсных инструментах для аннотирования медицинских снимков, сценариях применения таких инструментов и о том, как они препятствуют развитию вашего проекта. Мы перечислим те возможности инструмента аннотирования, которые помогут вам преодолеть эти трудности, в том числе и функции, которые обеспечат нужные вам результаты.
Читать дальше →
Total votes 40: ↑7 and ↓33-26
Comments13

Как врач сделал себе ИИ помощника. Часть 1

Reading time3 min
Views12K

Всем привет, меня зовут Александр и я врач-гематолог. Для справки, это тот, кто занимается болезнями крови. Мой общий стаж перевалил за 16 лет, я кандидат медицинских наук и последние пару-тройку лет интересуюсь анализом данных, machine learning и ИИ в медицине. Под "интересуюсь" я подразумеваю исследования и публикации по этим темам, а также обучение и саморазвитие.

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

Общий анализ крови (ОАК) – самый частый и один из самых сложных анализов человека для интерпретации, что обусловлено большим числом входящих в него параметров. Как правило, именно этот анализ является скрининговым тестом как для гематологов амбулаторного приема, так и для врачей общей практики и других специальностей. Объемы выполняемых анализов исчисляются сотнями тысяч. Моя идея не нова - машинная помощь в правильной и быстрой интерпретации общего анализа крови, которая будет содействовать развитию качественной, доступной и своевременной диагностики онкогематологических заболеваний. Зачастую врач первичного звена (терапевт) не может дифференцировать изменения в ОАК, что приводит либо к гиподиагностике, либо к повышенной настороженности и излишне частому направлению на консультацию к врачу-гематологу. Ситуацию усугубляют огромные объемы анализов, выполняемые в рамках профилактических и лечебно-диагностических процессов как в государственном, так и в частном секторе здравоохранения. Расшифровка анализов онлайн - один из востребованных запросов в Интернете. Меня часто просят об этом в социальных сетях.

Читать далее
Total votes 78: ↑74 and ↓4+70
Comments67

Имитация трёхмерных зданий в 2D-игре

Level of difficultyMedium
Reading time7 min
Views15K

Создаём объём при помощи света и теней.

Игра двухмерная, разрабатывается на Game Maker Studio 2 и во время работы я столкнулся с множеством задач а-ля «должно быть красиво». Где-то пришлось придумать свой велосипед, где-то повезло наткнуться на описание решения похожих задач.

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

Внутри есть гифки и картинки!
Total votes 67: ↑67 and ↓0+67
Comments16

3D-объекты во Flutter. Расширяем Flame

Reading time16 min
Views5.2K

В конце прошлого года движок Flame для создания игровых приложений на Flutter опубликовал первую стабильную версию 1.0 и анонсировал большие изменения в системе миксинов, подходах к управлению компонентами и созданию сцены из иерархии объектов, каждый из которых может выступить в роли контейнера. Прежде всего Flame ориентирован на двумерную графику (спрайты, системы частиц, визуальные эффекты), но возможности Skia позволяют использовать трехмерные преобразования и обеспечивать работу с шейдерами, благодаря чему можно приблизиться к созданию трехмерных игр. В этой статье мы обсудим возможный путь создания трехмерных компонентов в Flame с произвольной визуализацией с использованием компилируемых шейдеров.

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

163 факта из статистики рынка мобильных игр 2021-2022 года

Reading time12 min
Views37K


Я тут нашла и перевела свежайшую (3 октября) статистику по мобильным играм. Под катом топы лучших мобильных игр / жанров / паблишеров, демография мобильных геймеров, средние KPI. Короче, много букв, так что вот 10 любопытных фактов:

  1. Больше всего скачиваний набрала игра Free Fire, больше всего денег игроки оставили в Roblox, а больше всего активных пользователей в месяц у PUBG Mobile.
  2. 55% мобильных геймеров — женщины.
  3. 85% мобильных геймеров не считают себя геймерами.
  4. Те, кто играет в гиперказуалки, загружают в 10 раз больше игр, чем игроки других жанров.
  5. 74% мобильных геймеров в США готовы смотреть рекламные видео, взамен на контент в игре.
  6. 82% мобильных геймеров говорят, что им больше нравятся бесплатные мобильные игры с рекламой, чем платные игры без рекламы.
  7. 95% трат игроков в мобильные игры — это внутриигровые покупки, и женщины чаще совершают внутригровые покупки, чем мужчины.
  8. Игроки гиперказуальных игр смотрят в два раза больше рекламы, чем игроки других жанров.
  9. США возглавляет все топы по максимальному eCPM для всех видов рекламы.
  10. Среднее удержание пользователей первого дня для топовых (25%) казуальных игр — 30%, а коэффициент установок 51%.


Я веду канал в Telegram GameDEVils и блог на Substack . Подписывайтесь, я делюсь там материалами про геймдизайн, разработку и историю игр.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments0

Почему ИИ в F.E.A.R. по-прежнему остается лучшим в шутерах от первого лица

Reading time4 min
Views54K

Тени на стене подсказывают мне, что они наступают. Их двое, оба со штурмовыми винтовками, качающимися у бедер. Если потороплюсь, то точно смогу снять их за раз. Я выглядываю из укрытия, когда они сворачивают за угол, и пускаю в ход свое оружие, прибивая первого врага к стене 10-миллиметровыми стальными снарядами. Однако при звуке выстрелов второй противник отступает, прячется в укрытие и вызывает подкрепление по рации.

Этот эпизод многое говорит о внимании к деталям в F.E.A.R. — игре 12-летней давности с искусственным интеллектом, которому могут позавидовать многие современные шутеры. Его армия солдат-клонов выглядит умнее любых врагов, с которыми я сталкивался в FPS впоследствии, и остается такой и по сей день.

Читать далее
Total votes 80: ↑74 and ↓6+68
Comments132

Flutter Flame: подходы к оптимизации

Reading time11 min
Views2.5K

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

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

Взлом грамматики английского. Часть 1

Reading time10 min
Views31K

Вопросы, на которые отвечает статья:

1. Как ощущать грамматику английского как родную?

2. Есть ли технологии встраивания такого навыка? 

3. Какова внутренняя механика грамматики?

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

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

1. Изучения классической грамматики с помощью «мнемотехник» и «лайфхаков».

2. Карго-культ. Попытка сделать как у детей, не понимая механизма. Т.е. накидываем побольше, авось сработает.

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

Читать далее
Total votes 24: ↑21 and ↓3+18
Comments72

11 вещей, о которых вы должны помнить перед стартом нового проекта на Flutter

Reading time7 min
Views9.5K


Привет! Меня зовут Дарья, я Flutter-разработчик уровня Junior и это моя первая публикация на Хабре.


Знаете, создавать новый проект всегда приятно — новая кодовая база, отсутствие legacy (пока что), null-safety, свежие версии ваших любимых пакетов и далее, далее, далее.


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


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

Читать дальше →
Total votes 10: ↑6 and ↓4+2
Comments4

Стандартных метрик уже недостаточно: как найти и удержать ядро своей mid-core игры

Reading time8 min
Views2.5K

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

Часто проблема возникает еще на этапе выбора метрик для анализа — традиционного набора из Retention, ARPU и конверсии в платящего может не хватить, чтобы сделать правильные выводы и построить планы для развития проекта. В этом тексте я хочу рассказать, как мы анализируем метрики для нашего mid-core шутера Left to Survive, а также поделиться собственными откровениями.

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments2

Сохраняем код чистым в приложении на Flutter

Reading time4 min
Views5.4K

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

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

Релокация. Нужно ли уезжать IT-специалистам из России. Плюсы, минусы, подводные камни

Reading time12 min
Views57K

Ситуация с IT-сервисами, платёжными системами и общим настроением в стране складывается не самым лучшим образом. Однако, нет однозначного решения для всех, нужно ли переезжать. Чтобы максимально широко понять настроения и риски в IT-отрасли,  мы в DigitalHR поговорили с несколькими IT-компаниями о том, как они чувствуют себя сейчас, какие планы, опасения и т.п. Собрали ответы на самые главные вопросы, которые сейчас могут быть у IT-специалистов в России.

Читать далее
Total votes 29: ↑22 and ↓7+15
Comments28

Разработка игры на Unity с нуля до релиза. Часть 4

Level of difficultyEasy
Reading time4 min
Views6.4K

Приветствую Хабр! 👋

«Разработка игры с нуля до релиза» - это серии статьей, где я покажу, как создать свою игру с самого нуля до публикации в Google Play и Itch.io на ОС GNU\Linux. Часть 4

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

Основы Unity + Mirror

Reading time16 min
Views47K

UPD. Актуализировал на момент 26.11.2022.

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

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

Торговый бот на Node.js и Tinkoff API (Часть 1)

Reading time4 min
Views9.2K

Все началось несколько лет назад со школьного проекта по Computer science. Моя идея была сделать компьютерную программу которая проанализирует историю рынка, определит комбинации из 4х свечей в кластеры по схожести, запомнит какая свеча шла после этой комбинации и в дальнейшем сможет найти кластер для реальной ситуации на рынке. На странице должна быть отображена ситуация на рынке, найденый кластер комбинаций и его статистика. Если в кластере большой процент комбинаций с последующей зеленой свечей - мы ставим на рост, и соответственно наоборот.

Изначально в качестве API для программы был выбран Forex Oanda. На тот момент это был единственный найденный нами брокер с Open API и кое-какой документацией. В планах сервер который работает с API и фронт для отображения работы
(на тот момент) индикатора, поэтому пишем на Node JS. Проект был доведен до логического завершения, он исправно находил похожие комбинации и собирал их в кластеры, был сделан интерфейс который изображал полу-статичную информацию. Однако протестировать все это мы так и не успели, забросив все после сдачи проекта.

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments18

Как создавать в играх бесконечные миры при помощи процедурной генерации

Reading time11 min
Views26K

Привет, Хабр! Обратите внимание, Распродажа «Чёрная Пятница» от издательства «Питер» скоро закончится.

Поговорим о том, как в известных играх, например, Minecraft и Terraria, из ничего генерируются бесконечные и разнообразные миры. Пост снабжен подробными примерами кода.  

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

Если вы – разработчик и любите уделять внимание деталям, то, вероятно, задумывались, а как генерируются такие бесконечные миры. Несмотря на всю их сложную структуру, вся такая генерация сводится к тщательно настроенной случайной составляющей.

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments4

Преобразуем графику Fortnite в PUBG новым более быстрым подходом

Reading time3 min
Views4.7K

Пару лет назад я показал, как мы можем использовать ИИ для переноса стилей, такой как CycleGAN, для преобразования графики одной игры, чтобы она выглядела похожей на другую, на примере Fortnite в PUBG. Этот проект до сих пор остается одним из самых просматриваемых, и спустя два года он все еще привлекает новых зрителей. Это означает, что это направление исследований в области ИИ вызывает большой интерес, но, к сожалению, мы пока не видим больших подвижек по превращению таких прототипов в реальность. Хотя и были представлены версии этого ИИ, работающие на более высоком разрешении, они нуждались в использованию нескольких графических процессоров для обучения, что является непрактичным для использования в реальном мире.

К счастью, по прошествии большого количества времени у нас наконец-то есть статья, демонстрирующая значительный прогресс в попытке уменьшить вычислительную мощность, необходимую для обучения этого ИИ. Статья от Калифорнийского университета в Беркли и Adobe называется «Contrastive Learning (контрастное обучение) для непарного преобразования изображений» (CUT).

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

Игры, которые играют в людей: что книга “Игра в цифры” рассказывает об игровой аналитике

Reading time9 min
Views8.9K
Из когда-то нишевого сегмента рынка игры сегодня превратились в высокодоходный транснациональный бизнес, опережающий по масштабам музыкальную индустрию и кинематограф. В игры уже вовлечено более 2,5 млрд человек (и это совсем не предел), а выручка ежегодно бьет новые рекорды. Причина этого — не только в доступности игр и в росте свободного времени у населения: под капотом современных игр находятся технологии вовлечения, эффективно использующие математику, поведенческую экономику, психологию и дизайн. А в основе этих технологий — системы игровой аналитики: именно они позволяют отследить поведение пользователей и определить наиболее “цепляющие” инструменты. И, в конечном счете, сделать так, чтобы люди проводили в играх как можно больше времени, получали максимум удовольствия — и приносили максимум денег разработчикам.

Аналитика, таким образом, — это кровеносная система современных игр, особенно в сегменте free-to-play (большинство бесплатных игр, в которых вам оставляют возможность заплатить за улучшения).

image

В конце прошлого года вышла книга Василия Сабирова “Игра в цифры” — первое российское издание, полностью посвященное игровой (и продуктовой) аналитике. Под катом — обзорный пересказ книги.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments19
1
23 ...

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity