Научная статья на тему 'РАЗРАБОТКА КОМПЬЮТЕРНОЙ PVP ИГРЫ-СТРАТЕГИИ «КОСМОС»'

РАЗРАБОТКА КОМПЬЮТЕРНОЙ PVP ИГРЫ-СТРАТЕГИИ «КОСМОС» Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
22
4
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
стратегия / алгоритмы / клиент-сервер / планировщик задач / асинхронное программирование / strategy / algorithms / client-server / task scheduler / asynchronous programming

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сотников А.В., Зори С.А.

В статье исследуется разработка компьютерной игры-стратегии с применением методов игровых моделей PvP и PvE. Описывать как проходил процесс разработка и тестирование компьютерной игры-стратегии «КОСМОС».

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF COMPUTER PVP STRATEGY GAME "COSMOS"

The article explores the development of a computer strategy game using the methods of PvP and PvE game models. Describe how the process of developing and testing a computer strategy game "COSMOS" took place.

Текст научной работы на тему «РАЗРАБОТКА КОМПЬЮТЕРНОЙ PVP ИГРЫ-СТРАТЕГИИ «КОСМОС»»

УДК 004 Сотников А.В., Зори С.А.

Сотников А.В.

кафедра «Программная инженерия им. Л.П. Фельдмана» Донецкий национальный технический университет (г. Донецк, Россия)

Зори С.А.

кафедра «Программная инженерия им. Л.П. Фельдмана» Донецкий национальный технический университет (г. Донецк, Россия)

РАЗРАБОТКА КОМПЬЮТЕРНОЙ PVP ИГРЫ-СТРАТЕГИИ «КОСМОС»

Аннотация: в статье исследуется разработка компьютерной игры-стратегии с применением методов игровых моделей PvP и PvE. Описывать как проходил процесс разработка и тестирование компьютерной игры-стратегии «КОСМОС».

Ключевые слова: стратегия, алгоритмы, клиент-сервер, планировщик задач, асинхронное программирование.

Введение.

Игра PvP подразумевает возможность игрокам атаковать друг друга в соответствии с правилами игры.

Термин появился для того, чтобы можно было различить игру человека против персонажей, управляемых компьютером (то есть окружения от англ. environment — PvE), от игры против других игроков — PvP. Это разделение терминов стало необходимым для явного разделения игры против других игроков и против игрового окружения.

Целью данной статьи является анализ основных моделей и алгоритмов разработанной компьютерной PvP игры-стратегии «Космос».

1. Общая характеристика PvP игр и их отличие от PvE.

PvP означает player(s) vs player(s), то есть «игрок(и) против игрока(ов)», тогда как PvE — это player vs environment, что переводится как «игрок против окружения». Таким образом, в PvE-играх вы противостоите врагам, управляемым компьютером. Зачастую это казуальные игры.

Разница между PvE и PvP заключается в следующем. PvE-игры, например, онлайн-шутеры с ПВЕ-режимом, — это одиночные игры, в которых все строго регламентировано. В таких играх элемент случайности и непредсказуемости сведён к минимуму, потому что развитие игры не зависит от поведения участников. В PvE-MMORPG или PvE-шутере под «окружением» может подразумеваться вражеский монстр или бездна с лавой, или даже ваш противник по карточной игре, управляемый компьютером.

В компьютерной PvP игре стратегии «Космос» реализован режим PvP, то есть игроки будет играть друг против друга, однако для начала им нужно будет развить свое окружение и науку.

2. Описания игровых моделей и алгоритмов, реализованных в игре.

При разработке игры использовалось программная платформа NET Framework [2] которая поддерживает межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка кода и набор компонентов .NET, известный под общим названием ADO.NET, позволяет получать эффективный доступ к реляционным базам данных и многим другим источникам данных.

Языком программирования при разработке игры был выбран C# [3] так, как язык используется для разработки игр под Windows, macOS, Android и iOS. Все дело в Unity - платформе для работы с 3D-графикой. С# лучше остальных языков адаптирован под работу с этим движком.

Любая стратегическая игра должна давать возможность вариативности её прохождения и развития игрока.

В разработанной игре-стратегии есть три варианта развития игрока:

Производственный путь - то есть игрок не с кем не взаимодействует и занимается развивает своей планеты в промышленности.

Исследовательские путь - схож с производственным путём развития, но за одним исключением исследования влияет на все в игре: строительство, флот, оборону, науку.

Военный путь - самый интересный и очень опасный в игре. Нужно нанять себе флот от простого транспорта до самого мощного боевого корабля. Сбалансировать его и отправиться покорять планеты других игроков уничтожая их флота и оборону если хватит сил на это.

Для каждого вида развития есть свои звания и уровни который пройдя игрок получит новое звание. Производственный и научный необходимо развить, что бы открылись новые элементы - корабли или оборонительные постройки, которые нужны для военного пути. Так же есть общий рейтинг по всем этим категориям (постройки, наука, флот, оборона).

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

Рисунок 1. Взаимодействие в игре между клиентом и сервером.

На рисунке исходный игры Space.exe получает и обменивается данными с библиотекой Headers_games.DLL, эта библиотека обменивается данными с сервером СУБД. За контроль обновление данных в режиме реального времени отвечает Server.exe - планировщик задач. Данный сервер работает в асинхронном [4] режиме так как необходимо выполнять несколько функций на обновление данных одновременно.

К обновляемым данным в игре относятся: постройки, науку, наем флот и обороны, полёт флота, бой между игроками.

Обновление данных построек и науки — это улучшение объекта на новый уровень развития. Например: игрок выбирает построить верфь, объект имеет начальные параметры до улучшения: уровень, ресурсы на постройку, время улучшение. После улучшения верфь станет на один уровень выше (если был 2ур. То станет 3 уровнем).

Обновление данных флота и обороны - это наем флота/обороны в количественном эквиваленте. Так как в игре много различных единиц флота и обороны для каждого из них разбранённые свои стартовые параметры: атака, оборона, щиты, скорость перелёта, стоимость найма (метал, кристалл, дейтерий), время наем одной единицы.

Обновление полёта флота - это перемещение флота со своей планеты к другой с одной из миссий: разведать планету или атаковать планету. Имеет набор параметров: координаты планеты старта пути, координаты планеты конца пути, миссия, время полёта до цели, флот, груз.

Результатом обновления полёта флота при миссии «разведать планету» будет данные того что находится на планете у другого игрока(рис.2).

Результатом обновление при миссии «атаковать планету» будет бой между двумя игроками. Бой может закончиться ничей или победой одного из игроков и полной полным уничтожением флота другого игрока. И если победила атакующая сторона, то игрок ещё и совершает рейд планеты (забирает половину от всех ресурсов, которые были на планете на момент проведения боя).

Отчёт боя печатается на как web-страница и в виде таблицы c использованием JSON пакетов для её формирования(рис.3).

Рисунок 2. Пример формы-отчёта о шпионаже.

Время бон: 0S.06.2022 13:53:58

atex VS qqq

Победитель в бое: atex

Аттмущи й мкмтнл рчсурсы 0ШКр«гтал 16 707 Дейтерий 12 530

ЬОЕВОЙ ОТЧЕТ

Хкчпкркпмиряни

АтакмзнЛ Заиропанлпнй

Орутктннля ЩНШНГШ 55? Ь Oii

Щшовоа tdtHbMrtd 50*« 0%

E^OHiKfC SD'i 0%

Ооорокая ПЛДНС1Ы

| Дта^уьошнй

Г л;Ml- 111TiЛЬ ¡\рг;~КГр lilHiCp Бп^олрзирорлпгк

| Кадшг*т»о II S93SO Ц || 500 |

Атжа ШО || К4Х)'|| 56000 || 56000

1 Ею« ii ЧПОП II 11770ft li IflfiOnil i«5wi :

Рисунок 3. Пример отчёта о бое между игроками.

Обновление данных боя между игроками - это сложная функция, которая включает в себя ряд подфункций:

Получение данный о флотах притворствующих сторон Получение основных бонусных характеристик в процентах Расчёт боя между игроками

Обновление данных после боя о состоянии флотов игроков Начисление exp победившей стороне Обновление военного звания у победителя

Алгоритм «Боя между игроками».

Алгоритм боя в игре реализован по принципу, силы веса одного залпа из всех кораблей с каждой из сторон, а также общих параметров брони и щитов для всех кораблей. Такой алгоритм позволят упростить способ счёт повреждения кораблей, принимающих в бое.

Первый удар производит атакующая сторона, а второй за защитник и так поочерёдно до полного уничтожение одной из сторон.

Алгоритм просчитывает: пока есть щиты то удары будут приходиться по ним без потери флота. Как только щиты сбиваются, удар принимает броня кораблей и начитаться уничтожение кораблей от самых слабых до самых сильных.

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

Вывод.

Проведена общая характеристика PvP игр и их отличие от PvE и то как они используются в современных играх.

При разработке компьютерной PvP игры-стратегии «Космос» была реализована вариативность способ её прохождения: производственный, исследовательский, военный. Каждый из которых связан между и зависит от другого. Возможность общение между игроками.

Для корректной игры в режиме реально времени был разработанный сервер, который обновляет данные в игре согласно код-команде и времени её выполнения. Сервер работает асинхронно что позволяет его не перегружать и достигать высокой производительности при обработке большего количества запросив на обновление данных.

В игре несмотря на множество плюсов есть и недостатки:

1. Нет режима PvE, это режим бы сделал игру ещё более интересной и вариативной в плане развития игрока.

2. Игра реализована в 2D режиме - то есть нет ни каких визуальных эффектов и трёхмерных моделей боев, планет, космоса.

СПИСОК ЛИТЕРАТУРЫ:

1. Игровой бой типа PvP [Электронный ресурс] - URL: https: //ru. wikipedia. org/wiki/PvP;

2. NET Framework [Электронный ресурс] - URL: https://microsoft.fandom. com/ru/wiki/. NET_Framework;

3. Руководство по программированию в Windows Forms [Электронный ресурс] - URL: https://metanit.com/sharp/windowsforms/;

4. Асинхронное программирование на с# [Электронный ресурс] - URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/async;

5. Работа с JSON [Электронный ресурс] - URL: https: //metanit. com/sharp/tutorial/6. 5. php

Sotnikov A. V., Zorya S.A.

Sotnikov A.V.

Donetsk National Technical University (Donetsk, Russia)

Zorya S.A.

Donetsk National Technical University (Donetsk, Russia)

DEVELOPMENT OF COMPUTER PVP STRATEGY GAME "COSMOS"

Abstract: the article explores the development of a computer strategy game using the methods of PvP and PvE game models. Describe how the process of developing and testing a computer strategy game "COSMOS" took place.

Keywords: strategy, algorithms, client-server, task scheduler, asynchronous programming.

i Надоели баннеры? Вы всегда можете отключить рекламу.