Обновить

Геймдев

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

Счетчик Армагеддона и экоцид: как математика фентези‑мода Orbis для Civilization 4 создает уникальную военную драму

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

В предыдущем материале про Орбис я обещал разобрать игровые механики, которые делают эту игру неповторимой в своем разнообразии. Уникальными расами, юнитами и скиллами тоже можно удивить — с точки зрения атмосферы и креативности тут все в порядке. Но принципиально игровая техника «тактического звена» похожа на другие игры. Тут я хотел сделать акцент на глобальные процессы, которые влияют на сюжет и делают его динамичным, а порой и непредсказуемым. Я не встречал стратегий AAA-класса с похожим многовариантным сюжетом. Обычно в играх сюжетная линия идет по плану, максимум слегка разветвляется, а динамика есть следствие относительно линейной ветки развития технологий.

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

В модификации Orbis (на базе Civilization IV: Beyond the Sword) разработчик Ahwaric и команда Fall from Heaven II превратили саму карту и физику мира в нестабильную, разрушаемую систему. Здесь планета Эребус (Erebus) может заболеть, покрыться адом или вымерзнуть до экватора — и за этой экологической катастрофой стоит прозрачная математическая модель. 

Разбираем, как три системных механики Orbis — Счетчик Армагеддона, климатическое оружие и магическая логистика — создают уникальную военную драму. 

Читать далее

Новости

Превращаем 2D‑ассеты в 3D‑модели, часть 2

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

В прошлый раз не хватило токенов на модельки от Krea 2. Давайте исправим несправедливость и посмотрим как они будут выглядеть в трехмерном состоянии. Снова используем Meshy и Neural 4D.

Читать далее

Лучшие игры про зомби: от психологических драм до безумных кооперативов

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

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

Читать далее

Симулятор жизни на Python + TypeScript + HTML5 Canvas. Введение. Проектирование среды и базовой механики агентов

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

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

Помимо книг о психологии, я попутно изучаю линейную алгебру и искусственный интеллект. И чтобы не учиться «в стол», я начал пет‑проект — мультиагентную песочницу эволюции. Я создаю цифровой мир на TypeScript и Python, где маленькие агенты будут управляться простейшими нейросетями и выживать по законам жесткого отбора.

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

Читать далее

15 лет разработки «Мира кораблей»: принципы и правила

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

В этом году мы отмечаем 11-летие «Мира кораблей», но это с момента релиза игры. Первый коммит в репозиторий был сделан ещё 21 апреля 2011 года — 15 лет назад. Всё это время кодовая база игры росла, менялась и усложнялась.

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

Читать далее

Построили империю на игре, которую все ненавидели, но покупали — История Rockstar Games и GTA

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

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

Читать далее

Грязные игры

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

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

Попросили меня по старой дружбе, где‑то с полгода назад, помочь с разработкой и выводом игры в Steam. Ребята до этого занимались нефтью, и накопив деньжат, решили, что называется оставить след в индустрии. Если честно, я несколько отвык от такого «детского» кода и простых решений, что меня несколько удивило, хотя и вернуло на грешную землю из объятий ентрепрайза. Но я сразу оговорюсь, что простая архитектура это не оправдание плохого кода, а способ выбрать, где именно вы позволяете себе быть сложным. Бюджет сложности конечен... прежде всего размером вашей натуральной оперативкой, и тратить его надо туда, где игрок это увидит.

Читать далее

AI‑GameDev. Учим ИИ азам левел‑дизайна

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

Все уже наверняка видели посты на «Бэкдорах», «Эксплойтах» и прочих кибертопорах о том, как кто-то, особенно с выходом новой модели, естественно, в один промпт сгенерировал копию Call of Duty, Starfield или любой другой игры. По видео выглядит сыровато, но играбельно, однако ключевая проблема здесь в том, что это демонстрационный вариант в формате браузерной игры. То есть совсем не те проекты, где мы с вами увлеченно сидим часами (любители браузерных игр и мобилок простите).

Как любой геймер, я всегда мечтал сделать свою игру. Не то что бы мне недоставало проектов, которые регулярно презентуют на Gamescom, а потом убирают на полку. Но хочется чего-то своего, людского, с российским колоритом. А наш АА\ААА-геймдев только начал подавать признаки жизни.

Я умею в C#, более-менее понимаю, как устроен Unity, могу поковыряться в Blender и что-то подрисовать на развертке в фотошопе. Но просто не хочу и все. С бесконечными задачами по работе, хобби и бытовым СДВГ сесть за какой-то долгострой нет ни времени, ни возможности. А потому меня посетила мысль отработать маркетинг желтушных IT-каналов на полную и собрать игру исключительно при помощи ИИ. Без единой собственной строчки кода, без единой собранной вручную модели и отрисованной текстуры.

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

Читать далее

Воксели в браузере и обратно: пайплайн.vox‑файлов в Unity WebGL

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

Из реального кейса — в гайды. Это туториал по написанию импортера.vox‑файлов построенный, на базе собственного опыта. Разберем на пальцах как сделать свой собственный сервис и превратить файл в набор необходимых нам данных.

Читать далее

История приставки 3DO Interactive Multiplayer: большие планы и короткая жизнь

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

В коллекции Яндекс Музея очень много игровых приставок, и около 20 из них выставлены в питерском филиале. Поэтому, когда мы водим экскурсии по истории игровой индустрии, о каких‑то экспонатах приходится упоминать мельком, а о каких‑то совсем не рассказывать.

Есть общепринятые столпы индустрии, без которых полноценный рассказ просто не сложится: Atari 2600, Famicom, NES, Sega Mega Drive, PlayStation и так далее. А есть консоли, о которых рассказать очень хочется, но не всегда получается в силу ограниченного времени экскурсии.

Иногда акцентировать внимание на одних экспонатах и обходить другие стороной приходится в зависимости от состава группы: например, семье с тремя маленькими детьми вряд ли будет интересен рассказ про PC Engine, а вот геймерам за 40 наверняка понравится более подробный рассказ про Dendy.

И когда обделяем вниманием приставку с длинным названием Panasonic FZ-10 R·E·A·L 3DO Interactive Multiplayer, становится как‑то особенно обидно. Этому устройству категорически не везло при жизни, и очень хочется воздать ему должное хотя бы сейчас — спустя 30 лет после того, как последняя 3DO сошла с конвейера.

Читать далее

Марио про джуна: платформер на 40 КБ без файлов графики и бот, который проверяет каждый уровень перед выкладкой

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

Всем привет! Я фронтендер и по вечерам делаю пет-проект Workaem, агрегатор IT-вакансий. Как-то захотелось сделать рядом с ним что-нибудь несерьезное, и за выходные получилась аркада в духе Марио, только про карьеру в IT. Назвал я ее «Путь джуна». Вместо грибов тут офферы, вместо черепах легаси, а в замках вместо дракона сидят собеседования, от тестового задания до финального.

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

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

Читать далее

История «многоигровок» на приставках

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

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

Однако, в некоторых странах в разные периоды в силу отсутствия инфраструктуры для распространения официальных изданий и расцвета пиратства приобрёл популярность иной подход: сборник. Для отечественных игроков, познакомившимися с играми в постсоветское время, привычным форматом стали сборники из десятка игр на кассетах и дискетах для ZX Spectrum, картриджи-многоигровки для Денди в стиле «999999-в-1», а также компакт-диски типа «100 лучших игр» и всевозможных программ для ПК.

Если с кассетами, дискетами и CD всё достаточно очевидно — они изначально приспособлены к хранению произвольного набора файлов, с картриджами на основе микросхем ПЗУ дела обстоят интереснее. Сегодня выясним, как появились сборники игр, они же «многоигровки» или «мультикарты», для приставок типа Денди, Сеги и Super Nintendo, и как они были устроены изнутри.

Читать далее

Я делаю игру с помощью ИИ. Но не прошу ИИ сделать мне игру

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

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

С другой стороны, интернет постепенно заполняется проектами, которые выглядят примерно так: «Я написал два промпта — и нейросеть сделала мне игру». После этого появляется вполне предсказуемая реакция: кому вообще нужна игра, которую никто толком не придумал?

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

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

Читать далее

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

Cимулируем жизнь 30 млн микробов в браузере

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

WebGPU даёт прямой доступ к современным возможностям видеокарты: не только к рендерингу, но и к вычислениям общего назначения через compute shaders.

Но насколько далеко это можно довести в обычном браузере? Что произойдёт, если вычисления — это полноценная симуляция с десятками миллионов объектов? Разберемся в этой статье.

Читать далее

Что можно сделать с массивом массивов

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

На одном из проектов (4Х историческая стратегия) появилась задача убрать часть логики в потоки, отдав им снапшот игрового состояния, чтобы пока основной поток считает свой тик, остальные (AI, поиск пути, UI и др) могли крутить свою логику, вроде "кто стоит в этой локации" и делать это без блокировок или риска увидеть половину чужой записи. Чтобы реализовать такую систему, надо придумать как получить обратный индекс полка по локации, причем сделать поиск дешевым для потоков, т.е. у потока должен быть свой снапшот состояния некоторой части игрового мира на момент старта апдейта (кадра, тика логики, дня, месяца и т.д)

Общепринятая практика - это сделать данные иммутабельными на время кадра, и построить нужный индекс один раз на старте, а дальше дать читателям возможность работать с ним. И вообщем от ребят, которые делали эту задачу на ревью прилетел вот такой код (выделю тут только основную часть):

std::vector<std::vector<unsigned int>> regiments(location_count);

Такая структура называется jagged array, массив массивов (зачем она и как с ней работать я показывал в книге Game++), или, если вам ближе академическая терминология, CSR (compressed sparse row) немного другая форма записи таких массивов, либо разреженные матрицы. И такие структуры довольно частое явление в играх, если у вас много локаций и вам надо узнать какой лут разложен в каждой локации, какие армии принадлежат каждой области, или какие монстры живут в локации, какие локации входят в область, какие области в регион, или почекать соседей локации на карте, adjacency region, на чем строится весь поиск путей и вся заливка областей в глобальных стратегих;

Читать далее

Вышла Крипто Шифр — моя игра головоломка

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

Однажды я задумался о том, как бы мне занять себя в свободное время, пока я нахожусь не дома. Мне хотелось что-то сложное и притом близкое к компьютеру, чтобы можно было неплохо прокачать себя в анализе. Увлекаясь криптографией, я вдруг понял, что я хочу и сделал программу на C, чтобы попробовать расшифровать первые шифры, о чем я написал в последствии в моей предыдущей статье. Книги я решил скачивать с Project Gutenberg в текстовом формате.

Далее я опишу интерфейс программы.

Экран меню я не стал показывать и сразу перейду к новой игре.

Читать далее

Иногда раньше релиза значит воровство. Истории об украденных играх

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

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

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

Читать далее

Превращаем 2D‑ассеты в 3D‑модели

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

Сегодня попробуем сгенерировать условных лоуполи “персов” и перевести их в трехмерное состояние с помощью ИИ. Сравним генерации Nano Banana Pro, Krea 2 и Microsoft MAI-Image-2.5 и как некоторые из них транслируются в 3D.

Читать далее

Шаблон игры «Автомойка» на Unity: Полное руководство по созданию детской игры по мытью автомобилей

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

Игры-симуляторы, построенные на простых, повторяющихся и визуально привлекательных задачах, стали одним из самых надежных жанров в мобильных играх. Среди них особое место занимают симуляторы автомойки и ухода за автомобилем. Они красочные, не требуют больших усилий и приносят бесконечное удовлетворение — именно поэтому они так популярны среди юных игроков. Если вы разработчик Unity, изучающий эту нишу, шаблон игры Car Wash Salon Unity Game Template стоит изучить подробно, как в качестве готового продукта, так и в качестве примера того, как создаются игры-симуляторы, ориентированные на детей.

Читать далее

Контринтуиция в статистике на примере игры Мир Танков/WOT

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

Контринтуитивные события окружают нас повсюду. Взять, например, парадокс дней рождений: каждый раз, когда оказываешься в небольшой группе и узнаёшь, что у двух участников группы праздник в один и тот же день, то думаешь: какое удивительное совпадение, ведь кажется, что событие редкое. Но вот уже при детальном рассмотрении оказывается, что вероятность такого события достаточно высокая (например, если группа 23 человека, то вероятность составит 50%, для группы в 57 человек — 99%). Примеров контринтуитивных событий много и они удивительны тем, что их разоблачение позволяет нам менять своё мировосприятие. 

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

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