Обновить

Геймдев

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

ShittyMaze: жизнь и страдания vr инди‑разработчика

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

Расскажу, жив ли vr gamedev в россии в 2к26. Приятного чтения.

Эта статья является продолжением моего предыдущего материала, — советую ознакомиться, там я расписываю, как зарождалась идея и как пользоваться KNI чтобы билдить c#‑ игру под разные платформы.

Читать далее

Новости

Steam показал мою игру 480 тысяч раз. В ней было нечего делать — поэтому я переделал её под мультиплеер

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

У моей игры в Steam было 480 439 показов, 49 788 переходов на страницу и CTR 10,4%.

И восемь отзывов.

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

Он был прав.

Я выпустил Drift Desert Race как игру-мем: садишься в машину и восемь часов едешь через пустыню, чтобы в конце узнать смысл жизни. Идея объясняется одной фразой, хорошо выглядит в ролике и почти не отвечает на главный вопрос игры:

Читать далее

Оптимизация генерации ресурсов в Java, три Ryzen и 225 замеров

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

Почему ручное разбиение задач оказалось быстрее parallel().collect() в большинстве наших тестов.

Привет, Хабр!

Меня зовут Юрий, и уже десять лет я разрабатываю The Great Tribes — пошаговую 4X-стратегию, в которой игроку предстоит провести свою цивилизацию от первобытных племён до космической эпохи.

Игра создаётся на Java с использованием LWJGL и собственного игрового движка. Мы не используем Unity или Unreal Engine: за годы разработки у проекта сформировались собственная архитектура, система процедурной генерации мира и довольно специфические требования к обработке больших карт.

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

Мы решили ускорить генерацию природных ресурсов, написали три реализации одного алгоритма и протестировали их на трёх компьютерах с процессорами AMD Ryzen.

Результаты оказались любопытными: более компактный вариант с parallel().collect() в большинстве измерений уступил реализации с ручным разбиением массива на части.

Но обо всём по порядку.

Читать далее

Проблема ворот

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

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

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

В стратегиях у ботов обычно есть обычно очень простая задача пройти через какие-нибудь ворота-узкое место, обойти стену и оказаться во дворе, и пока у нас один солдат, который идёт по пустой карте, никакой особой проблемы не возникает. А стоит вам добавить на карту десять, пятьдесят, сто, двести солдат и одни ворота, через которые физически способны одновременно протиснуться всего несколько юнитов, как выясняется они этого не делают, хотя алгоритме поиска пути (вроде A*) прекрасно отработал. Отработал, то отработал, а солдатики на месте тупят, и выясняется что мы пытаемся заставить его решать задачу, на которую он не рассчитан.

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

Читать далее

Эксперименты с ролеплейным ИИ, ч.2. Как устроены мозги NPC в SkyrimNet

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

Ранее я написал обширную статью про попытки сделать разговоры с NPC SkyrimNet более живыми, но упустил главное… Не рассказал, как вообще устроен NPC изнутри. Что происходит, когда вы дописываете реплику от лица своего персонажа и нажимаете Enter?

Читать далее

Настоящие рок-звезды игровой индустрии. Как Сэм Хаузер и Rockstar меняют игры

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

Мне сложно в это поверить, но до релиза GTA VI осталось совсем немного, а по меркам разницы с прошлой частью вообще кажется, что игра выходит завтра. Как именно шестая часть повлияет на индустрию, мы поймем нескоро. Зато ничто не мешает вспомнить былое: оценить, насколько Сэм Хаузер был занозой для всей индустрии, причем тут актер Дэниэл Рэдклифф и каким не всегда однозначно хорошим вещам Rockstar научила игровой рынок.

Читать далее

777 вишлистов за неделю после создания страницы в Steam — без какого‑либо освещения в СМИ

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

Как Pocket Cat Desktop набрала 777 вишлистов в Steam за первую неделю без освещения в профильной прессе: реальные цифры и выводы из опыта продвижения небольшой инди-игры.

Читать далее

Разочарование в цивилизации: история о несбывшихся фантазиях

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

Я ребенок 90-х, и расцвет моей компьютерной жизни пришелся на GTA:Vice City, StarCraft, HOMM4 и Assassin's Creed. Своего компа у меня не было вплоть до середины десятых, поэтому познание видеоигр шло под эгидой интересов старшего брата по выходным у бабушки. 

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

И на днях я наконец-то скачал Civilization VI. Ожидания были огромными, но они жестко разбились о реальность. 

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

Читать далее

Secrets management в Unity: как не хранить ключи сборки и деплоя в Git

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

Разбираем, что считать секретом, а что конфигурацией, и как настроить Infisical для Unity‑проекта так, чтобы новый разработчик получал доступ к сборке за пару минут.

Читать далее

От школьного «Коммерсанта» до собственной экономической игры: проект, к которому я вернулся через семь лет

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


В 2019 году я решил написать экономическую игру. План казался скромным: взять идею любимого «Коммерсанта» времён MS‑DOS, добавить несколько банков, новости и чуть более осмысленное поведение цен.

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

Проект отправился в папку со старыми поделками.

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

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

Читать далее

Боты, которые сами встают в очередь: как я добавил компаньонов в AzerothCore и что сломалось по дороге

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

С 2022 года я в одиночку поддерживаю сервер World of Warcraft 3.3.5a на открытом ядре AzerothCore. Расскажу, как я закрывал главную проблему небольшого сервера ботами-компаньонами и на какие грабли при этом наступил. Если вы работаете с AzerothCore или TrinityCore, часть историй может сэкономить вам пару вечеров.

Задача: пустые очереди

Поиск подземелий (LFG) в WotLK рассчитан на тысячи игроков онлайн. На небольшом сервере очередь на героик может висеть часами: нет танка, нет хила, а то и вообще никого. Игрок заходит вечером, ждёт и уходит.

Решение напрашивалось само: если людей не хватает, группу должны добирать боты. Причём такие, которые умеют играть свою роль, а не стоят столбом у входа.

Основа: mod-playerbots

Писать всё с нуля я не стал. Для AzerothCore есть модуль mod-playerbots. Он заводит ботов на отдельных аккаунтах, сам их прокачивает и экипирует. Боты умеют вести себя в подземельях, рейдах и на полях боя.

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

Как настраивается пул ботов

Модуль держит пул «случайных ботов». В конфиге задаются минимальная и максимальная численность пула и распределение по уровневым диапазонам: сколько ботов держать на 15–19 уровнях, сколько на 20–29 и так далее до 80-го.

Первая неочевидная вещь: сумма квот по диапазонам должна совпадать с максимальной численностью пула. Если изменить количество ботов и не пересчитать диапазоны, распределение по уровням поедет. Я поймал это, когда сокращал пул с 1550 ботов до 50.

Читать далее

Решаем проблему качества в Factorio при помощи матриц

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

Я играю в Factorio как любой нормальный человек: для планирования фабрики пишу код матричных вычислений.

Но до этого мы ещё доберёмся. Если же вам не терпится, можете просмотреть мой новый онлайн-калькулятор.

Введение в Factorio и качество

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

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

Выпущенное в 2024 году расширение Space Age добавило новые игровые механики, в том числе и качество (Quality): у каждого изделия и рецепта теперь есть пять уровней качества: ⚀ обычное, ⚁ необычное, ⚂ редкое, ⚃ эпическое и ⚄ легендарное. Каждый уровень (в зависимости от конкретного изделия) повышает характеристики, например, ускоряя производственные машины или повышая производительность модулей продуктивности. Высококачественные изделия можно изготавливать непосредственно из ингредиентов того же качества, однако единственный способ повышения качества — это применение новых модулей качества.

Читать далее

God of Pixels: шесть лет, два языка и один генератор планет

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

Личный проект длиной в шесть лет: от школьных скриптов на Python до OpenGL‑рендера с облачностью, климатом и картами звёздных систем. Когда переписывал рендеринг вручную — уходили недели. Когда подключил LLM — два вечера. Рассказываю, как это было, и что при этом чувствуешь.

Читать далее

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

Недельный геймдев: #295 — 4 октября, 2026

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

Из новостей: крошечный кот на вашем рабочем столе 🙀, Valve обновит раздел Скидки и мероприятия, XBOX не продаётся, вышел ремастер Ведьмака 3, AppLovin подала в суд на Unity.

Из интересностей: как рисовалась обложка Pocket Cat Desktop, нейросетевой геймдизайн, как разрабатывать игру в одиночку 9 лет и не сойти с ума, влияние ЭЛТ на пиксель‑арт.

Читать далее

Астра пилит космос

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

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

Недавно друг скинул ссылку на сайт, где нарисована 3д модель Земли и спутники вокруг нее. Фильтры там, орбиты всякие. Данные из открытых источников в интернетах. Сказал что завайбкодил за пару-тройку недель. А еще через пару дней попросил потестить игру. Сделал раздел с орбитальными миссиями, где нужно управлять спутником и его орбитой, на базе некоторой физической модели с формулами. Геймплей, ачивки (уложится в минимальный импульс), звездочки. И тут я вспомнил, что у него была мечта кодить игры.

И тут я подумал - а ведь у меня тоже были какие-то подобные мечты. Когда я играл и восхищался первой Мафией, думал "вот бы закодить симуляцию города, чтобы каждый житель жил свою жизнь, отводил детей в школу, ходил на работу, ужинал, ездил на машине, ходил к доктору". А когда играл в старые фантастические космические стратегии c исследованиями и производством, типа Master of Orion или X-COM UFO Defense, восхищался проработанностью для тех лет, и мечтал "вот бы переписать их с новой графикой".

Но все это заканчивалось на осознании того, какой объем усилий нужно вложить дизайн, а затем и программирование, по вечерам, после основной работы (где я по сути делал все тоже самое только для бизнес-приложений).

И вот прошло 15 или даже может уже 20 лет перекладывания мыслей из головы в код с клавиатурой, кажется даже незаметно подкрался кризис среднего возраста.

И что теперь...? А теперь я Тони Старк, а кодекс мой Джарвис.

Читать далее

World of Tanks Generals — никому не нужное дитя Wargaming. Полный обзор (+ видеоверсия)

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

Уверен, что большинству игроков World of Tanks (“Мир танков” для меня лично дико звучит) само словосочетание WoT Generals ничего не скажет и никаких ассоциаций не вызовет. При этом, эта игра носит гордое название от своего родителя — World of Tanks и сделано в этой вселенной, что само по себе уже о многом говорит. А на своём пике привлекало немалое количество игроков.

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

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

Оправданно ли такое отношение к игре? Заслуженное ли забвение настигло эту игру?

В этой статье я хочу закрыть этот пробел и рассказать всё, что я смог раскопать об этой игре (а раскопал я очень многое), а также прояснить вопрос — неужели этот проект действительно был настолько плох и оказался вообще никому не нужен?

п.с. Кому удобней не читать, а смотреть — вот видеоверсия статьи на Ютубе, РуТубе и VKвидео.

Читать далее

Найм уровня undefined

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

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

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

Расскажу, как я получил свою первую работу программиста 25 лет назад. Потому что мне кажется, именно в этой истории ответ на вопрос, почему сейчас такой трэш на рынке труда в IT. Компания “HBM”, известная тогда игровая контора набирала людей для нового проекта под “Буку”, в качестве тестового задания надо было за месяц сделать простую РТС на чем угодно, но с работой по сети. Я тогда студент второго курса, без портфолио, без опыта, без вот этого всего. Взял задание и вечерами на кафедре, потому что своего компа еще не было, а папин был за 200 км и особо не наездишься, наклепал стратежку с видом сверху про пакманов и призраков, которые собирают точки и стреляют друг в друга. Я не знаю как она работала, потому что там было столько косяков, что работать он в принципе не могла, а если слишком быстро перемещать курсор, то крашилась, и поэтому некоторые пакманы начинали стрелять в курсор и стопать его, если скорость была выше положеной.

Читать далее

Я хотел одного гуля, а ИИ‑агенты собрали конвейер 3D‑персонажей для Unreal Engine 5

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

Я делаю Dungeon Cult — игру про строительство и управление подземельем. Механически она растёт из Dungeon Keeper, а визуально уходит в Лавкрафта: культисты, глубоководные, щупальца, живая архитектура и всё такое. Начинался проект как игра на веб‑странице, а затем переехал в Unreal Engine 5. Расскажу, как попытка сделать одного рабочего гуля превратилась в конвейер 3D‑персонажей с ИИ‑агентами.

Читать далее

Пишем свой аналог Substance Painter внутри Godot 4: процедурные шейдеры, кисти Фотошоп и BVH‑рейкастинг на лету

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

Думаю, многие инди‑разработчики сталкивались с ситуацией: делая небольшую игру в Godot, вам хотелось просто взять кисточку и нарисовать грязь, мох или потёртости прямо поверх 3D‑модели в самом редакторе движка. Нужно добавить немного грязи по краям — и начинается: уходим в Blender / 3D Coat / тяжёлый Substance Painter, текстурируем, печём маски, экспортируем, возвращаем в движок, смотрим во вьюпорте, находим косяк, повторяем. Для продакшен‑ассета это нормальный пайплайн, для прототипа или маленькой инди‑игры — непомерно дорого по времени.

К тому же, мне посчастливилось (или не очень) быть обладателем довольно‑таки старенького ПК прямиком из 2008 года, а это, на минутку, Core 2 Duo E8400, 6 GB RAM DDR2 (расширенные из 2 GB, потому что иначе выжить невозможно, хах), ATI Radeon HD Series 4600. Использование таких программ, как Substance, для меня невозможно в принципе (если только не ковырять какие‑то совсем древние версия, в работоспособности которых с данной конфигурацией я тоже не уверен), Blender выше версии 2.79 открывается только с программной эмуляцией Mesa3D, что делает его непригодным для комфортного использования.

В итоге мой арсенал — Cinema 4D R21, 3DS Max для особых случаев, Blender с костылями — только на крайний случай в качестве комбайна.

Также проблема в том, что версии Godot выше 4.4.1 я не могу запускать физически — новые сборки требуют поддержки от процессора инструкций AVX (и, вероятно, SSE4.2), коих у меня нету, а существующие решения для Godot часто либо предназначены для новых версий Godot (4.5/4.6+), либо слишком громоздки, либо вовсе сломаны (как VPainter, оставшийся в эпохе Godot 3).

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

Cоздаю игру на Unity

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

Я решил 1.5 года делать игру и хочу ей поделиться.

Основной сюжет моей игры, ее механика и над чем работаю сейчас.

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