Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИДЗ (моделирование игрового процесса GTA SAMP))

.docx
Скачиваний:
18
Добавлен:
20.06.2014
Размер:
89.23 Кб
Скачать

Липецкий государственный технический университет

Кафедра автоматизированных систем управления

Индивидуальное домашнее задание

по Моделированию систем

Моделирование игрового процесса на сервере Grand Theft Auto San Andreas Multiplayer в течение суток

Студент

Ключанских А.С

подпись, дата

фамилия, инициалы

Группа

АС-10

Принял

доцент

Гаев Л.В.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк 2013

  1. Описание модели игры

Смысл игры – зарабатывание игровых денег и накопление игрового опыта, которые позволяют игроку приобрести более мощное оружие и более быстрые транспортные средства, а также дома, бизнес и т.д., т.е. дают игроку преимущество над другими игроками.

Время поступления нового игрока на сервер – равномерно распределенная СВ на интервале 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 покидает сервер, либо вновь подает заявку на участие в одном из двух видов соревнований.

  1. Цель моделирования

Определение оптимальных настроек игрового режима (величины счетчиков ожидания для гонок и дезматчей, времени проведения каждого из видов соревнований и тд) с целью сократить до разумных пределов время ожидания игроков в очередях перед участием в соревнованиях.

  1. Код модели на языке 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

  1. Отчет о работе модели

  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 секунды. Разница во времени ожидания связана с максимально возможным количеством участников и временем проведения соревнований.

  1. Вывод

Полученные в процессе моделирования результаты не являются критичными для нормальной игры на сервере при текущей интенсивности прихода игроков. Таким образом, целесообразно использовать стандартные настройки игрового режима (величины счетчиков ожидания для гонок и дезматчей, времени проведения каждого из видов соревнований и тд ). В случае, если сервер будет доступен не только для жителей Липецкой области, но и для всего мира, то интенсивность прихода игроков резко возрастет и время пребывания в очередях будет достигать очень больших значений. В таком случае будет необходимо либо скорректировать настройки, либо использовать другой игровой режим, где игрокам не придется долго ждать возможности участвовать в соревновании и зарабатывать очки.