Civilization и Total War

 

Имя
Пароль  
Забыли пароль?
Регистрация


CIVru.com / "Совет по концепции" - "Мозговой штурм" / Процедурная генерация (ландшафта, звёздных систем и прочего)
Версия для печати . Вверх
Автор Сообщение
Штурман
штурман



Репутация: 1170(???)
# Дата: 17 Авг 2016 01:49:41 Цитата

Инструмент разрботчика альтерцивы - процедурная генерация.
Внизу две ссылки выделены жирным - это самое интересное: концепция и примеры.

Формула чужого неба
На прошлой неделе состоялся релиз No Man’s Sky — игры, анонсированной ещё три года назад. Приличный срок, но рискну утверждать, что многие из тех тысяч, которые купили её в первый же день, ждали её вовсе не три года, а целых тридцать лет — с середины 80-х, когда концепция, положенная в основу этой игрушки, впервые была реализована в похожем масштабе. Простите, что говорю загадками, но простите и за то, что начну не с игры (о которой всё равно все уже читали не по разу, а кто-то успел и поиграть или посмотреть как играют другие), а с экспериментального коктейля из математики и психологии.

Отправляйтесь прямо сейчас вот на эту страничку сайта Academo.org, вбейте в поле «Expression» формулу sin(x)+sin(y)+sqrt(abs(x)), диапазон ограничьте координатами x: -5,10 и y: -5, 5, и жмите Calculate. Вы получите милую трёхмерную картинку. Формально это график заданной вами только что функции — но кто из вас, глядя на него, подумал о математике? Ведь… красиво же, правда?

Зацепите его курсором, покрутите. Горный каскад. Долины залиты синью: озёра! А почему пики расположены именно так? А если пустить речку по склону, она правда заполнит ущелья? А что там, за вертикальным срезом? Всё это реально проверить, если у вас есть хотя бы пять минут, но оставляю дальнейшие опыты вам. В контексте нашего разговора важны две вещи.

Во-первых, поверхность, которую мы только что получили, не существует иначе кроме как в виде формулы. Иначе говоря не существует массив данных, который содержал бы информацию о высоте точек в каждом узле координатной сетки x,y. Информация эта рассчитывается на лету или, как говорят программисты, процедурно. Мы получили процедурно сгенерированный ландшафт. Для человека, далёкого от вычислительной техники, звучит… диковато. Но верите или нет, именно процедурная генерация привлекла к вычислительной технике больше людей, чем, полагаю, любая другая математическая игрушка всех времён и народов.

И вот тут — во-вторых: по какой-то причине мы не в силах оценивать сгенерированные процедурно объекты не включая при этом фантазию. Дело, подозреваю, вот в чём. Человек — исследователь по натуре. У нас пара сонаправленных глаз (можно быстро и точно оценить расстояние до далёкого предмета), пара ног для преодоления больших расстояний и пара рук для преодоления препятствий на пути. У нас, наконец, интеллект, позволяющий строить оценочные модели в четырёх измерениях, то есть заглядывать в невидимое, неведомое, пока несуществующее. Всё это нам эволюцией подарено. Но фантазия, любознательность, воображение — не оттуда же ли? У животных ведь этого нет: их интересы формулируются физиологическими потребностями. Абстракция, несуществующее, их пониманию недоступна. А и была бы доступна — не была бы интересна. Только в нас с вами сидит чувство, постоянно требующее «заглянуть за горизонт».

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

Первой такой игрой, а точнее классом игр, стали «рогалики»: примитивные ролевые походовки, пришедшие аж из конца 70-х (см., например, историю NetHack). Здесь ПГ используется для создания бесконечного числа уникальных лабиринтов. Воображение здесь необходимо с порога, ибо мир нарисован символами ASCII. Но почему-то когда мы ставим мозг на порог неизвестного, он легко и даже с удовольствием воображение включает.

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

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

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

Теперь легко понять, почему такой ажиотаж вызвала No Man’s Sky: она, по сути, выкристаллизовалась из этого интеллектуального потока. В NMS процедурная генерация отвечает практически за всё. Этот огромный мир буквально соткан процедурными генераторами: он настолько велик, что авторам пришлось создавать программы-дроны, «путешествующие» по его закоулкам и присылающие снимки, чтобы убедиться, что алгоритмы работают правильно везде.

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

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

Да, говорят, в игре есть слабый нарратив: в синтезированную реальность, якобы, вплетена история, влекущая к центру Галактики. Но опять же почти никто и ничто не обязывают ей следовать. В No Man’s Sky можно странствовать между системами или замкнуться в одной, взаимодействовать с другими формами жизни или игнорировать их, даже просто проводить часы и дни наслаждаясь прелестью процедурных миров: восходом чужой звезды с орбиты неизвестной планеты, игрой света и форм на её поверхности, живущим по своим — математическим, отнюдь не случайным! — законам подводным миром, полным цвета, звуков, динамики. И знать, и помнить, что этот мир материализован из формул только для вас: никто и никогда его не видел и скорее всего не увидит. Кто-то удачно назвал возникающее здесь чувство космическим одиночеством, изоляцией: мир велик, я песчинка — где ещё такое почувствуешь?

Идея… странная. И, конечно, не раз подвергалась сомнению: можно ли и стоит ли строить игру на такой основе? Пока ещё судить о коммерческом успехе или неудаче No Man’s Sky рано. Но лично мне думается, что пессимисты всё-таки ошибаются. Сделать фантазию, воображение частью игрового движка — вариант беспроигрышный. Игра, конечно, не для всех. Но у неё останутся толпы поклонников и после того, как она будет пройдена.


Попробуйте сыграть в любую из частей Civilization на созданной вручную, фиксированной карте, как вам тут же станет скучно. Серия славится фокусом на известной поговорке Сида Мейера (Sid Meier) о том, что хороший дизайн в форме серии интересных ситуационных выборов не будет нормально работать, когда вы заранее знаете, что и где расположено. Как отмечает Джулиан Тогелиус: «Очень важно каждый раз начинать игру на новой карте, которую вы будете исследовать в первой половине игры, не зная, что и кого встретите на пути».

Тут главное понять, почему играм вроде Civilization – или Age of Empires, если брать RTS-аналоги – необходима процедурная генерация, а другие прекрасно себя чувствуют с фиксированными картами. Сгенерированные карты подталкивают к исследованию местности, но их очень трудно балансировать для разных типов геймплея и стратегий. В 2013 Тогелиус состоял в команде тестирования процедурно генерируемых карт для StarCraft. «Геймерское сообщество отнеслось к нам с пренебрежением, поскольку карты не были на 100% симметричными», – говорит он.



Rins
Участник



Репутация: 1212(???)
# Дата: 18 Авг 2016 00:27:11 Цитата

Любопытно, что в списках игр с процедурной генерацией упомянут майнкрафт и забыт его аналог - куда более трушный майнтест (ибо на сях, а не на жабе). Процедурная генерация относится не только к картам-уровням-миру, но и, например, к текстурам (как в .kkrieger) или к созданию неповторимых персонажей или разнообразного оружия.

Насчет того, что в циве якобы неинтересно играть на фиксированной карте, я бы поспорил - а как же сценарии? Почти все они основаны на заранее готовой карте, достаточно многие любят играть именно в сценариях.
А насчет этой фразы - «Геймерское сообщество отнеслось к нам с пренебрежением, поскольку карты не были на 100% симметричными», подозреваю, что Тогелиус просто кретин, который не понимает, что мультиплеер в старкрафте - это никакая не игра, а киберспорт, для них карты надо делать специально.

akasoft
Участник



Репутация: 1576(???)

# Дата: 21 Авг 2016 14:27:18 Цитата

Там же просто количество данных запредельное, если их все хранить, памяти не хватит. Вот и вычисляют.
По цивилизации - всё равно придётся хранить списки: списки отрядов, городов, стран, ресурсов, признаки видимости.

Rins
Участник



Репутация: 1212(???)
# Дата: 21 Авг 2016 18:58:35 Цитата

akasoft: Там же просто количество данных запредельное, если их все хранить, памяти не хватит. Вот и вычисляют.
По цивилизации - всё равно придётся хранить списки: списки отрядов, городов, стран, ресурсов, признаки видимости.

По факту должны получаться разреженные таблицы (sparse tables), в которых ненужные значения просто неопределены. Когда потребуются значения из ячеек таблицы, которые до сих пор не были использованы, они генерируются, но не случайно, а по определенной процедуре. Понятно, что в играх типа цивилизации это не требуется, там все равно абсолютно все данные хранятся и используются в генерации ходов, но вообще такой подход был бы интересен. Например, в синглплее вообще забить на расчеты в дальних (и неизвестных даже косвенно игроку) цивилизациях, а когда игрок подойдет к знакомству с ними, то города, юниты, ресурсы будут сгенерированы с учетом уровня сложности игры. Конечно, это имеет смысл в реально масштабных играх, не в нынешних цивах с крошечной картой.

Штурман
штурман



Репутация: 1170(???)
# Дата: 23 Авг 2016 22:59:14 Цитата

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

Да, по той фразе про Цивилизацию сразу понятно, что автор не прочувствовал игру! Улыбка
Но в Циве-то действительно нет острой необходимости в процедурной генерации. А вот для Альтерцивы это был бы полезный механизм. Особенно Йорик оценил бы в плане реализма! Улыбка
Типа как в статье про чужое небо — настолько огромное количество звёздных систем, что у игрока практически нет шансов встретиться с другим игроком. И при этом всё реалистично.

fantakt
Участник



Репутация: 1257(???)

# Дата: 23 Авг 2016 23:02:54 Цитата

Если ты про Ноу Манс Скай, то там нет мультиплеера Улыбка Там невозможно встретить другого игрока потому что это сингл

Rins
Участник



Репутация: 1212(???)
# Дата: 23 Авг 2016 23:44:28 Поправил: Rins Цитата

fantakt: Если ты про Ноу Манс Скай, то там нет мультиплеера Там невозможно встретить другого игрока потому что это сингл
Да-да, ведь уверяли, что просто шансы увидеть другого игрока стремятся к нулю, но нашлись все-таки парочка игроков, которые сумели оказаться в одном месте в одно время, но так и не увидели друг друга, более того, время суток у них отличалось. Разраб отмазался перегруженностью серверов )
http://kanobu.ru/news/igrokam-tak-i-ne-udalos-vstretitsya-v-no-mans-sky-384778/
Один из комментариев оттуда
Да отсутствие возможности встретиться вместе было очевидно как белый день. Еще неделю назад я понял, что будет нечто подобное, и сегодня моя теория подтвердилась. Это полная печаль-беда. Хотя бы обрезано, частично, отдельными сессиями, но мультиплеер должен был быть внедрен. Без этого эта игра - это твой персональный ад и чистилище, аналог матрицы из одноименного фильма. Тебе открыта огромная вселенная, но она совершенно пустынна и оставляет чувство неестественности окружения. Реально, если эта игра перейдёт в VR, то ей можно будет людей пытать, заставляя их бесцельно бродить по тюрьме Вселенских масштабов без возможности вернуться в реальный мир. Именно так я себе и представлял загробный мир.


AbagelaSa
Участник


Репутация: 1000(???)
# Дата: 29 Авг 2016 21:12:54 Цитата

Неплохая ссылка на генератор неба.
Спасибо за информацию.

ks7758k
Участник


Репутация: 1007(???)

# Дата: 5 Сен 2016 20:59:17 Цитата

Помочь что-нибудь нагененерировать ?
(я проф программер с++)

www.serjikk.ru/

ks7758k
Участник


Репутация: 1007(???)

# Дата: 5 Сен 2016 20:59:32 Цитата

?

ks7758k
Участник


Репутация: 1007(???)

# Дата: 2 Ноя 2016 22:10:09 Цитата

ой!, я сайт поменял .. )
http://space.do.am/civ.html

сгенерил кто-нибудь что-нибудь ?
?

Ктулху
Участник


Репутация: 888(???)
# Дата: 8 Ноя 2016 13:12:27 Поправил: Ктулху Цитата

ks7758k: сгенерил кто-нибудь что-нибудь ?
нет, конечно.

Версия для печати . Вверх

ОСТАВЛЯТЬ СООБЩЕНИЯ МОГУТ ТОЛЬКО ЗАРЕГИСТРИРОВАННЫЕ ПОЛЬЗОВАТЕЛИ!

Администрация форума: editors@civru.com
Rambler's Top100
XML [?]