А для разработки систем, состоящих из множества приложений (от нескольких десятков до тысяч), технология субъектно-ориентированного программирования должна стать основополагающей, и кто знает, может быть, она заложит основу для следующего шага в программировании — создания сложных самоорганизующихся интеллектуальных систем!
Любопытно, что упоминаемая в статье switch-технология предложена российским ученым, представителем Гавриловской школы[ Школа по теории дискретных устройств была организована членом-корреспондентом АН СССР Михаилом Александровичем Гавриловым в конце 1960-х годов] А. А. Шалыто. Она основана на применении в программировании идей теории систем управления. Автор первоначально предложил ее для алгоритмизации и программирования систем логического управления, в которых ввод входных воздействий выполняется по опросу (как, например, в программируемых логических контроллерах и других подобных задачах).
В этой технологии базовым является понятие «состояние». Добавляя к нему понятие «входное воздействие», мы получаем «автомат без выхода». А дополнив технологию «выходным воздействием», мы получаем: автомат = состояния + входные воздействия +выходные воздействия. Соответствующий подход был назван «автоматным программированием».
В дальнейшем Шалыто и Н. И. Туккель развили этот подход для программирования более широкого класса задач. Авторы приводят пример применения switch-технологии при разработке системы управления дизель-генератором, реализуемой на промышленном компьютере с операционной системой QNX, в которой управляющая программа выполняется как один процесс, а программа, моделирующая объект, — как другой процесс. При этом был создан вариант switch-технологии для разработки программного обеспечения более широкого класса систем управления — «реактивных» (reactive), реагирующих на события. Такие системы обычно реализуются на промышленных компьютерах, работающих под управлением ОС реального времени. Рассмотренный подход является процедурным, а соответствующий стиль программирования был назван «программирование с явным выделением состояний»; существует и объектно-ориентированное программирование с явным выделением состояний.
Еще одна область применения автоматного программирования — классические алгоритмы, и в частности, построение визуализаторов алгоритмов.
У автоматных методов большое будущее, и хотя это научное направление все еще находится в стадии становления, switch-технология имеет все шансы занять достойное место в программировании.
Подробнее на эту тему можно прочитать в книге Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. — СПб.: Наука, 1998. Или на сайтеis.ifmo.ru.
ИГРЫ: Ролевые игры: Жизнь офлайн
Автор: Эмма Михейкина [email protected]
Компьютерная игра — это всегда имитация. Развитие технологий все сильнее приближает ее к реальности, но никакие пиксельные шейдеры и многомерный звук не способны свести это различие на нет. И если, например, любитель авиасимуляторов захочет узнать, каково на самом деле управлять настоящим боевым самолетом в боевых условиях — сделать это будет непросто. Особняком здесь стоят RPG, в которые можно легко поиграть «по-настоящему», безо всякого компьютера. Предлагаемая вашему вниманию статья посвящена именно таким живым ролевым играм. — И.Щ.
Объяснить человеку, который никогда не играл в ролевые игры, что это такое, — весьма непросто. Рассказать об этом явлении в одной статье и нигде не погрешить против истины — практически невозможно. Всегда найдутся люди, которые скажут, что «все было совсем не так, я знаю, я там был!»
Следует понимать, что все сказанное в этой статье — только одна из версий, которых существует великое множество. Ролевые игры как явление с трудом поддаются определению, описанию и классификации. Это одна из тех вещей, которые необходимо хоть раз попробовать самому. Потому что всякий опыт в данном случае уникален и не похож на предыдущие, поскольку каждый участник процесса приходит в игры за чем-то своим.
Ролевые игры — это вид интеллектуального развлечения для группы лиц, состоящего в моделировании различных жизненных ситуаций, с участием ведущего (мастера), исполняющего функции сценариста и арбитра.
Казалось бы, ролевые игры порождают гигантский информационный поток: сотни сайтов в Интернете, десятки периодических изданий, огромное количество художественных текстов, несколько защищенных диссертаций. Тем не менее все это информационное поле до сих пор хаотично: отсутствуют общепринятые термины, понятные любому, равно как и установленная раз и навсегда структура. Поэтому каждому следующему автору приходится выкручиваться, используя ролевой сленг и проговаривая определения каких-то ключевых понятий, дабы говорить с читателем на одном языке.
Мы поступим точно так же. Для дальнейшего понимания текста нам придется разграничить два понятия: ролевые игры и живые ролевые игры.
Ролевые игры — живые и не очень
Ролевая игра — более общий термин, обозначающий широкую категорию игр развлекательного и профессионального характера, связанных с выбором той или иной роли (модели социального поведения). В ролевые игры играют все, но не все об этом знают. Каждый из нас играет множество ролей — ребенка, родителя, подчиненного, начальника, слушателя, ученика, учителя, супруга, — и у каждого свой собственный список. Мы ведем себя по-разному в зависимости от обстоятельств, даже если нам кажется, что мы всегда остаемся собой. Умение вести себя — это умение правильно выбирать роль в каждой конкретной ситуации. Под ролевыми играми понимают огромное количество вещей, начиная от психологических тренингов и заканчивая театрализованными представлениями.
Нас интересуют так называемые живые ролевые игры. Это гораздо более узкое понятие, которое означает сознательную попытку пожить какое-то время в шкуре другого человека (или существа), производя от его лица какие-то действия, обусловленные обстоятельствами или необходимостью достичь поставленной цели. При этом все действия выполняются «как на самом деле», а не просто проговариваются или моделируются иным способом. Наиболее показательны в этом плане полигонные игры (те, которые проводятся на природе, на достаточно большом пространстве). Сотни и тысячи людей, среди которых преобладают студенты, но встречаются и дети, и солидные взрослые люди, с наступлением тепла едут в лес, где переодеваются в сшитые дома костюмы и начинают играть — странные актеры, которым не нужны зрители. Да, перед этим они еще несколько дней превращают палатки, сухостой, обрезки ткани и невесть что еще в декорации для своего причудливого представления. Человек, случайно оказавшийся среди играющих, чувствует себя Алисой, провалившейся в нору: любопытно, необычно и — совершенно непонятно. Как интересная книга, которую открыли на середине.
Что такое живая ролевая игра, почему она так привлекательна для людей? Не существует однозначного ответа на этот вопрос. Психологи и социологи радостно ухватились за это явление. Дж. Л. Морено, например, занимался «исследованием внутреннего мира и социальных отношений человека средствами ролевой игры»[Дж. Л. Морено, «Театр спонтанности». — Красноярск: Изд. «Фонд ментального здоровья», 1993. Дж. Л. Морено, «Социометрия». — М.: Изд. «Академический проект», 2001]. Но тут, как водится, сколько людей, столько и мнений. Так что придется разбираться самим.
Мы будем говорить об играх «на погружение». Во-первых, это живые игры, то есть те, в которых участник сам совершает все действия, а не управляет виртуальным персонажем, будь то компьютерная или словесная игра. Во-вторых, в них существует стартовая ситуация, но отсутствует сценарий, развитие сюжета не предопределено и полностью зависит от участников игры. И последнее, но самое главное: человек заранее продумывает своего персонажа (биография, характер, привычки, костюм) и на все игровые события реагирует так, как, по мнению игрока, поступил бы его персонаж — даже если личный опыт подсказывает сделать все с точностью до наоборот.
RPG и живые ролевые игры: на перекрестке миров
Существует распространенное мнение, что такие жанры компьютерных игр, как CRPG (Computer Role-Playing Game) и MMORPG (Massively Multiplayer Online Role-Playing Game), появились под влиянием офлайновых RPG. Это не совсем так. Они, несомненно, являются ролевыми играми в широком понимании, однако никакого отношения к живым ролевым играм на начальном этапе не имели. Эти явления до определенного момента развивались параллельно. Понятно, что сейчас многие поклонники RPG и особенно MMORPG играют в живые ролевые игры (и наоборот), однако вряд ли можно говорить о том, что эти люди составляют большинство. Хотя с компьютеризацией общества их количество, естественно, увеличивается, но мало-мальски серьезных статистических данных на сей счет пока нет.