Введение

Текстовая многопользовательская онлайн-система виртуальной реальности MOO ("MUD, объектно-ориентированная") – это система виртуальной реальности, работающая на основе текста, к которой одновременно подключены несколько пользователей (игроков). Термин MOO используется в двух различных, но взаимосвязанных значениях. Одно – для обозначения программ, произошедших от оригинального сервера MOO, а другое – для обозначения любого MUD, использующего объектно-ориентированные методы для организации своей базы данных объектов, особенно если это делается аналогично оригинальному MOO или его производным. Большая часть данной статьи посвящена оригинальному MOO и его прямым потомкам, но см. раздел "MOO-подобные системы, не являющиеся потомками" для списка систем, подобных MOO. Оригинальный сервер MOO был разработан Стивеном Уайтом, основываясь на его опыте создания программируемой системы TinyMUCK. Дополнительная разработка и поддержка осуществлялись основателем LambdaMOO и бывшим сотрудником Xerox PARC Павлом Кертисом. Одной из наиболее отличительных особенностей MOO является возможность для пользователей выполнять объектно-ориентированное программирование непосредственно на сервере, тем самым расширяя и изменяя его поведение для всех. Примеры таких изменений включают создание новых комнат и объектов, разработку новых универсальных объектов для использования другими пользователями и изменение работы интерфейса MOO. Для расширения функциональности используется язык программирования MOO, и многие MOO предоставляют удобные библиотеки команд (глаголов), которые программисты могут использовать в своем коде, известные как Утилиты. Язык программирования MOO является предметно-ориентированным языком.

Предыстория

MOO – это сетевые, многопользовательские, программируемые, интерактивные системы, хорошо подходящие для создания текстовых приключенческих игр, конференц-систем и другого кооперативного программного обеспечения. Однако наиболее распространенное их применение – это многопользовательские виртуальные миры с низкой пропускной способностью. Они использовались в учебных заведениях для дистанционного обучения, совместной работы (например, в Diversity University), систем группового принятия решений и обучения объектно-ориентированному программированию; но другие ориентированы преимущественно на социальное взаимодействие, используются для ролевых видеоигр или просто для использования возможностей программирования. Они также применялись в научных исследованиях, посвященных ощущению присутствия в виртуальной среде. Чаще всего пользователи подключаются к MOO с помощью клиента, использующего протокол telnet, который обеспечивает постоянное соединение с сервером для передачи данных и отправки команд. Некоторые MOO разработали веб-интерфейсы или другие подобные методы; однако это обычно ограничивает взаимодействие пользователя, зачастую сводя его к возможности просматривать объекты и получать общую информацию. Развитие меж-MOO сетевого взаимодействия привело к созданию SunNET – сети без центрального узла, обеспечивающей связь между MOO и добавляющей новые возможности для разработки, включая сетевые каналы. Другая сеть, GNA NET, разработанная Густаво Глусманом из BioMOO, объединила семнадцать учебных площадок. Большинство этих MOO использовались для проведения онлайн-занятий и других ранних форм дистанционного образования. Каждый MOO хранит содержимое и состояние всех своих объектов в постоянной объектной базе данных, что предотвращает их потерю при перезагрузке серверного программного обеспечения MOO или компьютера, на котором оно размещено. Новые MOO должны выбрать начальную базу данных для настройки или использовать минимальную, содержащую только необходимые объекты для запуска MOO. Существует несколько таких базовых баз данных MOO, которые служат основой кода и утилит для запуска MOO, включая LambdaCore (от LambdaMOO), MinimalDB (считается минимальным необходимым набором кода и утилит для эффективной работы в MOO), JHCore (от Jay's House Moo) и enCore (от LinguaMOO). Каждому объекту в MOO присваивается номер, по которому к нему можно обращаться, добавляя перед ним символ #, а также по имени, когда пользователь находится рядом с объектом. Администраторы, также известные как волшебники (wizards), могут управлять MOO и присваивать объектам определенные глобальные имена, добавляя перед ними символ $, процесс, известный как corifying. Также реализованы системы родительских объектов, и каждый объект имеет родителя, который обычно ведет к корневому классу, также известному как #1. #0 зарезервирован для специального системного объекта, отвечающего за управление списком глобальных имен, входящими сетевыми соединениями и другой информацией, необходимой для работы системы.

Социальное поведение на МОО

Поведение в социальных MOO и ролевых MOO различается. Например, одно из первых исследований рассматривало, вовлекаются ли пользователи в смену гендера (то есть, принимают другой гендер онлайн). Большинство участников (60 процентов) в социальных MOO никогда не меняли гендер, в то время как большинство (56,7 процента) в ролевых MOO это делали. Однако большинство тех, кто менял гендер, делали это в среднем лишь 10 процентов времени. Исследование также показало, что основным препятствием для смены гендера является убеждение в том, что это нечестно и манипулятивно.

Текущие проекты на основе МОУ

Stunt – это ответвление, обратно совместимое с кодом последнего сервера MOO. Оно добавляет множественное наследование, анонимные объекты, встроенную поддержку HTTP, разбор и генерацию JSON, встроенный тип данных «карта» и улучшенные криптографические примитивы. Codepoint – это попытка расширить LambdaMOO для поддержки символов Unicode. Изначально проект был начат H. Peter Anvin с использованием libucd, небольшой библиотеки, реализующей функции базы данных символов Unicode без излишней сложности. В настоящее время проект разрабатывается Джеймсом С. Дейкуном, Робертом Лесли и Кенни Рутом с целью последующей интеграции в основную дистрибуцию LambdaMOO. ToastStunt – это ответвление сервера Stunt, предназначенное главным образом для добавления новых функций. Среди них: 64-битные целые числа, поддержка SQLite, регулярные выражения, совместимые с Perl, фоновые потоки функций, хеширование Argon2id, перехват управляющих символов Telnet (IAC), поддержка профилирования, повышение производительности и десятки дополнительных встроенных функций и улучшений.

Непоследовательные МОО

Некоторые серверы используют объектно-ориентированные характеристики в стиле "MOO", но не являются прямыми потомками оригинального сервера MOO – в том смысле, что они используют мало или совсем не используют его исходный код и применяют внутренние языки, которые в большей или меньшей степени несовместимы с языком программирования MOO. Ни один из них не достиг популярности LambdaMOO или его производных. Стивен Уайт впоследствии создал новую, похожую систему под названием CoolMUD, однако она так и не приобрела столь же широкую пользовательскую базу, как MOO. Другой проект программируемого объектно-ориентированного MUD-сервера – ColdMUD, написанный Грегом Хадсоном и позднее поддерживаемый Брэндоном Гиллеспи под именем "Genesis". Один необычный MOO, не имеющий фактической связи с оригинальным MOO, называется mooix. mooix уникален среди MUD тем, что использует базовую операционную систему UNIX для обработки всех задач многозадачности и сетевого взаимодействия. Это приводит к ряду уникальных побочных эффектов, одним из которых является возможность программирования MOO на любом языке. mooix был создан после неудачной попытки Джоуи Хесса написать MOO целиком на Perl, под названием perlmoo.

Доступ

Участники (обычно именуемые пользователями) подключаются к MOO посредством telnet или другой, более специализированной клиентской программы. После подключения им обычно отображается приветственное сообщение, объясняющее, как создать нового персонажа или войти в существующего. Практически каждая команда разбирается сервером и преобразуется в вызов процедуры MOO, или "глагола", который выполняет соответствующее действие. Таким образом, программирование на языке MOO является ключевым элементом для создания существенных расширений базы данных и, как следствие, виртуальной реальности.

Администрация

Все MOO предоставляют флаг с названием Wizard. Когда этот флаг установлен у игрока, он получает возможность просматривать и изменять практически всё в базе данных MOO. Такие игроки обычно составляют основу для администрирования MOO. Назначенных владельцев MOO иногда называют Архимагами. Эти волшебники могут ограничивать доступ к MOO, публиковать новости и просматривать журналы. Для изменения и даже выполнения глаголов и свойств, которым пользователь не является владельцем или которые не являются общедоступными для чтения/записи, требуются права волшебника. Все глаголы и свойства внутри объектов имеют соответствующие флаги, которые пользователь может изменять для определения их текущего состояния.

Социальные МОУ

LambdaMOO был создан одновременно с сервером и продолжал существовать, несмотря на замедление разработки серверного программного обеспечения. Это был первый публичный МОО. JaysHouseMOO – социальный МОО, запущенный Джеем Карлсоном в Университете штата Миннесота в Манкато в 1992 году. Он содержал первый gopher-сервер, реализованный на языке MOO, и также был отмечен Netscape как имеющий веб-сервер. В 90-е годы считался местом встреч элиты программистов МОО. Среди них были бывшие и действующие разработчики кода LambdaMOO: Роджер Крю, Эрик Остром, Джей Карлсон и Бен Джексон. vertical align=sup ("Цифровое метро") был основан в 1994 году в рамках проекта De Digitale Stad ("Цифровой город Амстердам") и является одним из первых нидерландских МОО. BayMOO – социальный МОО, основанный в октябре 1993 года. Он во многом основан на Сан-Франциско и его окрестностях. Часть времени он размещался в SFSU. BayMOO также размещал FactoryNet – специализированный МОО для NIST. В декабре 1994 года он был одним из МОО, выбранных для проведения четырехдневного "Cyberspace Tour" группы Aerosmith, спонсором которого выступила EFF. Ранее в том же году здесь также проходила встреча Cypherpunks. Являлся частью межсетевых объединений SunNET и GNA NET. IDMOO – МОО, базирующийся в Нью-Йорке, запущенный программистами из LambdaMOO и PMCMOO, которые считали, что пространства МОО становятся слишком подвержены социальным нормам, разработанным для не виртуальных сред. IDMOO был онлайн несколько лет в конце 1990-х и известен тем, что принимал раннее виртуальное BDSM-сообщество и Plaintext Players. SchoolNet MOO был запущен в середине 1990-х и финансировался SchoolNet до 1998 года, когда он был переименован в MOO Canada, Eh? SchoolNet MOO был особенно популярен в регионе Оттавы, Канада, благодаря его использованию в Virtual Ventures при Университете Карлтона и участию представителя Actua (в то время известного как YES VACC) в качестве образовательной платформы по компьютерному программированию для молодежи в возрасте 8–18 лет.

Меморандумы о взаимопонимании

MediaMOO предназначен для профессиональных исследователей в области медиа и в настоящее время размещен на факультете английского языка Северного Иллинойского университета. Он был первоначально создан в 1993 году Эми Брукман в Группе эпистемологии и обучения при Лаборатории медиа MIT. В период своего расцвета, около 1996 года, в MediaMOO насчитывалось более 1000 участников, он управлялся избранным советом и регулярно проводил встречи, включая Tuesday Cafe – еженедельные обсуждения членов сообщества, занимающихся компьютерами и письмом. Он по-прежнему доступен, хотя и в основном неактивен, и больше не находится под руководством Брукман.

Образовательные МОУ

Университет разнообразия, первый специализированный образовательный МОО, созданный Жанной МакУортер в 1993 году. Postmodern Culture MOO (PMC2 или PMCMOO) — это МОО, размещенный Институтом передовых технологий в гуманитарных науках (IATH) при Университете Вирджинии, который был очень активен в середине 1990-х годов. В нем обсуждались вопросы постмодернистской культуры в тщательно запрограммированных пространствах, включая фрагмент Nighttown из романа Джеймса Джойса «Улисс». Некоторые архивы остаются в сети. , конструкционистский обучающий образовательный МОО, предназначенный для обучения детей в возрасте от 9 до 13 лет. Он был разработан Эми С. Брукман в 1996 году в качестве своей докторской диссертации и был назван одним из «самых заметных исследований МОО в области образования». Он закрылся в 2007 году после 11 лет работы в сети. BioMOO был профессиональным МОО, запущенным Густаво Глусманом и Хайме Прилуски в Институте науки Вейцмана в 1993 году. Это было виртуальное пространство для биологов, чтобы встречаться, проводить коллоквиумы и конференции и изучать серьезные возможности МОО как среды. Эти профессиональные мероприятия были отмечены в статье под названием «Киберпространство предоставляет возможность заниматься «практически» реальной наукой», опубликованной в журнале Science. BioMOO Wizards создали портативный поднабор сервера BioMOO, названный Виртуальным конференц-центром, и представили его в качестве доклада на виртуальной научной конференции, а также использовали VCC для проведения другой виртуальной научной конференции. BioMOO имел VR веб-интерфейс. За восемь лет своей деятельности BioMOO провел множество профессиональных мероприятий, включая курсы Виртуальной школы естественных наук по биокомпьютингу и принципам структуры белков. Прилуски и Глусман также выпустили в 1994 году пакет File Utilities — модификацию сервера МОО, обеспечивающую прямой, но контролируемый доступ к базовой файловой системе. Глусман также разработал межМОО-сеть GNA. LinguaMOO — образовательный МОО, посвященный общим исследованиям в области искусства и гуманитарных наук, созданный в 1995 году Синтией Хейнес из Университета Техаса в Далласе и Яном Руне Холмевиком из Университета Бергена. Многие образовательные МОО используют систему enCore, производную от LinguaMOO, в качестве ядра базы данных МОО. Хейнес и Холмевик опубликовали две книги об образовательном использовании МОО. MundoHispano был основан в 1994 году Лонни (Турби) Чу и Кензи Мадж (Сиракузский университет), содиректорами которого были Тереза Миник (Кентский государственный университет) и Грег Янгер (Экономический институт). Это был первый МОО на испанском языке, с испанскими командами и диакритическими знаками, созданный для носителей языка, изучающих и преподающих испанский язык. На пике популярности на сайте было зарегистрировано более 4000 пользователей из более чем десятка стран. ATHEMOO начал свою деятельность в 1995 году в Университете Гавайев и представлял собой онлайн-платформу для выступлений и обучения для ученых и профессионалов, интересующихся театром. В период расцвета в ATHE и ATHEMOO было вовлечено 2200 человек.

Игры MOO

HellMOO была ролевой MOO, существующей в сети с 2004 года. Она была выполнена в постапокалиптическом сеттинге, но также содержала множество элементов научной фантастики, эротики, киберпанка и отсылок к поп-культуре.