Обновить

Геймдев

Сначала показывать
Порог рейтинга
Уровень сложности

Стоит ли покупать Marathon, и во что поиграть вместо

Время на прочтение5 мин
Охват и читатели3.4K

Bungie не раз меняла представление о шутерах: в оригинальной Marathon она раскрыла потенциал управления мышью, в Halo задала стандарт удобной стрельбы на геймпаде, а в Destiny довела ганплей до эталона. Теперь студия снова экспериментирует — делает ставку на яркую визуальную подачу и сочетание геройского шутера с механиками эвакуации.

Давайте посмотрим, удалось ли Bungie сделать эффектный сервисный шутер, в котором за яркой подачей стоит что‑то большее.

Читать далее

Новости

Почему у нас нет кешей L5?

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели16K

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

Первое, что нужно понять: процессор не является абстрактным вычислителем, а вполне себе реальный кусок кремния размером примерно с ноготь большого пальца, на котором размещены миллиарды транзисторов и когда мы говорим «данные передаются из памяти в регистр», то мы буквально имеем в виду, что электрический сигнал проходит по металлическому проводнику длиной в несколько миллиметров или сантиметров. И это тоже расстояние, пусть и ничтожное по человеческим меркам, но при тактовой частоте 3–4 ГГц оно уже имеет значение, просто потому что за один такт сигнал в идеальных условиях будет проходить всего 10 сантиметров, а в металлическом проводнике на кристалле и того меньше.

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

Читать далее

Написал шахматный движок для 6×6 Crazyhouse — стал #1 на chess.com, а потом меня забанили

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Привет, Хабр. Меня зовут Владимир, я бэкенд-разработчик. Это моя первая статья здесь — о том, как пет-проект для нишевого варианта шахмат прошёл путь от «а что, если...» до первого места в рейтинге на chess.com. Без нейронок. На чистом alpha-beta поиске, написанном на Rust.

Статья будет полезна тем, кто интересуется шахматным программированием, оптимизацией CPU-bound задач или связкой Python + Rust через PyO3.

Читать далее

Создание процедурной карты шестиугольников при помощи коллапса волновой функции

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели15K

Я был одержим процедурными картами с ещё детства, когда кидал кубики на таблицы случайных подземелий из AD&D Dungeon Master's Guide. В этом есть что-то волшебное — ты не проектируешь подземелье, а исследуешь его, помещение за помещением, а кубики решают, попадёшь ли ты в сокровищницу или в тупик с кучей крыс.

Спустя годы я решил создать собственный генератор карт. Он создаёт маленькие средневековые островные миры с дорогами, реками, побережьями, горами, лесами и деревьями. И всё это полностью процедурным образом. Генератор написан на Three.js WebGPU с TSL-шейдерами, примерно 4100 шестиугольников в 19 сетках генерируются за ~20 секунд.

Читать далее

Что такое OpenUSD, или Как подружить Blender и Git

Время на прочтение3 мин
Охват и читатели5.1K

Недавно автор решил попробовать что-то помоделить в Blender. На данный момент он ещё только начинает осваиваться в 3D, но имеет небольшой опыт в разработке ПО, преимущественно с использованием Git, потому хотел бы и тут избежать версионирования проектов в духе "projectN_final5_20260305_fix3.blend", который подразумевается при "инкрементальном" сохранении.

На первый взгляд ничего сложного тут быть не должно: в Blender работа ведётся с набором точек-координат-чисел и их связей, настроек модификаторов, ссылок на текстуры и референсы и т.п.; потому всё это должно иметь некоторую стандартизированную структуру, возможно упакованную в ZIP-архив. Файл проекта .blend же является таким ZIP-архивом, ведь так? Распакуем его и просто занесём в Git? Неправильно!

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

Читать далее

Как начать инвестировать в игры: основы для начинающих

Время на прочтение9 мин
Охват и читатели7.9K

Вопреки всем ограничениям, макроэкономика российского геймедва потихоньку складывается – мы находимся на этапе, когда есть люди, идеи и спрос. Сейчас стоимость разработки в России примерно в пять раз дешевле, чем в Америке. Индустрия становится «новой нефтью» – самое время начать инвестировать и двигать рынок вперед. 

Сегодня я попробую приоткрыть завесу тайны, которая покрывает инвестиции в видеоигры, исходя из своего личного опыта.

ВНИМАНИЕ – в статье самые азы!

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

Читать далее

Blueprint VM изнутри: ~80 инструкций, которые двигают вашу игру

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели5.3K

Каждый раз, когда вы соединяете ноды в Blueprint и нажимаете Play, Unreal Engine запускает маленький процессор. У него свои инструкции, свой стек, своя защита от бесконечных циклов. Он написан в ~4000 строках C++ и живёт в одном файле. Через него проходит каждый Event Tick, каждый Event BeginPlay, каждый вызов Blueprint-функции.

Этот процессор - Blueprint VM (Virtual Machine). И сегодня мы разберём его по винтикам.

Читать далее

Unreal Engine 5.4 + C++ + MacOS Tahoe + Android build = Build Successful

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7.7K

Небольшая инструкция для всех, кто работает в Unreal Engine и пишет на C++ или иных языках + компилирует файлы для Андроид.

Читать далее

DEVLOG 6: Диалоговая система встречает счётчик стиля из Devil May Cry

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.4K

Всем привет.
Сегодня будем обсуждать механику счётчика стиля из Devil May Cry, но в диалоговой системе!

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

Читать далее

Как в Unreal Engine генерируется Hierarchical Z Buffer

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели7.3K

В этой статье разберём, как Unreal Engine строит Hierarchical Z Buffer (HZB).

Покажем, как вычисляются размеры mip-уровней, зачем нужно специальное округление float, как используются функции Gather, батчинг нескольких mip-уровней за один Dispatch, groupshared память, wave-операции и Morton Z Curve.

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

Читать далее

Недельный геймдев: #268 — 8 марта, 2026

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.7K

Из новостей: Highguard закроют 12 марта, Sony больше не собирается выпускать свои одиночные игры на ПК, Nintendo подала в суд на правительство США, продажи Resident Evil Requiem достигли 5 миллионов копий.

Из интересностей: создатели Mewgenics рассказали про издателей, мы сделали зло слишком привлекательным, жёлтая краска отнимает у игроки чувство исследования.

Читать далее

Как портировать XBOX 360 игру на ПК с помощью RexGlue (2 часть)

Уровень сложностиСредний
Время на прочтение1 мин
Охват и читатели6.1K

После того, как вы настроили rexglue (https://habr.com/ru/articles/1002640/), можно переходить к следующему этапу.

Скачиваем iruka-demo, демо-версию с дельфином https://github.com/rexglue/demo-iruka

Читать далее

Нескучное программирование. Обобщения (ч.1)

Время на прочтение22 мин
Охват и читатели8.8K

Представьте на минуту, что C++ — это не набор странных ключевых слов и ошибок линковки, а всего лишь ещё один способ поговорить о мире вокруг нас: о людях, числах, цветах, событиях и котах. Мы привыкли думать о программировании как о чём‑то сугубо техническом, где важно запомнить синтаксис, расставить точки с запятой и “угадать”, чего сейчас хочет компилятор. 

Но если задать себе вопрос «а чем вообще оперирует программа?», внезапно выясняется, что за всеми этими int, struct и template прячутся довольно простые и понятные идеи: вещи, их свойства, группы похожих вещей и правила, по которым одни вещи превращаются в другие.

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

Когда философы и логики говорят об абстрактных сущностях, они имеют в виду индивидуальные вещи, которые не существуют в пространстве и времени так, как существуют стол, человек или компьютер, а как нечто неизменное: например, число 13 или сам по себе синий цвет не родились в какой‑то момент и не "умирают" через какое‑то время, это не объекты физического мира, а идеи, с которыми мы работаем в голове и в математике. 

Читать далее

Ближайшие события

Biohazard! Инфекции из игр в реальной жизни

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели7.1K

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

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

Читать далее

3d в MonoGame, python в c# или всё таки KNI в браузере? трёхслойная постирония о том, как я игру делал

Уровень сложностиСложный
Время на прочтение22 мин
Охват и читатели7.4K

Всем привет. В ходе этого материала вы узнаете:

1. Как сделать простой рендер на c# в MonoGame

2. Что использовать, чтобы вызвать python из c#

3. Почему пункт 2 - это плохая идея

4. Как MonoGame игру сбилдить в web/html с помощью его форка KNI

Пристёгивайтесь, будет весело!

ПРИСТЕГНУТЬСЯ!

И хейтеры могут плакать, или в чём величие Хидеки Камии. Часть 1

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели9.2K

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

Сегодня мы продолжим погружаться в безумный, но самобытный японский геймдев. А конкретно познакомимся с отцом Resident Evil 2, DMC, Okami, Bayonetta и, возможно, одним из самых токсичных геймдизайнеров ever — друзья, встречайте, Хидеки Камия. 

Читать далее

Набрать темп на опенсорсе >> Открытые симрейсинг-проекты: история, ключевые особенности и возможности для развития

Время на прочтение11 мин
Охват и читатели8K

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

Читать далее

У файтингов проблема с продукт-дизайном (перевод)

Уровень сложностиПростой
Время на прочтение31 мин
Охват и читатели6.5K

Если вы даже не можете завести людей в двери своего ресторана, качество еды в нем уже не имеет никакого значения.

Читать далее 👀

Геймеры, нам надо поговорить. Почему вы до сих пор не бросили использовать физические носители?

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.5K

Этот текст вызовет много негатива, но нам и правда надо признаться самим себе. Цифровые сервисы победили давно и с большим отрывом. Особенно на рынке видеоигр.

С этим можно долго спорить, ругаться и говорить, что это не так, но вот вам факт: физические копии — это рудимент и атавизм, от которого пора отказаться, и в этом материале я постараюсь объективно объяснить почему.

Читать далее

Игроку не надо входить в роль

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели8.9K

В геймдизайне продолжает жить удобная формула: «чтобы игроку было интересно, он должен войти в роль персонажа». Эта статья отстаивает альтернативную позицию: идентификация — важный, но не обязательный механизм вовлечения; удовольствие в играх часто строится на управляемой недосказанности — неполной ясности и смысловых пробелах, которые игрок заполняет интерпретацией. Недосказанность запускает любопытство, производство смысла, эмоциональную связь и ощущение «живого мира» — без необходимости полного совпадения игрока с персонажем. Текст синтезирует подходы game studies (герменевтика, пределы «текстового анализа»), психологию любопытства и исследования неопределённости, а также геймдизайнерские теории о роли неопределённости как топлива игрового опыта.

Небольшая ремарка про процесс: статья получилась длинной — пришлось заново прокрутить в голове несколько прохождений (и пару раз открыть заметки по game studies), чтобы не скатиться в «мнение из воздуха». Формулировки местами специально оставлены живыми: так проще говорить об опыте, который сам по себе не любит стерильности.

Читать далее
1
23 ...