Инсерционное моделирование сценариев ролевых игр

Предложена инсерционная модель однопоточной ролевой игры – первое применение инсерционного моделирования к разработке игр. На основании данной модели разработан декларативный язык описания сценариев....

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2012
Автор: Кожаев, В.В.
Формат: Стаття
Мова:Russian
Опубліковано: Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України 2012
Назва видання:Управляющие системы и машины
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/83108
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Инсерционное моделирование сценариев ролевых игр / В.В. Кожаев // Управляющие системы и машины. — 2012. — № 6. — С. 53-56. — Бібліогр.: 4 назв. — рос.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-83108
record_format dspace
spelling irk-123456789-831082015-06-15T03:02:02Z Инсерционное моделирование сценариев ролевых игр Кожаев, В.В. Технические приложения инсерционного моделирования Предложена инсерционная модель однопоточной ролевой игры – первое применение инсерционного моделирования к разработке игр. На основании данной модели разработан декларативный язык описания сценариев. A model of a signal-insertion role-playing game, which is the first application of modeling to the development of insertional games is suggested. On the basis of the given model a declarative language of scenarios description is developed. Запропоновано інсерційну модель однопоточної рольової гри, що є першим застосуванням інсерційного моделювання до розробки ігор. На підставі поданої моделі розроблено декларативну мову опису сценаріїв. 2012 Article Инсерционное моделирование сценариев ролевых игр / В.В. Кожаев // Управляющие системы и машины. — 2012. — № 6. — С. 53-56. — Бібліогр.: 4 назв. — рос. 0130-5395 http://dspace.nbuv.gov.ua/handle/123456789/83108 681.3: 658.56 ru Управляющие системы и машины Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
topic Технические приложения инсерционного моделирования
Технические приложения инсерционного моделирования
spellingShingle Технические приложения инсерционного моделирования
Технические приложения инсерционного моделирования
Кожаев, В.В.
Инсерционное моделирование сценариев ролевых игр
Управляющие системы и машины
description Предложена инсерционная модель однопоточной ролевой игры – первое применение инсерционного моделирования к разработке игр. На основании данной модели разработан декларативный язык описания сценариев.
format Article
author Кожаев, В.В.
author_facet Кожаев, В.В.
author_sort Кожаев, В.В.
title Инсерционное моделирование сценариев ролевых игр
title_short Инсерционное моделирование сценариев ролевых игр
title_full Инсерционное моделирование сценариев ролевых игр
title_fullStr Инсерционное моделирование сценариев ролевых игр
title_full_unstemmed Инсерционное моделирование сценариев ролевых игр
title_sort инсерционное моделирование сценариев ролевых игр
publisher Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України
publishDate 2012
topic_facet Технические приложения инсерционного моделирования
url http://dspace.nbuv.gov.ua/handle/123456789/83108
citation_txt Инсерционное моделирование сценариев ролевых игр / В.В. Кожаев // Управляющие системы и машины. — 2012. — № 6. — С. 53-56. — Бібліогр.: 4 назв. — рос.
series Управляющие системы и машины
work_keys_str_mv AT kožaevvv insercionnoemodelirovaniescenarievrolevyhigr
first_indexed 2025-07-06T09:50:33Z
last_indexed 2025-07-06T09:50:33Z
_version_ 1836890649699287040
fulltext УСиМ, 2012, № 6 53 УДК 681.3: 658.56 В.В. Кожаев Инсерционное моделирование сценариев ролевых игр Предложена инсерционная модель однопоточной ролевой игры – первое применение инсерционного моделирования к разра- ботке игр. На основании данной модели разработан декларативный язык описания сценариев. A model of a signal-insertion role-playing game, which is the first application of modeling to the development of insertional games is suggested. On the basis of the given model a declarative language of scenarios description is developed. Запропоновано інсерційну модель однопоточної рольової гри, що є першим застосуванням інсерційного моделювання до роз- робки ігор. На підставі поданої моделі розроблено декларативну мову опису сценаріїв. Введение. Ролевыми играми будем называть та- кие, в которых персонажи, обладающие неким поведением, взаимодействуют между собой, пер- сонажем игрока и средой. Под поведением, в общем случае, следует понимать обмен сообще- ниями между персонажами и средой и реакцию персонажа на сообщения: отправку новых сооб- щений, изменение свойств и решение как реаги- ровать на следующие сообщения. Другими сло- вами, персонажей можно считать актерами [1]. Правила поведения персонажа будем назы- вать сценарием его поведения (далее – сцена- рий). В настоящее время сценаристы используют неформальные описания сценариев. Однако та- кие описания изобилуют неточностями, поэтому в практике разработки игр часто случается, что воплощенная в программный код игра сущест- венно отличается от первоначального замысла сценариста. Таким образом, возникает задача описания сценариев ролевых игр с помощью не- которого формализма. Поскольку игру и персо- нажей можно рассматривать как среду с погру- женными в нее агентами, для создания модели удобно использовать инсерционное исчисление [2]. До недавнего времени инсерционное моде- лирование использовалось в основном для вери- фикации и анализа отказоустойчивых систем. Однако этот инструмент можно использовать и для моделирования систем, не требующих высо- кой отказоустойчивости, в частности игр, рас- смотренных в [3]. Пример игры В центре игрового поля расположен форт, на котором игрок может строить неподвижные баш- ни различного типа. Кроме того, на территории форта располагаются роботы. Из-за пределов игрового поля к форту движутся роботы про- тивника, стреляющие по роботам и башням иг- рока. Последний строит башни на территории форта, башни стреляют по противнику или соз- дают роботов. Цель игры состоит в том, чтобы, найдя оптимальную стратегию постройки ба- шен, продержаться против роботов противника в течение определенного времени. Игровое поле. Прямоугольное игровое поле делится на две части: форт и поле. Роботы игро- ка могут перемещаться только по форту, робо- ты противника – только по полю. Роботы игро- ка не выходят за территорию форта, соответст- венно роботы противника не могут в форт по- пасть. Форт имеет вид односвязной фигуры (вид фигуры изменяется от уровня к уровню). Персонажи. В игре участвуют два типа пер- сонажей: башни (неподвижные) и роботы (под- вижные). Вторые в свою очередь делятся на роботов игрока и роботов противника. У каж- дого персонажа имеется показатель, называе- мый «жизнь». При повреждениях значение по- казателя снижается. Если жизнь равна нулю или меньше, персонаж погибает. Роботы игрока. Робот игрока предназначен для починки башен. Под починкой понимается продление жизни, происходящее в течение оп- ределенного интервала времени. Для починки робот должен подойти к башне и некоторое время находиться возле нее. В роботов можно стрелять так же, как и в башни. Роботы противника. Появляются за преде- лами игрового поля, движутся по направлению к форту. Перед возникновением, робот против- ника выбирает цель. После того, как робот по- дойдет к цели на расстояние выстрела, он ос- танавливается и начинает стрельбу. Выбор про- исходит с помощью оценочной функции, учи- 54 УСиМ, 2012, № 6 тывающей расстояние до цели, ее важность для жизнеобеспечения и пр. Если цель унич- тожена (не обязательно данным персонажем), выбирается другая цель. Башни. Неподвижны в отличие от роботов. Стреляют по роботам противника либо созда- ют новых роботов. Выбор цели также происхо- дит с помощью оценочной функции, и он воз- можен только из числа роботов, находящихся на расстоянии выстрела. Если цель уничтожена так же, как и роботы противника, башни выби- рают другую цель. Игрок может в любой момент времени вме- шаться в течение игры и построить новую баш- ню; это возможно, если игрок обладает доста- точным количеством монет, а они начисляются за уничтожение башнями игрока роботов про- тивника. Время и пространство. Как время, так и пространство (игровое поле) дискретны. Еди- ница дискретного времени называется тиком. Расстояние, на которое робот может перемес- титься на один тик, зависит от его типа. Инсерционная модель игры Персонажи игры рассматриваются как аген- ты, которые погружаются в среду игры. Игрок находится во внешней среде и отождествляется с ней. Поведение игрока. Действия игрока: созда- ние робота в точке x; – создание башни в точке x, W; наблюдение за игрой в течение одного ти- ка. Поскольку о поведении игрока ничего не из- вестно, его можно моделировать как недетерми- нированную систему с поведением, определяе- мым таким уравнением: ( ( ). ( ). x M P R x P T x P     + W.P), где M – множество точек игрового поля. Среда игры определяет для каждого персо- нажа его положение на игровом поле и показа- тель жизни. Кроме атрибутов агентов, состоя- ние среды определяет число монет, заработан- ных игроком. Таким образом, общее состояние системы имеет вид P[E[u]], где P – состояние игрока, E[u] – состояние среды игры, u = (u1, …, um) – состояния персонажей игры. Действия персонажей Действия роботов игрока show_start_moving(x) –начало движения; show_stop_moving(x) – окончание движения; select_new_tower(x) – выбирает новую башню; before_agony(x) – начало агонии; show_splash(x) – реакция на попадание (вспышку); show_start_charging(x) – начало зарядки; how_moving_process(x) – демонстрирует про- цесc ремонта башни (заряда жизненной силой); remove_robot(x) – удаление робота с игрово- го поля; show_charging_process(x) – процесc ремонта башни (заряда жизненной силой). Действия роботов противника shoot(x) – стреляет по противнику; select_target(x) – выбирает новую цель; move_to_shoot_distance(x) – движется к цели на расстояние выстрела; show_splash(x) – вспышка от попадания по роботу. Функции погружения внешней среды и среды игры Создание нового робота: ]],[[]][)[).(( vuEPuEPxR  , где  – пустое действие (оно не изменяет изо- бражения состояния игры на экране), E – но- вое состояние среды игры, v – новый робот иг- рока в начальном состоянии. Условие приме- нения этого правила – достаточное количество монет у игрока. В новом состоянии робот v ус- тановлен в точке x. Создание новой башни: ]],[[]][)[).(( vuEPuEPxR  аналогично созданию нового робота. Изменение состояния игры ]],...,[[]].,...,.[)[.( 1 ),...,,( 11 1 m aaE mm uuEPuauaEPW m   , где (E, a1, , am) – демонстрация состояния иг- ры на экране после выполнения всех действий. Новое состояние iu i-го персонажа совпадает с ui, если действие этого персонажа выполнено успешно или равно Δ, если персонаж выведен из строя. Условие применимости этого правила состоит в том, что все действия персонажей, не выведенных из строя, могут быть выполнены успешно. Опишем условия, при которых робот перехо- дит в конечное состояние. Предположим, что ро- УСиМ, 2012, № 6 55 бот и башня стреляют друг в друга. Поскольку условием существования персонажей принято положительное значение жизни, первым погиб- нет тот персонаж, у которого жизнь иссякнет раньше, причем возможна ситуация, когда по одному персонажу игрока стреляют несколько роботов противника и наоборот. Выстрелы осу- ществляются с определенным разлетом, завися- щим от характеристик конкретного персонажа. Таким образом, возможна ситуация, когда при выстреле попадания не происходит. В игре име- ется как оружие массового («граната»), так и ин- дивидуального («снайперская винтовка») по- ражения. Оружие массового поражения стре- ляет в определенную точку и поражает всех персонажей, находящихся в радиусе пораже- ния. Величина поражения обратно пропорцио- нальна расстоянию от эпицентра взрыва. Для простоты принято, что если персонаж нахо- дится вне радиуса поражения, он не поврежда- ется. Оружие индивидуального поражения мо- жет поразить только конкретного персонажа. Поскольку роботы противника и роботы игро- ка находятся на разных участках игрового по- ля, для простоты принимается, что выстрелы роботов противника поражают только персона- жей игрока, соответственно выстрелы персо- нажей игрока поражают только противника. Дальность выстрела зависит от типа оружия. Каждый персонаж может владеть только одним типом оружия. Соответственно для выстрела робот противника должен приблизится к робо- ту противника на расстояние выстрела. Если робот, по которому стреляют, движется, то принимается, что меткость персонажа, стре- ляющего по нему из оружия индивидуального поражения не меняется. К оружию массового поражения понятие меткости выстрела по опре- деленному персонажу не применимо, поскольку поражается группа персонажей, находящихся на расстоянии, меньшем, чем радиус поражения для данного оружия. Поведение персонажей. В соответствии с описанием игры, у персонажа может быть дос- таточно сложное поведение. В частности, по- скольку он сам выбирает следующую цель, ему должны быть доступны все данные о располо- жении персонажей на игровом поле. Если ро- бот противника выбрал целью робот игрока, а этот робот движется, робот противника должен отслеживать движение цели и менять свои дей- ствия в соответствии с этим движением (пого- ня за целью). Каждый персонаж имеет свою среду, которая локально ограничивает действия агента и поль- зуется информацией из состояния среды. Вви- ду сказанного функционирование персонажа оп- ределяется уравнениями вида . . . . , .i i i i I u before while after v while y while    , где before и while – действия, производимые над агентом соответственно до входа в состояние из некоего другого состояния и действия, про- исходящие при переходе состояния самого в себя (петля); afer – действия, производимые при переходе из состояния α в υ. Реализация инсерционной модели Для управления персонажами предлагается использовать детерминированный конечный ав- томат, когда управление происходит в процессе переходов от состояния к состоянию с помощью управляющих воздействий. Под последними по- нимают функции, выполняемые над персонажа- ми перед входом в данное состояние, перед вы- ходом из него, при переходе из состояния A в состояние В и при переходе из определенного состояния в него же (петля) [1]. Ввиду того, что большинство платформ, ис- пользуемых для разработки казуальных игр, од- нопоточны, предлагается реализовывать актив- ную систему обработки событий. Состояние мо- жет измениться единожды за тик. Если это про- изошло, выполняются воздействия, приписан- ные к переходу из состояния в состояние, ина- че – воздействия, выполняемые при переходе состояния в себя. Переход в данное состояние из текущего происходит, если справедливо ло- гическое выражение, атомами которого служат идендификаторы функций, реализованные на императивном языке программирования, под- ходящем для данной платформы и возвращаю- щих логическое значение. Управляющие воз- действия также являются идентификаторами ме- тодов на императивном языке, но в отличие от первых, требование к возвращаемому значе- нию не выдвигается. 56 УСиМ, 2012, № 6 Язык разметки сценариев. Для задания по- ведения персонажа создадим текстовый язык. Программа на этом языке состоит из двух ча- стей: раздела объявлений и собственно тела про- граммы. В разделе объявлений указываются до- пустимые имена состояний управляющих воздей- ствий и атомов логических выражений. Причем, имена состояний должны быть уникальными. Каждое состояние состоит из списка управ- ляющих воздействий и условий перехода. Ус- ловие перехода в свою очередь содержит логи- ческое выражение, при выполнении которого происходит переход и управляющие воздей- ствия, выполняемые при этом. Формальное описание языка создания сце- нариев. Представим синтаксис языка в виде контекстно независимой грамматики. Programm::=<states_definition> <athoms_definition> <methods_definition> <programm_body> states_definition::=states:<list>; athoms_definition::=atoms:<list>; methods_definition::=methods:<list>; list::={<list_body>}; list_body::=<lexeme>; list_body::=<list_body> <lexeme>; program_body_definitions::=<states_list> states_list::=<state_definition> states_list::=<states_list> <state_definition> state_definition::=state:<lexeme> methods_before:<list> methods_after:<list> methods_in_process:<list> transitions_definition:<transition_list> transitions_list::=<transition_definition> transitions_list::=<transition_list> <transition_definition> transition_definition::=state:<lexeme> condition:<logical_expression> methods:<list> Программа робота игрока. Представим программу ро- бота игрока, предлагаемую для инсерционного моделиро- вания. Программы для роботов противника и башен анало- гичны, как и программы для роботов персонажа и башен. states:{move_to_tower,fix_tower,wait,agony,death, not_move} //Состояния, атомы и методы объявляются в начале про- граммы //(как переменные в паскале) atoms: {is_life_more_null, is_there_tower_for_fixing, is_selected_tower_dead, is_life_more_then_null, is_robot_near_tower, before_agony, remove_robot, show_splash, show_charging_process} methods:{show_start_moving, show_stop_moving, select_new_tower, before_agony, show_splash, show_start_charging, how_moving_process, remove_robot, show_charging_process} program_body: state:move_to_tower methods_before:{show_start_moving} methods_after:{show_stop_moving} methods_in_process: {show_moving_ process} transitions: state:agony condition:is_life_more_ then_null state:move_to_tower condition: is_selected_tower_dead methods:{select_new_ tower} state:fix_tower condition: !is_selected_ tower_dead && is_robot_ near_tower methods:{show_start_ charging} state:agony methods_before:{before_agony} methods_after:{remove_robot} methods_in_process:{show_splash} transitions: {}//Нет переходов state:fix_tower methods_before:{}//Нет действий methods_after:{} methods_in_process:{show_charging_process} Заключение. Предложенная инсерционная модель од- нопоточной ролевой игры – первое применение инсер- ционного моделирования к разработке игр. На основании описанной модели разработан декларативный язык опи- сания сценариев. Научная новизна состоит в построении формального описания сценария игры. Автору не из- вестно других попыток описать сценарий формально. 1. Кожаев В.В. Использование декларативного подхода к созданию каркаса двумерных игр // Компьютер- ная математика. – 2011. – № 1. – С. 79–85. 2. Летичевский А.А., Капитонова Ю.В. Инсерционное моделирование / Пр. міжнар. конф. «50 років Інсти- туту кібернетики ім. В.М. Глушкова НАН Украї- ни», Київ, 2008. – С. 293–301. 3. Кожаев В.В. Тестирование интереса к игре / Мате- ріали сьомої міжнар. наук.-практ. конф. з програм- мування. УкрПРОГ2010, Київ 2010. – С. 452–456. 4. Летичевский А.А. Инсерционное моделирование / Курс лекций – http://schum.kiev.ua/let/ Тел. для справок: +38 063 775-7467 (Киeв) E-mail: vkozhaev@gmail.com © В.В. Кожаев, 2012 