Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Подключиться к игровому столу через группу

Поиск

Цель:

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

Сценарий:

Игрок заходит в группу и ожидает, пока лидер группы не создаст игровой стол.

Подключиться к игровому столу по параметрам

Цель:

Подключиться к игровому столу с нужными параметрами.

Сценарий:

Нажимаем кнопку «найти игру», выбираем нужные параметры и нажимаем кнопку «играть»

Использовать чат

Цель:

Прочитать или отправить сообщение.

Предусловие:

Пользователь должен быть аутентифицирован и находиться в главном меню.

Сценарий:

Выбираем вкладку по сценарию «Сменить вкладку», выполняем сценарий «Прочитать сообщение» для прочтения сообщения и выполняем сценарий «Отправить сообщение» для отправки сообщения.

Сменить вкладку

Цель:

Выбрать определенную вкладку чата.

Сценарий:

В окне чата выбрать нужную вкладку.

Прочитать сообщение

Цель:

Прочитать сообщение.

Предусловие:

Пользователь должен находится в нужной вкладке.

Сценарий:

Прокручиваем окно чата до нужного сообщения и читаем это сообщение.

Отправить сообщение

Цель:

Отправить сообщение.

Предусловие:

Пользователь должен находится в нужной вкладке.

Сценарий:

В поле для ввода текста набираем сообщение с клавиатуры и нажимаем кнопку «Отправить». В чате появляется, отправленное им сообщение.

Создать вкладку

Цель:

Создать новую вкладку.

Сценарий:

Если пользователь хочет создать чат с конкретным пользователем, то он находит этого пользователя и сообщает ему о том, что хочет создать с ним чат, нажав кнопку «шепнуть». Создается вкладка с чатом этого пользователем.

Альтернативный сценарий:

Если пользователь хочет общаться с группой, то он вступает в эту группу и появляется вкладка с групповым чатом.

Использовать систему «группа»

Цель:

Перегруппироваться.

Предусловие:

Пользователь должен быть аутентифицирован и находиться в главном меню.

Сценарий:

Выполняем нужный сценарий из ниже перечисленных.

Пригласить

Цель:

Пригласить пользователя в группу.

Предусловие:

Если пользователь в группе, то пользователь должен быть лидером группы и в группе не должно быть приглашаемого пользователя.

Сценарий:

В поле «пригласить друга» набрать nick пользователя и нажать кнопку «Пригласить»

Распустить

Цель:

Распустить группу.

Предусловие:

Пользователь должен быть лидером группы.

Сценарий:

Нажать кнопку «Распустить группу»

 

Исключить из группы

Цель:

Исключить из группы.

Предусловие:

Пользователь должен быть лидером группы.

Сценарий:

Нажать кнопку «Исключить» напротив нужного игрока.

Выйти из группы

Цель:

Выйти из группы.

Предусловие:

Пользователь должен находиться в группе.

Сценарий:

Нажать кнопку «Покинуть группу».

Зайти в группу

Цель:

Зайти в группу.

Предусловие:

Пользователь должен получить приглашение.

Сценарий:

Нажать кнопку «Принять».

Альтернативный Сценарий1:

Нажать кнопку «Отклонить».

Просмотреть игровую статистику

Предусловие:

Пользователь должен быть аутентифицирован и находиться в главном меню.

Просмотреть рейтинг Honor

Цель:

Посмотреть Honor учетной записи.

Сценарий:

Пользователь нажимает кнопку «Honor» и в поле ввода текста вводит nick нужного пользователя.

Альтернативный Сценарий1:

Свои очки Honor находятся в главном меню.

3.2.5 Функциональные требования для роли Игрок

Играть

Цель:

Победить.

Предусловие:

Пользователь должен находиться на игровом столе.

Сценарий:

Атакуем и защищаем. Если потеряны все Unit, то поражение. Если захватили все вражеские Unit, то победа.

Защищать

Цель:

Сконцентрировать силы на Unit.

Сценарий:

Направляем свои Unit на союзный Unit.

3.2.6.2 Атаковать

Цель:

Захватить Unit.

Сценарий:

Направляем свои Unit на вражеский Unit. Если здоровье Unit меньше нуля, то Unit переходит

к атаковавшему.

3.2.7 Просмотреть статистику сражения

Цель:

Посмотреть статистику.

Предусловие:

Пользователь должен находиться на игровом столе.

Сценарий:

Закончить игру.

 

3.3 Нефункциональные требования

· Игровое поле вмещается на экран без скроллов

· Чат должен занимать не более 1/3 экрана

· Отзывчивый интерактивный интерфейс

· Поддержка разрешений экрана

1. 1600х900

2. 800х600

3. 1280х720

· Платформа Windows c возможностью портировать на платформы Linux, IOS, Android, Mac OS X

 

 

Обзор архитектуры

Описание архитектуры системы.

Компонентная модель системы

Система состоит из 4 сборок. Из 2 библиотек и 2 приложений. В первую очередь собирается “SimpleTeam Lib”. После “GameOne Lib”, который зависит от “SimpleTeam Lib”. И 2 приложения, которые зависят от этих библиотек. Непосредственно 2 приложения представляют клиент и сервер.

SimpleTeam Lib

Базовая библиотека. Подразумевается, что она задает общий контракт, общее поведение всей системы. В дальнейшем можно написать другую клиент-серверную игру на основе этой библиотеки.

SimpleTeam.BinarySerialization

Контракт бинарного сериализатора. Можно запаковать и распаковать сообщение (IMessage ó Packet).

SimpleTeam.BinarySerialization.DotNet

Базовая реализация сериализатора при помощи средств “.NET”.

SimpleTeam.Command

Контракт команд системы. Команда получает в качестве параметра реестр параметров (всех классов), с которыми можно будет общаться. Команда изначально знает с каким классом она хочет взаимодействовать и просит класс по его ID (interface ITypeID). Если реестр не дал класс, значит по какой либо причине класс недоступен или данной команде отказано в доступе. (Последнее будет написано позже)

SimpleTeam.Command.Scenario

Контракт исполнения команд. Существует очередь исполнения команд и исполнитель. Исполнитель является независимым потоком. Исполнитель узнает от главного потока обо всех командных очередях, обо всех классах с которыми эти команды будут общаться. Хранит в себе реестр всех параметров, что и реализует данный контракт. Предполагается, что класс с которым можно взаимодействовать, хранит в себе командную очередь, которую может пополнять. Исполнитель в свою очередь опустошает ее. Может и не хранить очередь, если он является «читателем».

SimpleTeam.Main

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

SimpleTeam.Message

Протокол сообщений, при помощи сообщений клиент и сервер общаются. Каждый тип сообщения хранит в себе ID (interface ITypeID). В сообщении лежит список рассылки пользователей. Это означает, что внутренняя система всегда знает, от какого пользователя пришло сообщение. А интернет протокол всегда знает кому отправить это сообщение.

SimpleTeam.Network

Сетевой протокол, обертка над TCP протокол. TCP поток скрывается NetworkParser, поднимая на уровень пакетов. NetworkUserProtocol общается с NetworkParser, поднимая на уровень User.

SimpleTeam.SystemBase

Общие системные контракты. Паттерн машины состояний работающей на отдельном потоке, протокол ITypeID типов классов.

SimpleTeam.User

Сетевая и внутри игровая информация о пользователе. В дальнейшем будет переделан User протокол. Не сетевая информация должна находиться не в базовой библиотеке.

 

GameOne Lib

Библиотека конкретной игры. Реализация контрактов SimpleTeam Lib.

SimpleTeam.GameOne.BinarySerialization

Сериализатор для данной игры. Сериализует конкретные IMessage, экономит память.

SimpleTeam.GameOne.Command

Конкретные команды и параметры для игры. Реализация общения классов.

SimpleTeam.GameOne.GameInfo

Информация о всех игровых объектах, которые требуется передавать по сети.

SimpleTeam.GameOne.Message

Полная реализация протокола сообщений.

SimpleTeam.GameOne.Message.Manager

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

SimpleTeam.GameOne.Scene

Определяет контракт сцен, с которыми можно при помощи команд взаимодействовать.

GameOne Client

Клиент игры.

SimpleTeam.GameOne.Main

Запуск приложения и ее поддержка. Реализация IMain из SimpleTeam Lib.

SimpleTeam.GameOne.Message

Контейнер сообщений для сцен. Хранит сообщения, пришедшие в сцену.

SimpleTeam.GameOne.Network

Реализация NetworkClientMachine. Полное поведение сетевого протокола со стороны клиента.

SimpleTeam.GameOne.Scene

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

 

GameOne Server

Сервер игры.

SimpleTeam.GameOne.Data

База данных. Данные игроков, возможно состояние сервера и его логгирование.

SimpleTeam.GameOne.Main

Запуск приложения и ее поддержка. Реализация IMain из SimpleTeam Lib.

SimpleTeam.GameOne.Network

Реализация NetworkServerMachine. Полное поведение сетевого протокола со стороны сервера.

SimpleTeam.GameOne.Scene

Полная обработка логики игры со стороны сервера. (Система не готова)



Поделиться:


Последнее изменение этой страницы: 2016-08-10; просмотров: 215; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.237.54 (0.008 с.)