z_Hunter (z_hunter) wrote in gamer,
z_Hunter
z_hunter
gamer

Category:

Как из случайного числа выдуть игру

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

 Современные игры тоже велики. Гигабайты текстур, звуков, карт уровней. А ведь когда-то было не так. Например, в культовой ELITE удалось вместить в 22 Кб программного кода целую вселенную с 2^48 галактик, в каждой из которых по 256 звездных систем. Так как в игре может присутствовать только 8 галактик, то, соответственно, количество вариаций составляет около 35 триллионов (wiki).
 Каким же образом создатели ELITE затолкали звёздное небо в 22 Кб? Да очень просто
-- всё генерируется на лету, на основе псевдослучайных последовательностей чисел. Иного выхода у авторов в те времена не было, ведь объём ОЗУ тогдашних компьютеров часто не превышал 64 Kb. Поскольку исходные числа для генератора одинаковы, то и вся вселенная каждый раз одна и та-же, несмотря на то, что при каждом перелёте конструируется заново, включая названия планет и их краткое описание. Таким образом алгоритм + число способны без лишних усилий создать целый мир, причём этот мир может быть каждый раз совершенно иным.
В рогаликах подземелья как правило были почти полностью рандомны. Хотя почему "были"? Данная категория игр существует и поныне,  и именно из неё растут корни великого проекта Dwarf Fotress. В нём используются методы из теории численного моделирования: "Прежде чем начать игру, необходимо создать мир. Его генерация занимает значительное количество времени, в среднем 5—15 минут на средней системе (Например, P IV 3000 создает мир около 7 минут). Это объяснимо: мир очень большой, с неслучайными локациями. Кроме того, должно пройти определённое количество лет существования мира, прежде чем в нём сможет появиться игрок. За это время персонажи мира рождаются и умирают, рожают детей, основывают новые города. В версии 0.27.173.38a добавлена имитация семейных отношений, взросление и смерть от возраста, рождение детей; в новой версии добавлена религия: каждый народ теперь имеет определённый пантеон богов, которым он поклоняется. В ближайших планах ввести войны между разными цивилизациями во время генерации мира, а потом — и в обычной игре."(wiki)

Впрочем, в ELITE графика была по современным понятиям совершенно абстрактной и состояла из нескольких примитивных каркасных моделей, а в рогаликах основным каноническим режимом отображения вообще считается pure ASCII, то есть текстовый режим. А как обстоит дело в мире 3D, реализуемы ли там такие методы? Вполне. В трёхмерной игре "Даггерфолл" принцип рандомизации, как и в рогаликах, лежал в основе построения всего игрового мира, что позволило реализовать территорию немыслимого по нынешним меркам размера примерно равную по размеру Великобритании: около 487,000 квадратных километров, с более чем 15 000 городов, деревень, и пещер, которые можно исследовать. По словам Тодда Говарда, программиста Elder Scrolls, следующая в серии игра, «The Elder Scrolls III: Morrowind» является 0,01 % от размера «Daggerfall». (wiki)
Это придало Dagerfall эпичнейшие масштабы, но также и эпичнейшее однообразие. Поскольку всё собирается из одинаковых кубиков, многие критиковали игру за ощущение бесконечного копипаста. Но ведь и визуальная составляющая, текстуры, модели, даже звуки могут быть точно так-же сконструированы на лету.

 Ярким примером этому служит такой, казалось бы, курьёз как Kkrieger. Полноценный 3D шутер размером 96 Kb.Не магабайт, а килобайт  Меньше чем скриншот! Полная версия игры занимает всего 97 281 байт дискового пространства благодаря тому, что все игровые ресурсы — текстуры, модели, геометрия уровня, музыка и звук — генерируются с помощью различных алгоритмов. Текстуры генерируются в реальном времени методом процедурного текстурирования. Музыка и звук в игре синтезируются и воспроизводятся так же в реальном времени многофункциональным синтезатором V2 собственной разработки (Farbrausch). Исполняемый файл игры запакован программой kkrunchy. По словам разработчиков, игра занимала бы около 200—300 МБ, если бы использовалось традиционное хранение предварительно подготовленных игровых ресурсов. (wiki). Выглядит Kkrieger вполне современно, с шейдерами и всеми фишками DX 9:


Вот видеоролик с рассказом о том как делался .kkrieger. Генерация текстур очень похожа на то, что есть в Фотошопе. Очень здорово сделали анимацию персонажей. Они не могли использовать скелетную анимацию, поскольку самый маленький размер для такого персонажа, что они смогли добиться - это 12 кб. В итоге они сделали нечто свое. В этом ролике подробно показывают анимацию одного из монстров, как он автомагически начинает правильно ноги переставлять, когда поворачивает, когда начинает идти быстрее, когда идет назад... Впечатляет. (Алёна C++)

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

Конечно, это не панацея, и злоупотреблять принципом рандомной генерации не стоит, поскольку как и мыльный пузырь, полученый результат имеет впечатляющий, но иллюзорный объём. Тем не менее, случайность -- важный элемент теории игр. Не стоит пренебрегать ею. Пусть игра начинается с разных точек мира, пусть те или иные события могут произойти или не могут. Одна игра не должна походить на другую, в этом секрет удержания интереса игрока.
Второй же основополагающий элемент -- правила (алгоритмы). Сочетание этих элементов позволяет творить настоящие чудеса.

Эту, и другие мои статьи, можно найти также в сообществе CONCEPTGAME215

Tags: .рубрика: игры как искусство, .форма: аналитика, elder scrolls, kkrieger, space rangers, материал для gamer.livejournal.com
Subscribe
promo gamer december 14, 2012 10:36 41
Buy for 100 tokens
Советы авторам! 0. Если ваша статья крупнее расписания лекций третьего курса на четверг - прячьте под кат все, кроме одного небольшого скриншота\картинки и одного-двух абзацев. По кату обязательно кликнут и прочтут остальное, не беспокойтесь. 1. Определите для себя, о какой игре вы…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 18 comments