Пишем летающего дрона на Unreal Engine

Привет!
В этой статье я объясню как сделать ИИ летающего боевого дрона на движке Unreal Engine с использованием алгоритма A*.

Разработка игр

Привет!
В этой статье я объясню как сделать ИИ летающего боевого дрона на движке Unreal Engine с использованием алгоритма A*.

Среди заядлых игроков все чаще встречается такое страшное явление как «игровая импотенция». Вероятно, вам знакомо это чувство — в библиотеке Steam 800 игр, а играть не во что... Кажется, будто все игры сделаны по одному шаблону.
Если вы все чаще задаетесь вопросом «Почему все новые игры похожи на предыдущие?», вы не одиноки. А если это ощущение вам незнакомо, наверняка вы слышали нечто подобное от других геймеров. Причин возникновения игровой импотенции много, и одной из них мы сегодня коснемся. Разберемся, почему игры стали однообразными и что же такое стильная игра. А если доживете до конца, то узнаете и том, как сделать стилевую игру, и, возможно, поможете тому самому другу, которому не во что играть при библиотеке Steam в 800 игр.
Это — первая часть цикла из трех статей о стилизации в играх. В ней я расскажу о том, что такое стилизация в общем, как она пришла в игровую индустрию и как она влияет на наше восприятие игр. Мы поговорим о том, что первым бросается в глаза при знакомстве с новой игрой — о визуале. А также о том, каковы физиологические причины нашего влечения к играм. Спойлер — стилизация играет в этом далеко не последнюю роль.
В следующих частях мы разберем, какие бывают виды стилизации и как они влияют на ваше восприятие игр. И, может быть, данный цикл немного облегчит путь будущего геймдизайнера по работе с визуалом. А если вы не планируете пока становиться геймдизайнером, то прояснит некоторые вопросы, которые могли возникнуть в процессе знакомства с играми или даже поможет справиться с «игровой импотенцией».

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

Из новостей: EA и Stability AI объявили о партнёрстве, Valve поломала рынок CS2, Escape from Duckov продалась тиражом более миллиона копий, Krafton внедряют ИИ во все поля.
Из интересностей: путь от Pathologic 2 к The Lift занял 10 лет, внутриигровые достижения могут сократить медианный плейтайм вашей игры, эйджизм в геймдеве.

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

Я ненавижу идею соло-разработки. Не просто не люблю презираю как явление, которое почему-то принято романтизировать. Не сами игры, ведь я, как и вы, искренне восхищаюсь такими кейсами, как Animal Well, Stardew Valley, Papers, Please и многие другие. Нам всем нужна путеводная звезда. Но я ненавижу то, как этот путь “одиночки-страдальца” нормализуют и даже стандартизируют, превращая исключение из правил в какой-то достижимый идеал.
И ведь что странно: сколько бы я ни читал историй этих самых “одиночек”, там всегда красной нитью сквозит тема благодарности друзьям, семье, первым тестерам, людям к которым они обращались за помощью. Но мы почему-то переворачивая страницу запоминаем лишь то, что кто-то один, оказывается, страдал.
Осознанно выбирать путь тотальной изоляции — самая неблагодарная, деструктивная и попросту неправильная вещь, которую можно сделать со своим творческим потенциалом. Вы спросите:
— «А какая тогда альтернатива?»

За последние 40 лет графика в играх стала гиперреалистичной, и студии разработки тратят на это огромные деньги. Сегодняшние AAA-проекты — это культ картинки. Они фотореалистичны: каждый луч света просчитан, каждая тень идеально выстроена. Но стоит немного поиграть — и можно крайне разочароваться.
Когда-то реальность в играх создавалась не количеством пикселей, а откликом. В Far Cry 2 (2008) пламя пожирало саванну, в Crysis (2007) дерево падало от взрыва, в S.T.A.L.K.E.R. (2007) пуля звенела о металл и оставляла след. Игрок чувствовал физику — как будто сам присутствовал внутри игрового мира. А теперь есть красивая графика, которая ощущается лишь как картонная декорация. Ты кидаешь гранату в Starfield (2023), но корабль остается целым. В Assassin’s Creed Mirage (2023) песок не проседает под ногами. В Cyberpunk 2077 (2020) не разбиваются витрины магазинов. Мир больше не живет. Он лишь создает видимость.
В этой статье попытаемся понять, как гонка за визуальными улучшениями привела к скучным и безжизненным играм.

Как-то раз мы делали кликер для запуска нашего межсетевого экрана нового поколения (PT NGFW) — простую игру, где игроки-хакеры атакуют разные поколения файрволов. Задумка была классная: на последнем уровне пользователей ждал наш главный защитник — PT NGFW, и все их мощные инструменты против него внезапно становились бесполезными. Так мы хотели показать, что PT NGFW — это реальный инструмент для отражения кибератак, а проходимость трафика 300 Гбит/с — это не просто цифра, а реальный технологический прорыв.
Но в процессе разработки игры профессионалы из команды Phygital.Team так увлеклись геймдизайном, визуалом и механиками, что не учли, что кибербез-компания привлечет особое внимание кибервзломщиков.
Под катом — вся эта эпичная история со взломами, патчами на коленке и неожиданными поворотами.
(поиграть тоже дадим)

Случалось ли вам ловить падение приложения из-за исключения OutOfMemoryException? Управление памятью — важная часть разработки игр, и оно способно сберечь немало нервов. В этом материале разберём, как устроено выделение памяти, как профилировать состояние памяти приложения и как его улучшить.
Привет, хабр!
Это моя первая статья, поэтому для начала представлюсь. Меня зовут Виктор, мне 40 лет, из которых почти 20 я на разных ролях участвую в разработке различного программного обеспечения для крупных корпораций (в основном финтех). Путь был долгий и тернистый, но сейчас я занимаю роль Системного архитектора и по совместительству Руководителя направления интеграции.
Я всегда любил игры, у меня даже был собственный канал с летсплеями и обзорами разных игр, который, к сожалению, не сыскал успеха. Несмотря на это, около двух лет назад я решил с ноги ворваться в мир геймдева. Ничто не предвещало беды, просто одним февральским вечером будто щелкнуло что-то в мозгу - ХОЧУ… ДЕЛАТЬ… ИГРЫ…
Я человек самодостаточный, так что если хочу, значит, делаю. И на самом деле это очень интересное ощущение - в 40 лет почувствовать себя беспробудным джуном в той области, в которой совершенно ничего не понимаешь, но тебе так интересно.

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

Всё началось с подготовки к финалу RuCode – масштабному соревнованию для всех увлечённых алгоритмическим программированием. Погружаясь в разбор заданий прошлых лет, мне кое-что совершенно случайно попало в руки, интересная задача: реализовать шахматы с "туманом войны" в консоли
Идея показалась мне настолько вдохновляющей, что я решил пойти дальше, а что если превратить эту консольную головоломку в настоящую игру с графикой и той самой атмосферой тумана войны, который так знаком игрокам в стратегиях
Идея зацепила сразу, представьте классические шахматы, но с элементом неожиданности. Вы не видите все фигуры противника, а только те клетки, куда могут ступить ваши фигуры. Каждый ход превращается в тактическую загадку, что скрывается в темноте? Где спрятался вражеский ферзь? и т.д.
Так обычная подготовка к соревнованиям превратилась в увлекательный эксперимент, результатом которого стала эта статья и реализация шахмат с туманом войны на Python

Из новостей: продажи No, I’m not a Human превысили 500к копий, BALL x PIT про шары продался тиражом 100к копий за сутки, умер дизайнер Томонобу Итагаки, Heroes of Might & Magic: Olden Era добавили в вишлист более миллиона человек.
Из интересностей: Furnish Master EA 100к продаж, про важность обсуждений, Александр Тужик — хочу и буду: пишу движок для игры.

Доброе утро, Хабр!
Разработка технического демо длиной в пять лет подошла к концу, а работа над полной версией The Goddess's Will обещает быть интенсивной и сложной.
Сегодня я принёс статью о базовых проблемах, с которыми мы столкнулись при производстве графики, разрабатывая современную игру в эстетике пререндера.
В прошлом тексте я общими мазками набросал наш путь, а теперь предлагаю погрузиться чуть глубже, посмотреть на общетехнические детали и вызовы разработки. Перед вами не гайд и не научная статья, текст носит чисто публицистический развлекательный характер. Опишу всё простым языком, так что даже читатель, не знакомый с разработкой игр, всё прекрасно поймёт. Также, бонусом, я добавил ответы на самые обсуждаемые комментарии под прошлым постом.
Добро пожаловать под кат. Там вас ждут кровь, пот, рендеры, а также тематические мемы и движущиеся картинки!

У серии Final Fantasy огромное количество поклонников, но и не меньшее число тех, кто её недолюбливает. Кому-то кажется скучной боевая система, кого-то отталкивает «анимешная» стилистика, а кто-то устал от типичных историй о спасении мира от очередного апокалипсиса. Но что, если я скажу, что среди старых частей есть одна, которая разительно отличается от остальных — настолько, что даже убеждённым скептикам серии она может прийтись по вкусу?
Только представьте: сюжет, построенный не на избранных героях и древнем зле, а на политических интригах и противостоянии держав; революционная для серии боевая система, удивительно похожая на ту, что позже использовали в Dragon Age — хотя Final Fantasy XII вышла на три года раньше; и уникальная ролевая система, полностью переосмысленная в последующем переиздании, из-за чего даже ветераны, вернувшись к игре спустя годы, фактически получали новый опыт. Звучит интригующе, не так ли? Это именно та часть, которая способна увлечь даже тех, кто раньше обходил серию стороной. И если вы когда-то не понимали, за что миллионы игроков по всему миру любят Final Fantasy — то, пожалуй, попробуйте начать именно с неё.
В этом обзоре я расскажу, как создавалась игра, какие идеи легли в основу её мира и сюжета, чем особенна система боя и развития персонажей, какие различия есть между версиями и переизданиями Final Fantasy XII — и главное, почему эта RPG остаётся увлекательной даже спустя годы!

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

Привет, Хабр! Мы разрабатываем собственный плеер для визуальных новелл. Чтобы протестировать его возможности в «боевых» условиях, мы решили создать небольшую игру с нелинейным повествованием и RPG-элементами.
В качестве сценарного движка мы используем Ink — язык от студии Inkle, ставший стандартом в индустрии нарративных игр. А в качестве ролевой системы мы выбрали простую и элегантную Lasers & Feelings Джона Харпера, адаптировав её под формат одиночной визуальной новеллы.
Весь код проекта доступен в открытом репозитории, в саму новеллу можно поиграть в нашем плеере. А в этой статье мы расскажем, как меняли правила под формат новеллы и с какими интересными нюансами столкнулись при реализации игровой логики на языке, изначально предназначенном для текста.

Roblox — популярная игра и платформа для создания игр, и она хорошо подходит для того, чтобы попробовать себя в роли программиста. Мой сын уже во всю с друганами делает какие‑то игры там, потом они в них играют сами. И на курсы он уже тоже ходил, где показывали основы скриптинга на Lua. Однако у него часто возникают вопросы и проблемы, когда он не знает, что делать, в основном с написанием кода. И приходится подключать папу‑программиста, то есть меня.
Сам я пишу код уже почти 20 лет, писал на разных языках (C++, C#, Java/Kotlin, Python) и даже в геймдеве на заре своей карьеры работал. Однако просто так сходу взять и разобраться в организации внутренностей игры в Roblox оказалось не так‑то просто. Уж слишком там все отличается от того, к чему привыкли энтерпрайзнутые‑Java‑синьоры типа меня.
Roblox использует собственную бесплатную IDE под названием Roblox Studio. И когда впервые ее открываешь, глаза разбегаются от всяких кнопочек, деревьев объектов и непонятных штуковин. Тут нет просто папочек с кодом и конфигами, как я привык, зато есть тыща разных видов объектов, организованных в сложную иерархию и присыпанных сверху необходимостью делать сетевую синхронизацию между клиентом и сервером.
При этом все гайды по Roblox в интернете написаны для начинающих, в основном для детей, которые вообще не умеют программировать. И касаются они только совсем простых вещей, типа как сделать кубик, или как зарегистрировать прыжок игрока на него. При этом гайды часто не объясняют базу, структуру игры, а лишь дают набор действий типа: «нажмите тут, скопируйте этот скрипт вот сюда».
Возможно, такой подход обоснован для полных новичков, которым надо как можно скорее получить наглядный результат, иначе они заскучают и бросят. Но он не подходит для матерых бородатых бать‑программистов типа меня, к которым их дети обращаются за помощью, если что‑то не работает. И которым проще сперва уяснить теоретическую базу и основные принципы устройства игры, а уже потом, зная ее, легко написать любой скрипт.
Поэтому я решил написать этот краткий гайд по Roblox для опытных разработчиков. В нем не будет создания кубика (ну на самом деле немного будет, куда без этого), вместо этого я расскажу, как работает серверная синхронизация между игроками, как сделать нетривиальную игровую логику и что это за куча объектов в дереве игры. Погнали!

Краткая справка об основных действующих лицах:
Susan Hart - режиссёр и актриса озвучения игр и мультипликации, номинант и победитель многочисленных профильных наград, включая несколько премий Emmy. Принимала участие в режиссуре озвучения большинства классических игр серии Resident Evil (со второй по четвёртую части, а также нулевой и Code Veronica), двух частей Dino Crysis (2000 / 2001), а также помеси шутера и beat 'em up-action'а Heavy Metal: Geomatrix (2001). По меньшей мере в двух играх озвучивала Cammy, персонажа серии Street Fighter, в частности в классическом проекте X-Men vs. Street Fighter (1996).

Иногда в С++ не хватает каких-то фич, которые есть в других языках. Мне, например, не хватает preperties из C#. В них можно описать функции set/get, при этом работать с ними через поле класса, как с переменной.
В С++ это приходится делать через функции, что может быть громоздкои и менее читаемо:
actor.SetTransform(left.GetTransform() * right.GetTransform() * up.GetTransform());
Но хочется более простой и понятный синтаксис:
actor.transform = left.transform * righ.transform * up.transform;
Под катом я расскажу как можно в С++ обернуть set/get в переменную с минимальным размером 1 байт