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

Предложена инсерционная модель однопоточной ролевой игры – первое применение инсерционного моделирования к разработке игр. На основании данной модели разработан декларативный язык описания сценариев. A model of a signal-insertion role-playing game, which is the first application of modeling to the d...

Full description

Saved in:
Bibliographic Details
Published in:Управляющие системы и машины
Date:2012
Main Author: Кожаев, В.В.
Format: Article
Language:Russian
Published: Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України 2012
Subjects:
Online Access:https://nasplib.isofts.kiev.ua/handle/123456789/83108
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Cite this:Инсерционное моделирование сценариев ролевых игр / В.В. Кожаев // Управляющие системы и машины. — 2012. — № 6. — С. 53-56. — Бібліогр.: 4 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
_version_ 1859612610134016000
author Кожаев, В.В.
author_facet Кожаев, В.В.
citation_txt Инсерционное моделирование сценариев ролевых игр / В.В. Кожаев // Управляющие системы и машины. — 2012. — № 6. — С. 53-56. — Бібліогр.: 4 назв. — рос.
collection DSpace DC
container_title Управляющие системы и машины
description Предложена инсерционная модель однопоточной ролевой игры – первое применение инсерционного моделирования к разработке игр. На основании данной модели разработан декларативный язык описания сценариев. 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. Запропоновано інсерційну модель однопоточної рольової гри, що є першим застосуванням інсерційного моделювання до розробки ігор. На підставі поданої моделі розроблено декларативну мову опису сценаріїв.
first_indexed 2025-11-28T15:30:49Z
format Article
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 
id nasplib_isofts_kiev_ua-123456789-83108
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
issn 0130-5395
language Russian
last_indexed 2025-11-28T15:30:49Z
publishDate 2012
publisher Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України
record_format dspace
spelling Кожаев, В.В.
2015-06-14T19:19:24Z
2015-06-14T19:19:24Z
2012
Инсерционное моделирование сценариев ролевых игр / В.В. Кожаев // Управляющие системы и машины. — 2012. — № 6. — С. 53-56. — Бібліогр.: 4 назв. — рос.
0130-5395
https://nasplib.isofts.kiev.ua/handle/123456789/83108
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.
Запропоновано інсерційну модель однопоточної рольової гри, що є першим застосуванням інсерційного моделювання до розробки ігор. На підставі поданої моделі розроблено декларативну мову опису сценаріїв.
ru
Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України
Управляющие системы и машины
Технические приложения инсерционного моделирования
Инсерционное моделирование сценариев ролевых игр
The Insertion Modelling of Role-Playing Game Scenarios
Іінсерційне моделювання сценаріїв ролевих ігор
Article
published earlier
spellingShingle Инсерционное моделирование сценариев ролевых игр
Кожаев, В.В.
Технические приложения инсерционного моделирования
title Инсерционное моделирование сценариев ролевых игр
title_alt The Insertion Modelling of Role-Playing Game Scenarios
Іінсерційне моделювання сценаріїв ролевих ігор
title_full Инсерционное моделирование сценариев ролевых игр
title_fullStr Инсерционное моделирование сценариев ролевых игр
title_full_unstemmed Инсерционное моделирование сценариев ролевых игр
title_short Инсерционное моделирование сценариев ролевых игр
title_sort инсерционное моделирование сценариев ролевых игр
topic Технические приложения инсерционного моделирования
topic_facet Технические приложения инсерционного моделирования
url https://nasplib.isofts.kiev.ua/handle/123456789/83108
work_keys_str_mv AT kožaevvv insercionnoemodelirovaniescenarievrolevyhigr
AT kožaevvv theinsertionmodellingofroleplayinggamescenarios
AT kožaevvv íínsercíinemodelûvannâscenaríívrolevihígor