Действительно, Субъектам достаточно обмениваться сообщениями о состояниях, а не сериями команд управления, как принято при управлении Объектами.
В любом случае, для формализации класса Субъекта все же понадобится разработка дополнительных спецификаций и стандартов, чтобы облегчить и систематизировать как сам процесс программирования, так и процесс использования подобных приложений в будущем.
Однако уже сейчас можно сформулировать несколько правил, которые могут использоваться при создании Субъекта.
в каждом Субъекте должен присутствовать как минимум один «счетчик жизни»;
в каждом Субъекте должны присутствовать роли запуска и завершения работы приложения;
в каждом Субъекте должна присутствовать «пустая роль» или «роль по умолчанию», которая выполняется в неопределенных состояниях либо в режиме ожидания;
алгоритм выполнения той или иной последовательности действий (роли) не должен быть вшит или «размазан» по программному коду, он должен иметь вид отдельной структурной секции программы;
вызов отдельных методов Субъекта извне допускается, но нежелателен;
в каждом Субъекте должен быть предусмотрен интерфейс обмена информацией с другими Субъектами системы;
все роли Субъекта должны быть подробно документированы в секции описания ролей.
По мере развития глобальных информационных систем и систем компьютерного моделирования реальной действительности субъектное программирование становится все более востребованным. Затраты на расширение функциональности таких систем растут в геометрической прогрессии, поэтому удешевление их разработки весьма актуально.
А для разработки систем, состоящих из множества приложений (от нескольких десятков до тысяч), технология субъектно-ориентированного программирования должна стать основополагающей, и кто знает, может быть, она заложит основу для следующего шага в программировании — создания сложных самоорганизующихся интеллектуальных систем!
Любопытно, что упоминаемая в статье switch-технология предложена российским ученым, представителем Гавриловской школы[ Школа по теории дискретных устройств была организована членом-корреспондентом АН СССР Михаилом Александровичем Гавриловым в конце 1960-х годов] А. А. Шалыто. Она основана на применении в программировании идей теории систем управления. Автор первоначально предложил ее для алгоритмизации и программирования систем логического управления, в которых ввод входных воздействий выполняется по опросу (как, например, в программируемых логических контроллерах и других подобных задачах).
В этой технологии базовым является понятие «состояние». Добавляя к нему понятие «входное воздействие», мы получаем «автомат без выхода». А дополнив технологию «выходным воздействием», мы получаем: автомат = состояния + входные воздействия +выходные воздействия. Соответствующий подход был назван «автоматным программированием».
В дальнейшем Шалыто и Н. И. Туккель развили этот подход для программирования более широкого класса задач. Авторы приводят пример применения switch-технологии при разработке системы управления дизель-генератором, реализуемой на промышленном компьютере с операционной системой QNX, в которой управляющая программа выполняется как один процесс, а программа, моделирующая объект, — как другой процесс. При этом был создан вариант switch-технологии для разработки программного обеспечения более широкого класса систем управления — «реактивных» (reactive), реагирующих на события. Такие системы обычно реализуются на промышленных компьютерах, работающих под управлением ОС реального времени. Рассмотренный подход является процедурным, а соответствующий стиль программирования был назван «программирование с явным выделением состояний»; существует и объектно-ориентированное программирование с явным выделением состояний.
Еще одна область применения автоматного программирования — классические алгоритмы, и в частности, построение визуализаторов алгоритмов.
У автоматных методов большое будущее, и хотя это научное направление все еще находится в стадии становления, switch-технология имеет все шансы занять достойное место в программировании.
Подробнее на эту тему можно прочитать в книге Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. — СПб.: Наука, 1998. Или на сайтеis.ifmo.ru.
www.goldenforests.ru/games/2005/gp-ek/newsite/you-know-what.html]
В любом случае, для формализации класса Субъекта все же понадобится разработка дополнительных спецификаций и стандартов, чтобы облегчить и систематизировать как сам процесс программирования, так и процесс использования подобных приложений в будущем.
Однако уже сейчас можно сформулировать несколько правил, которые могут использоваться при создании Субъекта.
в каждом Субъекте должен присутствовать как минимум один «счетчик жизни»;
в каждом Субъекте должны присутствовать роли запуска и завершения работы приложения;
в каждом Субъекте должна присутствовать «пустая роль» или «роль по умолчанию», которая выполняется в неопределенных состояниях либо в режиме ожидания;
алгоритм выполнения той или иной последовательности действий (роли) не должен быть вшит или «размазан» по программному коду, он должен иметь вид отдельной структурной секции программы;
вызов отдельных методов Субъекта извне допускается, но нежелателен;
в каждом Субъекте должен быть предусмотрен интерфейс обмена информацией с другими Субъектами системы;
все роли Субъекта должны быть подробно документированы в секции описания ролей.
По мере развития глобальных информационных систем и систем компьютерного моделирования реальной действительности субъектное программирование становится все более востребованным. Затраты на расширение функциональности таких систем растут в геометрической прогрессии, поэтому удешевление их разработки весьма актуально.
А для разработки систем, состоящих из множества приложений (от нескольких десятков до тысяч), технология субъектно-ориентированного программирования должна стать основополагающей, и кто знает, может быть, она заложит основу для следующего шага в программировании — создания сложных самоорганизующихся интеллектуальных систем!
Любопытно, что упоминаемая в статье switch-технология предложена российским ученым, представителем Гавриловской школы[ Школа по теории дискретных устройств была организована членом-корреспондентом АН СССР Михаилом Александровичем Гавриловым в конце 1960-х годов] А. А. Шалыто. Она основана на применении в программировании идей теории систем управления. Автор первоначально предложил ее для алгоритмизации и программирования систем логического управления, в которых ввод входных воздействий выполняется по опросу (как, например, в программируемых логических контроллерах и других подобных задачах).
В этой технологии базовым является понятие «состояние». Добавляя к нему понятие «входное воздействие», мы получаем «автомат без выхода». А дополнив технологию «выходным воздействием», мы получаем: автомат = состояния + входные воздействия +выходные воздействия. Соответствующий подход был назван «автоматным программированием».
В дальнейшем Шалыто и Н. И. Туккель развили этот подход для программирования более широкого класса задач. Авторы приводят пример применения switch-технологии при разработке системы управления дизель-генератором, реализуемой на промышленном компьютере с операционной системой QNX, в которой управляющая программа выполняется как один процесс, а программа, моделирующая объект, — как другой процесс. При этом был создан вариант switch-технологии для разработки программного обеспечения более широкого класса систем управления — «реактивных» (reactive), реагирующих на события. Такие системы обычно реализуются на промышленных компьютерах, работающих под управлением ОС реального времени. Рассмотренный подход является процедурным, а соответствующий стиль программирования был назван «программирование с явным выделением состояний»; существует и объектно-ориентированное программирование с явным выделением состояний.
Еще одна область применения автоматного программирования — классические алгоритмы, и в частности, построение визуализаторов алгоритмов.
У автоматных методов большое будущее, и хотя это научное направление все еще находится в стадии становления, switch-технология имеет все шансы занять достойное место в программировании.
Подробнее на эту тему можно прочитать в книге Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. — СПб.: Наука, 1998. Или на сайтеis.ifmo.ru.
www.goldenforests.ru/games/2005/gp-ek/newsite/you-know-what.html]
Классификация, которой на самом деле нет
Как мы уже говорили, общепринятой классификации ролевых игр не существует, хотя какое-то деление, разумеется, есть. Чаще всего игры делятся по месту проведения. Это так называемые кабинетки, павильонки, полигонки и городские игры.
Кабинетки, они же кабинетные игры, обычно проходят в квартире или другом небольшом помещении и, как правило, рассчитаны на десять-пятнадцать человек. Изредка, если квартира позволяет, количество участников может достигать двадцати пяти. Чаще всего существует какая-то игровая причина, по которой персонажи на протяжении игры не могут или не хотят покинуть это место. Обычно моделируются небольшие замкнутые пространства: космический корабль, занесенная снегом усадьба, подводная лодка.
Продолжительность таких игр — от четырех до двенадцати часов (очень часто играют часов с восьми вечера и до утра).
Павильонки, они же павильонные игры, собирают до полутора сотен участников и проходят, как правило, в нескольких просторных помещениях и прилегающих коридорах. Кроме того, павильонные игры часто бывают «многосессионными», то есть состоят из нескольких частей. Люди собираются и играют, например, каждую субботу в течение месяца по несколько часов, продолжая один и тот же сюжет. Перерывы логически обосновываются (могут, скажем, разыгрываться еженедельные приемы при дворе императора или регулярные заседания правительства).
Полигонной называют любую игру, которая проходит на природе, то есть «на полигоне». Основная масса проводится с мая по сентябрь, но изредка случаются и зимние — для особо морозоустойчивых. Такая игра не ограничена ни количеством участников, ни продолжительностью, ни сюжетом. Это могут быть пятнадцать человек, собравшихся на один вечер в соседнем парке, а могут быть и сотни, съехавшиеся со всей страны. Самые распространенные форматы полигонных игр — примерно 150, 300 или 500 участников. Хотя никогда нельзя предугадать, сколько человек доберутся до полигона: могут неожиданно приехать незаявленные игроки или, наоборот, соберутся не все (если, например, внезапно испортится погода).[Рекорд ролевых игр — 2,5тысячи участников]
Особняком стоят городские игры. Они проходят в режиме реального времени, без отрыва от повседневной жизни. На протяжении некоторого заранее оговоренного срока (от нескольких дней до двух недель) участники игры живут как бы в двух реальностях одновременно. Игровые события могут как дополнять повседневную жизнь, так и существовать параллельно. В городской игре могут участвовать от нескольких десятков до нескольких сотен игроков.
Кто на новенького, или Трудно быть богом
На игре люди делятся на мастеров и игроков. Первые делают игру для вторых. На некоторых играх присутствуют также игротехники — люди, которые, участвуя в игровом процессе, не преследуют собственные цели, а выполняют поставленные мастерами задачи (например, игротехник может играть героя, которому предстоит умереть в самом начале игры, или распространять определенную информацию).
Подготовка к игре — это совместная работа мастеров и игроков. Игроки пишут заявки, продумывают квенты (историю персонажей), шьют костюмы, готовят антураж. Прошли те времена, когда плащ из занавески годился на все случаи жизни. Сегодня подготовка костюма к игре — трудоемкий процесс, требующий времени и денег. Что не мешает безденежным студентам выкручиваться и создавать роскошные одеяния буквально из ничего. Впрочем, все это не отменило актуальности занавески — любая швея скажет вам, что лучшие исторические придворные костюмы получаются из портьерной ткани. Мастера, в свою очередь, пишут правила, помогают игрокам найти родственников, друзей и врагов на игру, продумывают, чем они будут заниматься. Но не следует воспринимать мастера как своеобразного массовика-затейника, который берет на себя обязательство развлекать игроков. Он только создает условия для насыщенной интересной игры, предоставляет возможность каждому найти себе приключения по душе, а воспользоваться предоставленной возможностью — это уже дело игрока. Хороший игрок умеет закрутить вокруг себя события и людей, «сделать» себе и окружающим интересную игру.
Несомненно, главное, что дают людям ролевые игры, — это возможность реализовать себя в самых неожиданных областях. А кроме того — попробовать всё, прожить много маленьких, не похожих друг на друга жизней, чтобы потом не ошибиться, выбирая свое место в одной, большой и «настоящей». И многие приходят именно за этим. А кто-то находит в ролевом движении ту самую свою — большую и настоящую.
Глоссарий
Заявка — письмо, которое игрок отправляет мастеру и в котором говорит, на какую роль он претендует, а также описывает свое видение персонажа. Если речь идет об одном из ключевых персонажей — рассказывает о своем игровом опыте. Обычно требуется сообщить минимум данных о себе — как правило, имя и фамилию, возраст и медицинские противопоказания (для полигонных медиков).
Квента — биография, которую игрок придумывает для своего персонажа и исходя из которой действует на игре. Слово произошло от квэнийского quenta — история (quenya — язык эльфов, придуманный Толкиеном).
Квест — конкретная задача, которая стоит перед персонажем на игре. «Пойди туда, не знаю куда, принеси то, не знаю что». От англ. quest — поиск.
Мастер — создатель игры. Он вырабатывает правила, продумывает сюжетные завязки и является последней инстанцией в решении спорных вопросов. На больших играх существует команда, состоящая из мастеров-специалистов (которые ведают узкой областью — экономикой, боевыми взаимодействиями, магией, костюмами, сюжетом и т. д.), региональщиков (которые координируют игроков из определенной игровой локации и решают срочные вопросы на местах) и главмастера.
Мертвятник — место, в котором игроки проводят некоторое время после гибели своего персонажа, прежде чем выйти новыми.
Бывает неигровым (люди приходят в себя, пьют чай, пишут сочинения на тему «моя жизнь и смерть», вместе с мастером придумывают себе новую роль) и игровым (игровые события продолжаются и по ту сторону жизни).
Реконструктор — человек, подробно изучающий какой-то конкретный период истории (чаще всего только один). Он стремится максимально точно воссоздать быт и материальную культуру интересующего его народа. Полная реконструкция подразумевает в том числе соответствующий эпохе способ производства — то есть костюмы, например, шьют вручную, используют только натуральные ткани и т. п.
АНАЛИЗЫ: Обезьяний_Процесс.ru: Эволюция мастдай!
Автор: Кирилл Еськов
Умный питерский писатель Андрей Лазарчук недавно меланхолично заметил в своем ЖЖ, что едва ль не все «цивилизованные» страны проходили в свое время через «Обезьяньи процессы»: «Поздравляю всех со вступлением России в этот клуб избранных. Это, наверное, такой обряд инициации». Он прав: попытки отменить судебным порядком эволюцию и в особенности лично обижающий многих факт собственного происхождения от обезьяны — где только ни предпринимались. Патриота скорей уж должно огорчать то, что Россия — опять в отстающих и проходит «инициацию» после уже переболевших этой корью Турции и Сербии.
Для тех, кто совсем «не в теме». Недавно двое деятелей рекламного бизнеса подали (от имени дочери одного из них) иск к Министерству образования с требованием изучать на уроках биологии, в качестве равноправной альтернативы дарвиновской теории эволюции, Теорию Божественного Творения («научный креационизм»). Подчеркиваю, если кто не понял: изучать это дело не на уроках Закона Божьего (ака «Основы православной культуры»), а в курсе биологии. Свои претензии к Дарвину один из истцов сформулировал в газетном интервью так: «Нам надоело поклоняться лжеучениям. Теория Дарвина псевдонаучная. Я читал его книги — это просто детский сад. Прокатился на корабле, клювики птиц посмотрел — и вот тебе целое учение. Там множество допущений и предположений, многие из которых отвергнуты современной наукой. Это даже не теория, а лишь гипотеза. Ни одного доказательства ее справедливости нет. Это просто обман людей. Надоело: то Мавроди, то Дарвин» (конец цитаты).
Умный питерский писатель Андрей Лазарчук недавно меланхолично заметил в своем ЖЖ, что едва ль не все «цивилизованные» страны проходили в свое время через «Обезьяньи процессы»: «Поздравляю всех со вступлением России в этот клуб избранных. Это, наверное, такой обряд инициации». Он прав: попытки отменить судебным порядком эволюцию и в особенности лично обижающий многих факт собственного происхождения от обезьяны — где только ни предпринимались. Патриота скорей уж должно огорчать то, что Россия — опять в отстающих и проходит «инициацию» после уже переболевших этой корью Турции и Сербии.
Для тех, кто совсем «не в теме». Недавно двое деятелей рекламного бизнеса подали (от имени дочери одного из них) иск к Министерству образования с требованием изучать на уроках биологии, в качестве равноправной альтернативы дарвиновской теории эволюции, Теорию Божественного Творения («научный креационизм»). Подчеркиваю, если кто не понял: изучать это дело не на уроках Закона Божьего (ака «Основы православной культуры»), а в курсе биологии. Свои претензии к Дарвину один из истцов сформулировал в газетном интервью так: «Нам надоело поклоняться лжеучениям. Теория Дарвина псевдонаучная. Я читал его книги — это просто детский сад. Прокатился на корабле, клювики птиц посмотрел — и вот тебе целое учение. Там множество допущений и предположений, многие из которых отвергнуты современной наукой. Это даже не теория, а лишь гипотеза. Ни одного доказательства ее справедливости нет. Это просто обман людей. Надоело: то Мавроди, то Дарвин» (конец цитаты).