November 5th, 2012

photo

Жизнь после Хиггса

Значит, с кошечкой мы воссоединились, а теперь хочется знать - зачем?! Поскольку любовь к кошке у каждого из вас явно больше, чем любовь к Хиггсу, зачем тратить такие усилия на поиски Хиггса? Как я уже сказал в качестве введения, бозон Хиггса примиряет непримиримое: два наблюдения, которые верны одновременно. И я сейчас поясню точнее, что это значит: мир симметричен - и мир не симметричен. То, что мир симметричен, как я уже сказал, вообще позволяет нам ориентироваться. Модное слово: паттерны. Люди склонны искать паттерны, и вообще нам нужны паттерны в жизни! Ну, хотя бы имена, лица людей, какие-то распознавания образов – вот на слайде прекрасный пример того, что люди ищут паттерны даже там, где их нет: на самом деле на небе ничего не нарисовано.

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


Комментировать запись на virtualmind.ru
Фас - говорит (поднял бровь)

Ima Live

Я очень люблю жанр под названием zero player games. Наверное, по той же причине, по которой люди заводят аквариумы — потому что рыбки просто плавают. Тебе не нужно играть в рыбок.

К сожалению, большинство виденных мною игр на эту тему были либо не совсем zero player (вроде Годвилля), либо не предполагали совершенно никакого сопереживания героям. А очень хотелось бы игру, которую можно было бы смотреть как бесконечный сериал, следя за перипетиями взаимоотношений героев, наступающими событиями и конфликтами.

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

Ведь даже быт может быть интересен, если он отличается от твоего.

Давным-давно я вынашивал эту идею, пока на глаза мне не попался Dwarf Fortress. Она совершенно не zero player, но ее механика потрясла меня, наглядно демонстрируя, что на современном уровне развития технологий вполне возможно создание игры, в которой создания будут вести себя согласно собственному разумению, и при этом быть похожими на людей. 

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

Более того, геология — это замечательно, но не слишком весело.

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

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

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

Специально для этого я сделал на сайте новую рубрику, в которую сейчас пишу — она называется Ima Live. Такое рабочее название у того творения, что я собираюсь сделать. Получится из этого что-нибудь или нет — не знаю, но вдруг.

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


Комментировать запись на virtualmind.ru
Фас - говорит (поднял бровь)

Предмет-действие-слот

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

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

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

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

Допустим, у нас есть кузнец, который сидит в кузнице. У него есть металл, горн, наковальня, молот и бадья с водой. Его задача — сковать меч. Ну так, очень упрощенно.

Первое, что мы делаем — идем в Google и спрашиваем его, как куются мечи. В результате недолгих поисков находим видео «Как выковать меч» и смотрим его. Все части. После чего, получаем общее представление о том, каким образом куется меч.

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

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

Путем нехитрых размышлений, мы приходим к следующей идее.

Все в мире есть предметы. Те самые, которые в английском языке зовутся items. То есть, дом — это в каком-то смысле тоже предмет, просто с несколько различными свойствами. Этими свойствами предметы и различаются.

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

Если повторять этот процесс достаточно долго — можно получить каркас дома.

Более того — предметы могут менять свои свойства с течением времени или даже превращаться в другие предметы со временем. Так, лежащее на поле яблоко через несколько месяцев сгниет — превратится в перегной. А нагретая стальная заготовка остынет.

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

Действия занимают время. То есть, полив растения, например — это вполне конкретное действие, которое нельзя осуществить в одно мгновение.

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

В процессе действий одни предметы расходуются, а другие просто используются. Так, если поливать растения из лейки, то лейка используется, зато вода, которая находится в ней, расходуется.

Мы приходим к модели, которую я назвал «предмет-действие».

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

Таким образом, в эту модель добавляется третий элемент — «слот», и все встает на свои места.

Есть предмет. Предмет подвержен определенным процессам, зависящим от его свойств — железо ржавеет, зерно гниет или прорастает, нагретые предметы охлаждаются, холодные — нагреваются.

Есть процесс. Например, процесс ковки. Процесс может зависеть от определенных свойств предмета (ковать железо нужно при определенной температуре), а также требовать дополнительных предметов (инструментов или расходных материалов).

Есть слот. Слот — самое сложное понятие, потому что подразумевает абстракцию «находится в/на», которая в жизни встречается на каждом шагу, но обычно не формализуется. Так, например, стол представляет собой предмет. У него есть слот — поверхность. Один или несколько в данном контексте не важно. У него также могут быть дополнительные слоты — например, ящики. Или пространство под столом — тоже вполне себе слот. Например «поставить кастрюлю с водой на плиту» в этом отношении выражается как «разместить предмет „кастрюля с водой“ в слот предмета „плита“». Разные слоты могут быть предназначены для разных действий — конфорка нагревает снизу, духовка — со всех сторон. Размещение заготовки на наковальне для ковки — тоже слот, характеризующийся определенными параметрами. Можно ли ковать не на наковальне, а на камне? Можно, наверное, если камень достаточно ровный и прочный, в этом смысле он ничуть не хуже. То есть разные предметы, могут предоставлять слоты, которые обладают похожими свойствами.

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

Удаляя по одному элементу из данной триады, мы будем получать разные способы бытия.

Удалим предмет? Останется процесс и слот — это магия.

Удалим процесс? Останется предмет и слот — хранение.

Удалим слот? Останется предмет и процесс. Это такое же преобразование, как в полной триаде, только более легковесное. Хотя, если, например, считать слотом руки персонажа, то никакое действие без слота происходить не может, потому что слот по сути — положение предмета в пространстве, а предмет без положения в пространстве существовать не может.

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

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

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

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


Комментировать запись на virtualmind.ru