Рубрика «процедурная генерация» - 5

Процедурная генерация уровней - 1

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

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

Внимание! Под катом много текста и "жирных" гифок.

Читать полностью »

image
Привет! Однажды утром мне пришла в голову идея находить "исключающее ИЛИ" между координатами точки пространства и проверять полученное число на простоту. Результат такого простого алгоритма вы можете видеть на картинке. Подробнее под катом.
Читать полностью »

Предисловие

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

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

По завершении чтения статьи у вас должно получиться что-то такое:

Итог

Генератор случайных двумерных пещер - 1

Читать полностью »

Здесь будет рассмотрен способ деления сферической поверхности процедурно-генерируемой планеты нерегулярными тайлами, и, как его следствие, подразделение океана и континентов на отдельные участки (сектора). Мы предполагаем, что на поверхности планеты уже задана структура участков суши с помощью какой-либо GIS и возможен экспорт векторных данных в ESRI shapefiles или непосредственно в PostgreSQL базу данных с расширением PostGIS. Сам процесс создания секторов осуществляется средствами PostGIS.
Читать полностью »

image

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

На изображении ниже показан набор тайлов (тайлсет), на основании которого сгенерирован мир из видео. Мир снабжён примечаниями, которые помогут представить его в настоящей среде.
Читать полностью »

image

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

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

В этом туториале вы научитесь следующему:

  • Процедурно генерировать уровни на примере создания игры про бег в лабиринте.
  • Генерировать данные лабиринтов.
  • Использовать данные лабиринтов для построения меша.

Приступаем к работе

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

Процедурная генерация лабиринтов в Unity - 2

Однако в большинство игр приятнее играть, когда лабиринты неидеальны и в них есть петли. Они должны быть обширными и состоящими их открытых пространств, а не из узких извилистых коридоров. Это особенно справедливо для жанра rogue-like, в котором процедурные уровни являются не столько «лабиринтами», а скорее подземельями.

Процедурная генерация лабиринтов в Unity - 3

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

image

В декабре прошлого года мы наконец-то закончили наш проект. В этом видео показана наша последняя работа — четырёхминутная анимация «Immersion». Точнее, это запись того, что обычно называется 64k-интро. Но подробнее об этом чуть позже.

Работа над проектом заняла лучшие свободные часы последних двух лет жизни. Всё это началось во время проведения Revision 2015, большого мероприятия, устраиваемого каждый год в Германии во время пасхальных каникул. Мы вдвоём болтали по дороге из отеля в место проведения мероприятия. Предыдущим вечером уровень конкуренции в области 64kB intro оказался высоким. Очень высоким. Опытная и хорошо известная венгерская группа Conspiracy наконец вернулась с серьёзной, потрясающей работой. Наш лучший враг Approximate идеально успел по времени с завершением цикла выпуска и показал значительные улучшения в сторителлинге. Продуктивная группа Mercury обрела собственный зрелый стиль дизайна в интро, которое не оставляло сомнений в своей победе.
Читать полностью »

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

Приёмы геймдизайна: перемешивание - 1

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

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

Рисователь биомов: наполняем содержанием огромный мир - 1

Как преобразовать карту высот с верхней картинки в лес с нижней?

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

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

Если посмотреть на типичную игру с открытым миром, то можно увидеть в действии принцип Парето — 20% контента составляют основной путь игрока, а 80% — это фон. Основной путь игрока должен отличаться высоким качеством и художественным содержанием, потому что игроки проведут на нём бо́льшую часть времени. Фоны, в том числе обширные леса или пустыни вокруг главных городов, не требуют такого внимания к деталям. Эти 80% представляют собой отличную цель для умных инструментов размещения содержимого, которые слегка жертвуют качеством и художественным оформлением в пользу скорости и простоты создания контента.
Читать полностью »

GraphicsJS – графическая JavaScript библиотека - 1

Перевод статьи. Англоязычный оригинал опубликован на SitePoint – "Introducing GraphicsJS, a Powerful Lightweight Graphics Library".

HTML5 – основа основ современного веба. И сегодня, когда встает задача создать интерактивную графику, выбор чаще всего падает на такие технологии, как SVG и Canvas. Flash позабыт, Silverlight – редкая птица, обитающая на задворках веба, и почти никто не помнит сторонние ActiveX и Java-плагины.

Плюсы и минусы SVG и Canvas хорошо известны – в целом все сводится к тому, что для создания интерактивных элементов и работы с ними больше подходит SVG. Это векторный формат, основанный на XML, и, когда изображение загружается на страницу с использованием тега <svg>, каждый его внутренний элемент становится доступен в SVG DOM.

В данной статье я хочу рассказать о GraphicsJS. Это мощная графическая JavaScript-библиотека с открытым исходным кодом, основанная на технологии SVG (VML для старых версий IE). Начну с краткого введения в основы GraphicsJS, а затем проиллюстрирую возможности библиотеки двумя небольшими, но наглядными примерами. Первый из них посвящен изобразительному искусству. Второй покажет, как менее чем за 50 строк кода сделать простую арт-игру в жанре таймкиллера.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js