"ЗМЕИНЫЙ БОЙ" - НОВОЕ СЛОВО
© Сергей Симонович, 1994.
В начале этого года в одном из британских журналов появилась статья известного обозревателя Питера Кука на тему о том, как он видит развитие компьютерных игр в ближайшие годы. В этой статье прозвучала интересная мысль о том, что мы стоим на пороге нового класса недетерминированных игр, в которые не только программист, но и пользователь может внести свой творческий вклад.
В качестве примера П.Кук привел гипотетический имитатор автогонок .
"Представьте себе, что у Вас есть программа, в которой Вы не только можете ездить по трассе "Формулы-1" и не только выбирать себе машину и настраивать ее как Вам надо, но еще и обучать пилота. Водя машину по трассе, Вы как бы обучаете его технике прохождения поворотов, разгона и торможения, технике обгона и некоторым тактическим премудростям, например своевременной замене резины. Отгрузив такого "пилота" на диск, Вы можете пойти с ним в гости к друзьям или в клуб, загрузить его в чужой компьютер и посмотреть, как он будет себя вести в очном соревновании с другими "пилотами", обученными Вашими друзьями".
Игра приобретает совершенно иной характер. Она как бы разбивается на две фазы. В первой фазе Вы не играете, а обучаете программу, как надо правильно играть (водить машину). Да и во второй фазе, когда Вы запускаете автогонку, вы тоже не играете, просто болеете за своего гонщика.
Интересно, не правда ли? Мы как бы получаем компьютерную игру, в которой элемент интерактивного участия в управлении машиной ушел на задний план. На первый план выходят творчество в первой фазе и зрелищность во второй. А ведь до сих пор считалось, что интерактивность - основное достижение в компьютерных играх и чем её больше, тем игра лучше.
А теперь давайте подумаем, уважаемый читатель. Хотели бы Вы иметь такую программу, чтобы устраивать состязания со своими друзьями? Хотели бы Вы почувствовать себя в роли владельца спортивной команды, который к каждому новому состязанию готовит новую "темную лошадку"? А может быть Вы хотели бы и сами написать подобную игру, но не представляете, с чего начать и полагаете, что Ваш старина ZX-Spectrum не справится с подобной задачей?
Сейчас, на конкретном примере мы Вам покажем, что все это возможно и, более того, все это уже сделано и не где-нибудь, а у нас в России. Интересно было бы посмотреть, как вытянется физиономия у Питера Кука, когда он об этом узнает. Впрочем, он, скорее всего, порадуется и скажет: "Ведь я же предупреждал!!!".
Речь пойдет о программе Snake Battle (Змеиный Бой), выпущенной нашей фирмой "GAMOS" ("Геймос", г.Москва). Но для начала несколько слов о самой фирме.
Как и все отечественные программопроизводители, эта компания хорошо известна не в России, а за рубежом. Её игры широко распространены в Японии и Швеции, а недавно (в апреле) игра "Змеелов" в США завоевала рейтинг 96% (для сравнения скажем, что игры с рейтингом выше 90% появляются в мире не более, чем по несколько штук в год).
А игра "Регата" (имитатор парусной яхты") стала в прошлом году победителем конкурса фирмы "Борланд" и по сей день является единственным российским коммерческим имитатором.
За два года своей работы фирма выпустила полтора десятка игр, каждую из которых можно смело относить к маленьким шедеврам.
Как и все отечественные программопроизводители, "Геймос" не имеет в России ничего, кроме убытков. Неоднократные попытки провести на наш рынок какую-либо игру заканчивались моментальным снятием защиты (тем более что "Геймос" очень гуманна к пользователю и очень мягко защищает свои игры) и неудержимым распространением игры без какой-либо отдачи для авторов. Не сильно утруждаясь поисками, и Вы сможете найти почти на любой IBM-совместимой машине ранние игры этой фирмы, например Color Lines или, скажем, Filler.
Пусть Вас, уважаемый читатель, не пугает здесь упоминание пресловутой IBM, поскольку в этих играх абсолютно нет ничего такого, чего нельзя было бы исполнить на "Спектруме". Более того, нам известно о том, что сейчас есть коллективы, работающие над конверсией игры Color Lines под "Спектрум".
Однако вернемся к игре Snake Battle. Все мечты Питера Кука здесь стали реальностью.
Игра состоит из двух фаз. На первом этапе Вы создаете себе "Боевую Змею". Точнее говоря, её не надо даже и создавать, она выдается Вам в готовом виде, Вы же только "воспитываете" её. Вся логика поведения змеи в бою содержится в её голове в виде набора из девяти "микросхем" (см. рис.1).
Рис. 1.
В этих "микросхемах" Вы можете "записать" какую хотите программу поведения змеи. Сначала Вы заполняете первую микросхему, потом вторую. Если хотите, заполните ещё и третью и т.д. Совсем не обязательно, что та змея, у которой заполнено больше микросхем, будет умнее и будет побеждать. Это зависит от того, что Вы заложите в её голову. Можно напрограммировать такого, что змея будет теряться в элементарных ситуациях.
Чему же "учат" змею? В своем сатирическом романе "Скотский Хутор" Дж. Оруэлл выдал бессмертную фразу "Все животные равны, но некоторые из них равнее". Вот так же и в этой игре. Все змеи равны, но некоторые из них лучше обучены. В бою принимают участие от двух до четырёх змей, которых для боя извлекают из своеобразного змеиного банка. Хорошо обученная змея должна уметь:
Рис. 2. Рис. 3.
■ избегать ситуации попадания в тупик у стенки и вообще подальше от них держаться, кроме как вовремя погони за жертвой;
■ не путаться в собственных кольцах (некоторые ситуации, когда змеи запутываются в клубок, приведены на рис. 3);
■ уметь грамотно преследовать противников и сокращать дистанцию, "срезая" углы;
■ уметь разрывать связи. Когда две змеи поедают друг друга с хвоста, ситуация приобретает характер ничейной. Более умная змея должна уметь такие связи разрывать, то есть программа разрыва связи должна иметь более высокий приоритет, чем программа, описывающая её основной инстинкт (инстинкт поедания);
■ неплохо, если змея умеет ориентироваться в дебютной ситуации. Это дает ей возможность с первых шагов получить необходимый запас прочности;
■ Ваш боец должен быть универсальным. Он должен уметь биться в групповой схватке (каждый за себя) и в индивидуальной (один на один). Далеко не всякий отличный индивидуальный боец хорошо ведет себя в групповом бою даже и с более слабыми противниками и наоборот;
■ Ваш боец должен быть универсальным и в другом смысле. Созданные Вами змеи - существа не транзитивные. Если змея "Альфа" надежно побеждает змею "Бета", а та в свою очередь уверенно бьет змею "Гамма", то это совсем не значит, что "Альфа" будет сильнее "Гаммы". Вспомните последний чемпионат мира по футболу -таких ситуаций может быть сколько угодно. Созданные Вами змеи ведут себя как настоящие живые спортсмены и у них есть "удобные" и "неудобные" соперники.
Ваши змеи должны уметь еще очень многое, и для того, чтобы "обучить" ("воспитать") себе бойца, Вам придется программировать логику его поведения в конкретных боевых ситуациях.
Программирование змей осуществляется очень элегантно, наглядно и доступно. Все программирование происходит "графически". Каждая "микросхема" вашей змеи - это матрица 7х7 и в этой матрице Вы сами устанавливаете различные символы, описывающие её поведение (см. рис. 1). Элементарное программирование очень просто и его может освоить даже ребенок. Так, например, простейшая программа приведена на рис. 4, она как бы говорит змее "Если рядом хвост врага, укуси его".
Рис. 4.
Уже и с такой программой Ваша змея будет жить, и сражаться (хотя и слабовато).
Игра интересна ещё и тем, что в ней есть три уровня программирования своих змей: НОВИЧОК, ЛЮБИТЕЛЬ, ЭКСПЕРТ.
Чем выше уровень, который Вы избрали, тем шире Ваш доступ к системе команд. То есть, возможности программирования бойца на уровне ЭКСПЕРТ намного выше, чем на уровне НОВИЧОК. Зато сам бой можно проводить на любом уровне.
Итак, поработав, пять минут (один час, один день, один год), Вы создали себе змею. Можете идти с ней в гости и запускать её в чужой террариум (то есть в компьютер) и смотреть, чей гад лучше. Мы уже пробовали и, можем Вас заверить, зрелище чрезвычайно азартное.
Кстати, имейте в виду, что Ваша змея - Ваша интеллектуальная собственность и находится под защитой Закона об Авторском Праве. В данной игре она защищена от просмотра паролем, который Вы же сами и должны придумать, когда создаете своего бойца. Не зная пароля, нельзя узнать, что в голове у Вашего соперника.
Вы чувствуете, как в этой игре пользователь получает возможность ТВОРИТЬ, то есть становится не просто игроком, а приподнимает свой уровень до автора игры. Автор написал программу и выпустил её в свет, а программа продолжает жить после этого долгие годы и постепенно развивается вместе с тем, как развиваются её пользователи. Это совершенно новый класс программ и, обратите внимание, это недетерминированные игры, как и большинство реальных спортивных игр (см. предыдущую статью).
Что же из этого следует?
Уважаемые программисты, если у Вас не появилось ни одной идеи по созданию чего-нибудь подобного для "Спектрума", то отложите статью на минутку и просто помечтайте. Уверены, что через пару минут Вас осенит десяток идей. Мы не призываем Вас немедленно конвертировать Snake Battle под "Спектрум", хотя здесь нет особых проблем (надо только заручиться согласием авторов - фирмы "Геймос" - тел. (095) 437-56-72).
У Вас есть ещё миллион других путей - подумайте о боевых драконах (возможно, что и огнедышащих), о боевых роботах, об интеллектуальных кораблях, танках, самолетах и пр. Давайте вдумаемся, ведь почти в каждой компьютерной игре, в которой против Вас выступает какой-либо монстр, он действует, подчиняясь какому-то алгоритму. Фактически надо только дать пользователю возможность самому менять алгоритм, управляющий действиями этих монстров и обеспечить соревновательный антураж. А уж как это сделать - зависит от Вас.
Нам кажется, что фирма "Геймос" нашла удивительно изящный способ визуального "программирования" логики поведения своих змей, но не исключено, что Вы найдете другой путь, не менее интересный.
Уважаемые программисты, работая над новыми проектами, обратите, пожалуйста, внимание на перспективность этого направления. Питер Кук, с которого мы начали эту статью, знает, "куда ветер дует" и вряд ли ошибается в своих прогнозах, когда говорит, что мы стоим на пороге "игр нового класса".
Кстати, названия этому новому жанру игровых программ пока не придумано. И мы с Вами находимся в уникальной ситуации, когда можем придумать это название сами. Далеко не каждый день рождается новый жанр и такая ситуация может не скоро повториться, ведь всего-то существует жанров вместе со всеми разновидностями не более двух десятков. Ясно, что эти игры относятся к логическим играм. Может быть, следует оттенить тот факт, что сам бой проходит не интерактивно, а зрелищно и тогда можно было бы назвать такой жанр зрелищно-логическим. Может быть, если иметь в виду "гипотетический" имитатор П.Кука, стоит назвать такие игры "Адаптивными играми". Вопрос пока открыт, можете высылать свои предложения. Всё равно мы с вами будем первыми, ведь на западе пока таких игр нет.
Некоторые предпосылки.
А теперь мы слегка займемся историей вопроса и посмотрим, откуда "ноги растут". Дело в том, что П.Кук не случайно "изобрел" гипотетический саморазвивающийся автоимитатор. В ноябре 1992 года вышла программа фирмы "Microprose" под названием "Formula One Grand Prix" - имитатор "Формулы-1". В эту игру было встроено очень многое из того, что хотелось бы видеть в хорошем автоимитаторе (подробно об игре можно прочитать в PC-REVIEW № 6), но одна особенность сразу выделила этот имитатор из круга ему подобных. В него была встроена тактика командной борьбы.
Вы знаете, что в гонках по "Формуле-1" от каждой команды принимают участие по два участника и на этом в определенной мере строится тактика командной борьбы. Конечно, правила соревнований не разрешают гонщикам активно препятствовать другим во время заезда, но, тем не менее, они все-таки иногда "придерживают" соперников, позволяя партнеру уходить в отрыв. Так и в этом новом имитаторе Вы управляете не одной машиной, а двумя, переключаясь между пилотами. При этом компьютер управляет вторым гонщиком так, как Вы им управляли, когда были переключены на него. Можете даже отключиться от обоих пилотов и посмотреть на гонку "со стороны" глазами владельца команды. Чувствуете, на что, по-видимому, опирался П.Кук, давая свой прогноз на ближайшие годы.
Некоторые прототипы.
В принципе, когда мы говорим о том, что концепция игры, в которую каждый пользователь может внести что-то свое является новинкой, то мы не совсем правы. Новинкой является конкретная реализация, красивая и удобная для широких масс, но сама концепция когда-то развивалась и была очень популярной. Мы имеем в виду Древнюю Культуру, ныне почти забытую "Боя в памяти". На "Спектруме" нам неизвестны никакие проявления этой Культуры и потому, наверное, нашим читателям было бы небезынтересно узнать, что это такое.
Мы не случайно говорим не об игре "Бой в памяти" (поскольку их было очень много), а говорим о Культуре и почему это так, Вы сейчас поймете.
История "Боя в Памяти" (CoreWar) восходит ещё к концу 70-х годов, то есть это движение началось задолго до появления первых персональных машин.
Суть игры состояла в том, что каждый играющий мог написать на АССЕМБЛЕРЕ свою небольшую программку, после чего несколько таких программ запускались в память ЭВМ под управление своей операционной системы (так сказать арбитра встречи). Эти авторские программки получили название "организмов" Куда, в какие адреса, помещались эти "организмы", никому не было известно. Бой начинался.
Каждый "боец" (то есть "организм") должен был по-возможности:
■ отыскать в памяти местоположение соперников:
■ обстрелять их, например нулями, и вывести из строя или хотя бы повредить;
■ регенерировать (залечивать) полученные в бою раны;
■ некоторые "организмы" умели даже размножаться и маскироваться, что обеспечивало им повышенную живучесть под огнём противника;
■ и т. д. и т. п.
Бой длился до тех пор, пока в памяти не оставалась одна программа-победитель, подающая операционной системе сигнал "Я жива!".
Разумеется, поначалу такая игра не могла быть достоянием широких масс публики, ведь для написания "бойцов" требовались редкие (по тем временам) навыки системного программирования.
Чуть позже появились некие "оболочковые" программы, сводившие написание своего "организма" не к программированию на АССЕМБЛЕРе, а к использованию некоторого ограниченного набора операторов специального языка.
Эта культура CoreWar прогрессировала примерно где-то до 1984-го года. На Западе существовали клубы любителей этой игры, которые выпускали свои регулярные бюллетени, т.е. движение "Боя в памяти" обросло даже своими средствами массовой информации. Многие компьютерные журналы отвели этому движению постоянные рубрики и разделы. Очень много дала этому движению университетская среда. При университетах существовали наиболее мощные объединения программистов, пишущих "организмы".
По всему миру шли чемпионаты. Причем не только сила игры оценивалась на этих чемпионатах. Специальных призов удостаивались наиболее короткие и наиболее оригинальные "организмы".
В середине 80-х годов движение сошло "на нет", хотя ещё и до сих пор время от времени мелькают сообщения о выходе новых "оболочек" для написания своих "организмов" и организации турниров.
Почему движение постепенно отмерло, нам неизвестно, но подозреваем, что оно постепенно себя исчерпало, когда дало толчок новому, очень неприятному движению. Мы имеем в виду написание компьютерных вирусов. Ведь именно к первой половине восьмидесятых годов и относится первый бурный всплеск этой "заразы". Не надо быть семи пядей во лбу для того, чтобы догадаться, что все основные черты игрового "организма" совпадают с основными свойствами компьютерных вирусов.
Во всяком случае, общеизвестен тот факт, что основные компьютерные вирусоводы и вирусоведы произошли из этой самой культуры ^raWer.
Некоторые аналоги.
Идея дать пользователю возможность самому вносить что-то новое и интересное в программу и, тем самым, развивать и двигать её далее - очень плодотворная идея. И здесь есть один выдающийся коммерческий аналог, опыт которого можно считать уникальным. Мы имеем в виду программу Flight Simulation фирмы Microsoft.
В своей последней версии FS 5.0 эта программа позволяет пользователю генерировать собственную игру в следующих аспектах:
■ Вы можете не только избрать для полёта один из приложенных к игре самолетов, но и "сконструировать" свой собственный. Он будет иметь самостоятельную коммерческую ценность, и им сможете воспользоваться не только Вы, но и Ваши друзья, знакомые, клиенты.
■ Вы можете разработать собственный сценарий игры, в который войдет география и топография окружающего мира, городские пейзажи (может быть и реальные), погодные условия, время суток, время года и многое другое. Этот сценарий также имеет самостоятельную ценность.
Любители этой игры объединены в Ассоциацию и только в США эта Ассоциация насчитывает более 2-х миллионов членов.
Представляете себе, насколько выиграет программа, написанная Вами, если пользователи смогут её развивать и дорабатывать и на её основе как-то ассоциироваться?!
Прием-i ассоциирования.
Ассоциировать своих потенциальных клиентов всегда очень приятно. Если Вы написали программу, которую с трудом можно распространить среди десятка друзей, получив от них в лучшем случае по шоколадке, то это уже большой коммерческий успех Вашего дела. Но если в этой программе есть какой-то момент, который "заденет за живое" её будущих пользователей и побудит их вступить с Вами в контакт и как-то ассоциироваться вокруг Вас, тогда можете считать, что свою карьеру Вы сделали. Получить банк потенциальных клиентов/партнёров размером не то, что в 2 млн. человек, а хотя бы в две тысячи - мечта любого из отечественных авторов программ. Это залог успешной и плодотворной работы на долгие годы вперед.
Так, например, сейчас "Инфорком-Пресс" и фирма "Геймос" совместно начинают "раскрутку" проекта "Боевых змей".
На первом этапе "Геймос" распространил бесплатно по России демонстрационную версию своей программы. Теперь каждый желающий может создавать простейших "бойцов" и устраивать собственные турниры. Но только "простейших", поскольку высший уровень программирования - ЭКСПЕРТ в демонстрационной версии отсутствует.
Для получения полной рабочей версии надо заплатить деньги. Не очень большие, но чувствительные - 6 долларов США (в рублях по курсу). Правда, при этом покупатель получает ещё и регистрационную карточку, которая дает ему право присылать своих "питомцев" на проходящий постоянно "Всероссийский турнир". В ближайший год этот турнир может стать уже и международным. Скоро начнется дистрибуция "Боевых Змей" в США.
Уже сейчас идет формирование призового фонда. Первые 50 участников турнира получат поощрительный приз - одну из игр фирмы "Геймос" в фирменной упаковке. Тройка лучших будет ежемесячно получать более солидные призы. На будущее есть договоренность с крупными, в том числе и международными компаниями о спонсировании таких чемпионатов, когда они станут международными.
Хорошо также иметь контакт со средством массовой информации, желательно с электронным. Так, в случае с "Боевыми Змеями" продвижению проекта поможет "PC-REVIEW" (на дискете с очередным номером журнала будут распространяться несколько лучших змей текущего месяца, что даст возможность каждому пользователю в любом уголке страны сравнивать собственных "воспитанников" с выходцами из лучших террариумов Правда, самая первая тройка текущих призеров будет только объявляться, а распространяться не будет. Она останется тайной от всех до тех пор, пока кто-то не вытеснит их на более низкое место).
Если Вы создадите подобную программу для "Спектрума" и тоже захотите организовать подобный турнир, то в его освещении Вам поможет "ZX-РЕВЮ", а образцовых "бойцов" (то ли это будут драконы, то ли роботы, мы конечно этого еще не знаем) с радостью будет пропагандировать журнал "СПЕКТРОФОН".
Работая над своими проектами, уважаемые авторы, имейте в виду, что у Вас есть, на кого опереться. Для того электронные журналы и создаются, чтобы использовать их уникальные возможности по передаче компьютерной информации.
* * *