Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Компьютерные игры в Линукс

NERO 2.0 - битва нейросетей

Оригинал: NERO game evolves to version 2.0
Автор: Nathan Willis
Дата: 25 сентября 2007
Перевод: Александр Тарасов aka oioki
Дата перевода: 27 ноября 2007

При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!

В прошлом году мы проводили обзор Neuro-Evolving Robotic Operatives (NERO), уникальной игры, в которой игроки тренируют самоуправляющихся ботов, а затем посылают их на борьбу друг с другом. Эта борьба происходит без вмешательства со стороны игрока - соревнуется только искусственный интеллект. Недавно вышла новая версия NERO, в которой было добавлено много новых функций.

NERO разработана группой Neural Networks Research Group отделения Computer Science Техасского университета в Остине, это проект для работы в классах и в то же время разработка в области машинного обучения.

Игра построена на проприетарном игровом движке Torque, тем не менее доступны свободные бинарные пакеты для Linux, Mac OS X и Windows. Новая версия имеет номер 2.0 и является первой значимой версией с 2005 года. Если у вас есть желание сравнить ее с предыдущими версиями, то пожалуйста - все еще можно загрузить бинарные файлы серии 1.X. Каждый пакет самодостаточен, можно смело устанавливать обе версии, при этом конфликта не будет.

Пакет для Linux представляет собой сжатый gzip tar-архив (т.н. tarball); загрузив его, распакуйте в любое место своей системы. Игра может быть скомпилирована лишь на машине 32-битной Intel архитектуры, с установленной Linux, при этом для поддержки звука потребуется библиотека OpenAL. Из распакованного каталога игру можно запустить командой ./nero.bin.

Одно предостережение: в этой сборке NERO почему-то полностью грузится процессор, когда окно игры активно. Когда окно скрыто, нагрузка на процессор снижается. Есть официальный форум проекта, но пока что никто не описал эту проблему. Такое происходило на обеих Linux-машинах, на которых я пробовал NERO. Учитывая, что это исследовательский проект, ошибки не являются неожиданностью. Поэтому во время долгих тренировочных сессий я сохранял состояние NERO в core-dump. Хотя я не уверен, что это мне поможет в случае падения.

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

Как и в NERO 1.X, сначала вы проводите время, тренируя свою армию, а затем посылаете ее на врага и смотрите, добьется ли она успеха. В новой версии NERO 2.0 появляются новые возможности на обоих этапах игры.

Средства управления

Ветераны NERO сразу заметят небольшие изменения в управлении.


Рисунок 1. Новые элементы управления

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

Был освобожден большой кусок экрана посредством устранения панели размещения противников, который раньше (в NERO 1.X) занимал целый угол экрана. Все его функции теперь доступны из радиального контекстного меню - просто нажмите правой кнопкой в любом месте карты и выберите нужный объект. Эта процедура применяется для размещения врагов, стен и флагов.

С другой стороны, другие элементы управления (например, бегунки "approach enemy range" (расстояние, на котором держаться от противника) и "lifetime" (длительность жизни)) теперь занимают слишком мало места, и их становится неудобно использовать. Чтобы узнать, какой бегунок за что отвечает, нужно навести на него мышь, выпадет краткое описание. Теперь в этих бегунках не показываются численные значения выбранных параметров, и вам придется выставлять эти параметры визуально, "на глаз".

Новинкой в режиме обучения является кнопка Graphs, с помощью которой можно просматривать в реальном времени данные о развитии нейросетей ваших армий. Однако эти графики крайне нуждаются в разъяснениях, в обучении или хотя бы в документации к игре. Может они и понятны для программистов и разработчиков искусственного интеллекта, но в таком сыром виде они имеют небольшую ценность для игрового процесса. Хотя могут иметь, ведь существует множество интуитивно понятных оценок, к примеру, "физическая готовность" или "ум".

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

Геймплей

В NERO 1.x был только один режим игры - Deathmatch; на карте сражаются две команды, побеждает та, которая полностью уничтожит противника, либо совершит больше убийств до того момента, как истечет время.

NERO 2.0 предлагает новый режим игры - контроль территории. Объекты для захвата отмечены на боевой карте. Контрольные точки выглядят как гигантские металлические столбы, каждый из них может служить как пункт сбора или вызова ваших солдат. Чем больше контрольных точек вы захватите, тем больше солдат вы сможете размещать на поле сражения.


Рисунок 2. Режим контроля территории

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

Люди, которым Deathmatch в NERO казался недеятельностным, смогут больше реализовать себя в контроле территории. С другой стороны, игрокам, предпочитающим больше наблюдать, не понравится режим контроля территории и его зависимость от несовершенного человеческого интеллекта. Так вот зачем нам нужны роботы! Чтобы они дрались за нас.

Плюсы и минусы

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

Во-первых, в NERO 1.X друзей и врагов можно было различать тремя способами: различные модели роботов (синей и красной окраски), оружие ведет огонь разными цветами (также синим и красным), и все роботы окружены пульсирующими кольцами разных цветов (синим и красным).


Рисунок 3. Группа идет выполнять задание

В NERO 2.0 убраны разноцветные кольца, и теперь сложно отличить своих от врагов. Для того чтобы узнать, чей это робот, придется приближать камеру. В режиме контроля территории это вдвойне неприятно, ведь порождать роботов можно лишь нажимая на контрольных точках - для идентификации робота нужно приблизить камеру, затем вернуть ее на место и если это враг, выбрать точку, куда поместить группу солдат, которые бы разобрались с неприятелем. Так что мне кажется, что включение/выключение цветных колец должно быть настраиваемым параметром.

Второе, не достаточно гибкое управление камерой. При помощи клавиш w-a-s-d можно перемещать камеру по поверхности, но нельзя перемещать вверх и вниз. Единственный способ двигаться вверх/вниз - это сменить вид с помощью клавиши m, посмотреть вверх/вниз и использовать кнопки w и s для движения в соответствующем направлении. В действительности перемещаться проще в режиме мыши, но при этом невозможно взаимодействие с объектами, что существенно портит впечатление от игры в режиме контроля территории.

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

Открытый исходный код

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

Исходный код алгоритмов, используемых в искусственном интеллекте NERO, открыт. Более того, разработчики обещают, что в скором времени вся игра будет распространяться с исходными кодами. Главное препятствие этому - это, конечно, проприетарный движок Torque.

За это лето небольшая группа разработчиков NERO начала работу над открытым клоном NERO 2.0, который был неофициально назван OpenNERO. Группа пока не готова показать исходный код своего проекта, но они дают понять, что будет из себя представлять новый проект.

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

Программист Игорь Карпов объясняет, что "хотя первым шагом будет пересоздание основной части функциональности NERO 2.0, но в дальнейшем будет больше в общем - будет несколько игр с несколькими методами ИИ, не только NERO/NEAT". Его товарищ Джон Шеблак написал на форуме сообщества NERO, что группа планирует реализовать поддержку гибких пользовательских режимов игры.

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

Между тем, NERO 2.0 бросает игрокам новый вызов - долгожданное дополнение к миру игр Linux.

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