ИДЗ (моделирование игрового процесса GTA SAMP))
.docxЛипецкий государственный технический университет
Кафедра автоматизированных систем управления
Индивидуальное домашнее задание
по Моделированию систем
Моделирование игрового процесса на сервере Grand Theft Auto San Andreas Multiplayer в течение суток
|
Студент |
|
|
|
Ключанских А.С |
|
|||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
|||||||||
|
Группа |
|
АС-10 |
|
|
|
|||||||||
|
|
|
|
|
|
|
|||||||||
|
Принял |
|
|
|
|
|
|||||||||
|
доцент |
|
|
|
Гаев Л.В. |
|
|||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2013
-
Описание модели игры
Смысл игры – зарабатывание игровых денег и накопление игрового опыта, которые позволяют игроку приобрести более мощное оружие и более быстрые транспортные средства, а также дома, бизнес и т.д., т.е. дают игроку преимущество над другими игроками.
Время поступления нового игрока на сервер – равномерно распределенная СВ на интервале 2-3 минуты в период с 12 до 24 часов и 4-6 минут в период с 0 до 12 часов (ночью играет меньше людей).
Сразу после присоединения к игровому процессу игрок получает некоторое небольшое количество денег, достаточное для покупки хотя бы маломощного оружия с целью защиты от других игроков. Игрок должен купить себе какое-либо оружие в оружейном магазине, причем если там уже находится другой игрок, то вновь поступивший игрок ждет своей очереди (все игроки имеют одинаковый приоритет вне зависимости от уровня игрового опыта или количества денег). Время покупки оружия - равномерно распределенная случайная величина на интервале 30 секунд-60 секунд. После этого игрок начинает свое полноценное участие в игровом процессе: он может участвовать в гонках, либо участвовать в дезматчах. Причем игрок может выбрать любое из двух видов соревнований с равной вероятностью.
Гонки
В каждой гонке может участвовать от 3 до 8 игроков. Время проведения каждой из них – равномерно распределенная случайная величина на интервале 4-10 минут. Если в момент подачи игроком заявки на участие в гонке не будет набрано минимальное количество участников, стартует счетчик в 60 секунд, в течение которого количество желающих поучаствовать в этом соревновании достигает нужного значения и игроки “телепортируются” к старту. При наличии свободных мест игрок может присоединиться к уже начавшейся гонке (при этом он телепортируется на место последнего из гонщиков), а в случае, если в гонке на данный момент участвует максимально возможное количество игроков – то данный игрок ждет своей очереди.
Дезматчи
В каждом дезматче может участвовать от 4 до 12 игроков (игроки делятся на 2 команды). Время проведения каждого из них – равномерно распределенная случайная величина на интервале 5-8 минут. Если в момент подачи игроком заявки на участие в дезматче не будет набрано минимальное количество участников, стартует счетчик в 60 секунд, в течение которого количество желающих поучаствовать в этом соревновании достигает нужного значения и игроки “телепортируются” к месту проведения боя (выбирается случайным образом из заранее заданного администратором списка локаций). При наличии свободных мест игрок может присоединиться к уже начавшемуся дезматчу, а в случае, если в дезматче на данный момент участвует максимально возможное количество игроков – то данный игрок ждет своей очереди.
После завершения очередного соревнования игрок в зависимости от его результата получает определенное количество игрового опыта и денег и с вероятностью 0.3 направляется в оружейный магазин с целью приобрести более совершенное оружие или докупить патроны к уже имеющемуся. Также после очередного соревнования игрок с вероятностью 0.15 покидает сервер, либо вновь подает заявку на участие в одном из двух видов соревнований.
-
Цель моделирования
Определение оптимальных настроек игрового режима (величины счетчиков ожидания для гонок и дезматчей, времени проведения каждого из видов соревнований и тд) с целью сократить до разумных пределов время ожидания игроков в очередях перед участием в соревнованиях.
-
Код модели на языке GPSS
1 SIMULATE
2 SERVER STORAGE 100
3 RACE STORAGE 8
4 DEATHMATCH STORAGE 12
5 RACERS VARIABLE 0
6 STRIKERS VARIABLE 0
7 MNOGH VARIABLE 2
9 INPUT_GAMERS FUNCTION RN1,D31
.0,120/.033,122/.067,124/.100,126/.133,128/.167,130/.200,132/.233,134/
.267,136/.300,138/.333,140/.367,142/.400,144/.433,146/.467,148/.500,150/
.533,152/.567,154/.600,156/.633,158/.667,160/.700,162/.733,164/.767,166/
.800,168/.833,170/.867,172/.900,174/.933,176/.967,178/1,180
10 GENERATE X$MNOGH,FN$INPUT_GAMERS
11 QUEUE WAIT_TO_PLAY
12 ENTER SERVER
13 DEPART WAIT_TO_PLAY
14 QUEUE TIME_OF_PLAY
15 AMMO QUEUE WAIT_AMMO
16 SEIZE AMMUNATION
17 DEPART WAIT_AMMO
18 ADVANCE 45,15
19 RELEASE AMMUNATION
20 CHOICE TRANSFER .5,RA_CE,D_M
50 RA_CE SAVEVALUE RACERS+,1
60 QUEUE WAIT_RACE
61 RACE_START TEST GE X$RACERS,3,LOCK_RACE
65 ENTER RACE
67 DEPART WAIT_RACE
70 ADVANCE 420,180
75 SAVEVALUE RACERS-,1
80 LEAVE RACE
85 TRANSFER .7,AMMO
90 TRANSFER .85,QUIT,CHOICE
100 D_M SAVEVALUE STRIKERS+,1
102 QUEUE WAIT_DM
103 DM_START TEST GE X$STRIKERS,4,LOCK_DM
106 ENTER DEATHMATCH
108 DEPART WAIT_DM
110 ADVANCE 390,90
112 SAVEVALUE STRIKERS-,1
115 LEAVE DEATHMATCH
190 TRANSFER .7,AMMO
200 TRANSFER .85,QUIT,CHOICE
250 LOCK_RACE FUNAVAIL RACE
255 ADVANCE 60
260 FAVAIL RACE
265 TRANSFER ,RACE_START
350 LOCK_DM FUNAVAIL DEATHMATCH
355 ADVANCE 60
360 FAVAIL DEATHMATCH
365 TRANSFER ,DM_START
3990 QUIT LEAVE SERVER
3992 DEPART TIME_OF_PLAY
4000 TERMINATE
4005 GENERATE ,,,1
4006 TEST GE AC1,43200
4007 SAVEVALUE MNOZH,1
4008 TERMINATE
4100 GENERATE 86400
4200 TERMINATE 1
-
Отчет о работе модели
-
Анализ результатов моделирования
Приборы:
SERVER – собственно сам игровой сервер, вмещающий в себя до 100 игроков одновременно.
RACE – многоканальное устройство для проведения гонок
DEATHMATCH – многоканальное устройство для проведения дезматчей
Из отчета видно, что за 24 часа на сервере поиграло 288 игроков, максимальное количество онлайн-игроков 25, а среднее – 13,99 игроков. В гонках и дезматчах поучаствовало примерно одинаковое количество игроков, что соответствует описанию модели, среднее количество гонщиков в каждый момент времени 6,28, а среднее количество “стрелков” в дезматче 5,90. Также можно отметить, что в процессе игры возникали ситуации, когда количество участников гонки и дезматча достигало максимального значения (8 и 12 соответственно).
Очереди:
WAIT_TO_PLAY – очередь, показывающая среднее время ожидания доступа к серверу, когда на нем нет свободных мест.
TIME_OF_PLAY – показывает среднее время игры одного игрока
WAIT_AMMO – показывает среднее время ожидания в очереди перед доступом к покупке оружия
WAIT_RACE – показывает среднее время ожидания участия в гонке
WAIT_DM – показывает среднее время ожидания участия в дезматче
Из отчета видно, что игроки не простаивают очереди, ожидая освобождения места на сервере, т.к. максимальное количество онлайн игроков 25, а сервер может вмещать до 100 игроков. Довольно низкая нагрузка на сервер обусловлена тем, что рассматриваемый сервер доступен только для абонентов провайдера Домолинк Липецкой области. В среднем игрок проводит на сервере около 1 часа в сутки. При такой нагрузке на сервер игроки находятся в очередях перед вступлением в соревнование на протяжении 54 секунд для гонок (в среднем) и 10 секунд для дезматчей (максимальные длины очередей 9 и 4 игрока соответственно), а задержка перед доступом к покупке оружия составляет в среднем 23 секунды. Разница во времени ожидания связана с максимально возможным количеством участников и временем проведения соревнований.
-
Вывод
Полученные в процессе моделирования результаты не являются критичными для нормальной игры на сервере при текущей интенсивности прихода игроков. Таким образом, целесообразно использовать стандартные настройки игрового режима (величины счетчиков ожидания для гонок и дезматчей, времени проведения каждого из видов соревнований и тд ). В случае, если сервер будет доступен не только для жителей Липецкой области, но и для всего мира, то интенсивность прихода игроков резко возрастет и время пребывания в очередях будет достигать очень больших значений. В таком случае будет необходимо либо скорректировать настройки, либо использовать другой игровой режим, где игрокам не придется долго ждать возможности участвовать в соревновании и зарабатывать очки.