Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Зарегистрировать учетную запись↑ Стр 1 из 2Следующая ⇒ Содержание книги
Поиск на нашем сайте
Введение Цель Проект Mavirea представляет собой многопользовательскую игру - стратегию в реальном времени. Область действия Документ разработан в рамках проекта Mavirea на основе стандартного шаблона Inteks SEP и предназначен для использования студентами ФФ и преподавателями курса ООАД. Определения и сокращения
Таблица 1: Определения и сокращения
Ссылки В тексте содержатся ссылки на следующие документы: [1] https://goo.gl/95jvGc - стратегия в реальном времени [2] https://goo.gl/hpwMOJ - игра «Tentacle Wars» [3] https://goo.gl/ZPRGxv - игра «Eufloria» [4] https://goo.gl/Oz0sib - игра «Solarmax 2» Ссылки приводятся в виде [N], где N – номер документа в вышеприведенном списке. Краткое описание Существует множество подобных игр, но обладающих целым рядом недостатков: · Игра возможна только против компьютера · Игровое развитие ограничено · Эти проекты не развиваются Будущий программный продукт позволит игрокам: · Сыграть в любимую игру с друзьями · Посоревноваться с другими игроками · Расширятся возможности игровой механики
Описание предметной области и проблем, для решения которых предназначен будущий программный продукт, приведены в разделе 2. Раздел 3 содержит описание требований к программному решению, раздел 4 – описание архитектуры выбранного решения. Предметная область проекта Наша игра в жанре RTS[1]. На старте unit на игровом поле распределяются между игроками, некоторые unit могут быть нейтральными. Каждый unit имеет очки HP. Как только появляется надпись старт, вы можете начинать действовать, также у ваших unit начнет генерироваться HP. Для того чтобы захватить unit противника вам необходимо создать Link между вашим одним или несколькими unit и вражеским unit. Link передает очки HP, таким образом при направлении Link на свой unit его HP будет пополняться, а если Link направить на вражеский unit, то его HP будут уменьшаться. Link может быть разорвана, тогда происходит быстрое возвращение очков HP. В случае, когда у вражеского unit закончились HP, то управление этим unit перейдет к игроку нанесшему добивающий урон. Сражение происходит до того момента пока не будут захвачены все вражеские unit на игровом столе. Примеры похожих игр: концептуально похожая: [2], идейно схожие: [3], [4]. Существующие проблемы · Отсутствие многопользовательского режима у всех существующих вариаций этой игры. · Ограниченный набор карт. · Однотипное компьютерное поведение. · Отсутствует система рейтинга в игре. Решения: · Создание многопользовательского режима. · Создание генератора карт. · Создание редактора карт. · Создание системы рейтинга игрока. · Ведение статистики учетной записи. · Статистика сражения. · Создание системы общения в игре. · Игровые события.
Предполагаемое решение Проблема разнообразия в игровом процессе решается путем интеграции многопользовательского режима. Будет создана система расчета Honor игрока.
Требования к программному решению Данный раздел описывает требования к программной системе, разрабатываемой в рамках проекта Mavirea. Роли В предлагаемой к разработке системе идентифицированы следующие роли: 1. Пользователь – человек, который взаимодействует с главным меню 2. Игрок – человек, который взаимодействует с игровым столом 3.2 Функциональные требования для роли Пользователь
Сменить учетную запись Цель: Зайти на конкретную учетную запись. Предусловие: Пользователь должен находиться в главном меню. Сценарий: Если эта учетная запись существует, и пользователь не аутентифицирован, то он выполняет сценарий «Аутентификация». Альтернативный сценарий: Если пользователь находится не в той учетной записи, то он выполняет сценарий «Выйти из учетной записи», после переходит на другой сценарий по условию ветвления. Альтернативный сценарий: Если этой учетной записи не существует, то пользователь выполняет сценарий «Зарегистрировать учетную запись», после переходит на другой сценарий по условию ветвления. Выйти из учетной записи Цель: Выйти из учетной записи. Предусловие: Пользователь должен быть аутентифицирован. Сценарий: Пользователь нажимает кнопку «выйти из учетной записи» и в поле профиля престают отображаться данные о пользователе. Аутентификация Цель: Войти в учетную запись Предусловие: Пользователь должен быть не аутентифицирован. Сценарий: Пользователь нажимает кнопку «войти в учетную запись». Всплывает новое окно с полями для ввода аутентификационных данных. Пользователь вводит корректные e-mail и пароль в специальные поля и нажимает кнопку «вход». Если вход выполнен, то пользователю сообщается о том, что вход выполнен, система входит в учетную запись и отображается поле профиля в меню Альтернативный сценарий: Если аутентификация по каким-либо причинам не произошла, то всплывает окно, которое сообщает о том, что вход не выполнен и причину ошибки. Пользователю необходимо вновь повторить этот сценарий. Начать игру Цель: Запуск игрового стола. Предусловие: Пользователь должен быть аутентифицирован и находиться в главном меню. Сценарий: Выбрать игровой стол, или подключиться к столу друга, или создать стол. Создать игровой стол Цель: Создать игровой стол. Сценарий: Выбираем карту и нажимаем «создать». Использовать чат Цель: Прочитать или отправить сообщение. Предусловие: Пользователь должен быть аутентифицирован и находиться в главном меню. Сценарий: Выбираем вкладку по сценарию «Сменить вкладку», выполняем сценарий «Прочитать сообщение» для прочтения сообщения и выполняем сценарий «Отправить сообщение» для отправки сообщения. Сменить вкладку Цель: Выбрать определенную вкладку чата. Сценарий: В окне чата выбрать нужную вкладку. Прочитать сообщение Цель: Прочитать сообщение. Предусловие: Пользователь должен находится в нужной вкладке. Сценарий: Прокручиваем окно чата до нужного сообщения и читаем это сообщение. Отправить сообщение Цель: Отправить сообщение. Предусловие: Пользователь должен находится в нужной вкладке. Сценарий: В поле для ввода текста набираем сообщение с клавиатуры и нажимаем кнопку «Отправить». В чате появляется, отправленное им сообщение. Создать вкладку Цель: Создать новую вкладку. Сценарий: Если пользователь хочет создать чат с конкретным пользователем, то он находит этого пользователя и сообщает ему о том, что хочет создать с ним чат, нажав кнопку «шепнуть». Создается вкладка с чатом этого пользователем. Альтернативный сценарий: Если пользователь хочет общаться с группой, то он вступает в эту группу и появляется вкладка с групповым чатом. Пригласить Цель: Пригласить пользователя в группу. Предусловие: Если пользователь в группе, то пользователь должен быть лидером группы и в группе не должно быть приглашаемого пользователя. Сценарий: В поле «пригласить друга» набрать 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.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.Command Конкретные команды и параметры для игры. Реализация общения классов. SimpleTeam.GameOne.GameInfo Информация о всех игровых объектах, которые требуется передавать по сети. SimpleTeam.GameOne.Message Полная реализация протокола сообщений. 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 Полная обработка логики игры со стороны сервера. (Система не готова) Допущения и ограничения При разработке проекта был плохо изучен\разработан сетевой протокол отправки данных. В связи с этим принято допущение, что у сетевого соединения нет больших задержек и соединение надежное, без разрывов. Иначе допускаются потери сетевых данных, потеря текущего системного состояния, вплоть до не корректной работы клиента. За исключением «бинарного сериализатора», «системы пакетов» и «системы сообщений» сетевой протокол потребуется переделать. Плохо изученная\спроектированная GUI система. Существуют проблемы масштабируемости шрифтов (и т.п.) под разные разрешения, как следствие некорректное их отображение. GUI система стабильна, при учете стабильного сетевого протокола. В дальнейшем данную систему потребуется переделать. Сервер разработан по системе независимой машины, которая может работать автономно, не дожидаясь запросов клиента, что приводит к проблеме запуска данного сервера в сети интернет. Система будет переорганизована, после решения проблемы с сетевым протоколом. Недоработанное межпоточное взаимодействие на приложении. В связи с этим возможна излишняя или недостаточная отзывчивость приложения. Возможно не сбалансированная, не оптимальная нагрузка между потоками. Решается путем профилирования кода и небольшой реорганизацией задач между потоками. Нет знаний по базам данных. Создана простая система базы данных. Ограниченная функциональность по сохранению данных игрока. На данной стадии нет «суперпользователя». Сервер ни кем не администрируется.
Известные проблемы Ниже приводятся известные на данный момент проблемы и недоработки выработанного программного решения, а также возможные пути их устранения в последующих итерациях проекта. Не администрируемый сервер
Лист регистрации изменений
[В качестве описания версии можно указывать какие изменения/дополнения были сделаны в этой версии по отношению к предыдущей.] Лист регистрации проверок
[Здесь описываются результаты проверки документа. Для каждой проверки указывается число, версия документа, описание результатов проверки и имя человека, который делал проверку.] Введение Цель Проект Mavirea представляет собой многопользовательскую игру - стратегию в реальном времени. Область действия Документ разработан в рамках проекта Mavirea на основе стандартного шаблона Inteks SEP и предназначен для использования студентами ФФ и преподавателями курса ООАД. Определения и сокращения
Таблица 1: Определения и сокращения
Ссылки В тексте содержатся ссылки на следующие документы: [1] https://goo.gl/95jvGc - стратегия в реальном времени [2] https://goo.gl/hpwMOJ - игра «Tentacle Wars» [3] https://goo.gl/ZPRGxv - игра «Eufloria» [4] https://goo.gl/Oz0sib - игра «Solarmax 2» Ссылки приводятся в виде [N], где N – номер документа в вышеприведенном списке. Краткое описание Существует множество подобных игр, но обладающих целым рядом недостатков: · Игра возможна только против компьютера · Игровое развитие ограничено · Эти проекты не развиваются Будущий программный продукт позволит игрокам: · Сыграть в любимую игру с друзьями · Посоревноваться с другими игроками · Расширятся возможности игровой механики
Описание предметной области и проблем, для решения которых предназначен будущий программный продукт, приведены в разделе 2. Раздел 3 содержит описание требований к программному решению, раздел 4 – описание архитектуры выбранного решения. Предметная область проекта Наша игра в жанре RTS[1]. На старте unit на игровом поле распределяются между игроками, некоторые unit могут быть нейтральными. Каждый unit имеет очки HP. Как только появляется надпись старт, вы можете начинать действовать, также у ваших unit начнет генерироваться HP. Для того чтобы захватить unit противника вам необходимо создать Link между вашим одним или несколькими unit и вражеским unit. Link передает очки HP, таким образом при направлении Link на свой unit его HP будет пополняться, а если Link направить на вражеский unit, то его HP будут уменьшаться. Link может быть разорвана, тогда происходит быстрое возвращение очков HP. В случае, когда у вражеского unit закончились HP, то управление этим unit перейдет к игроку нанесшему добивающий урон. Сражение происходит до того момента пока не будут захвачены все вражеские unit на игровом столе. Примеры похожих игр: концептуально похожая: [2], идейно схожие: [3], [4]. Существующие проблемы · Отсутствие многопользовательского режима у всех существующих вариаций этой игры. · Ограниченный набор карт. · Однотипное компьютерное поведение. · Отсутствует система рейтинга в игре. Решения: · Создание многопользовательского режима. · Создание генератора карт. · Создание редактора карт. · Создание системы рейтинга игрока. · Ведение статистики учетной записи. · Статистика сражения. · Создание системы общения в игре. · Игровые события.
Предполагаемое решение Проблема разнообразия в игровом процессе решается путем интеграции многопользовательского режима. Будет создана система расчета Honor игрока.
Требования к программному решению Данный раздел описывает требования к программной системе, разрабатываемой в рамках проекта Mavirea. Роли В предлагаемой к разработке системе идентифицированы следующие роли: 1. Пользователь – человек, который взаимодействует с главным меню 2. Игрок – человек, который взаимодействует с игровым столом 3.2 Функциональные требования для роли Пользователь
Сменить учетную запись Цель: Зайти на конкретную учетную запись. Предусловие: Пользователь должен находиться в главном меню. Сценарий: Если эта учетная запись существует, и пользователь не аутентифицирован, то он выполняет сценарий «Аутентификация». Альтернативный сценарий: Если пользователь находится не в той учетной записи, то он выполняет сценарий «Выйти из учетной записи», после переходит на другой сценарий по условию ветвления. Альтернативный сценарий: Если этой учетной записи не существует, то пользователь выполняет сценарий «Зарегистрировать учетную запись», после переходит на другой сценарий по условию ветвления. Выйти из учетной записи Цель: Выйти из учетной записи. Предусловие: Пользователь должен быть аутентифицирован. Сценарий: Пользователь нажимает кнопку «выйти из учетной записи» и в поле профиля престают отображаться данные о пользователе. Аутентификация Цель: Войти в учетную запись Предусловие: Пользователь должен быть не аутентифицирован. Сценарий: Пользователь нажимает кнопку «войти в учетную запись». Всплывает новое окно с полями для ввода аутентификационных данных. Пользователь вводит корректные e-mail и пароль в специальные поля и нажимает кнопку «вход». Если вход выполнен, то пользователю сообщается о том, что вход выполнен, система входит в учетную запись и отображается поле профиля в меню Альтернативный сценарий: Если аутентификация по каким-либо причинам не произошла, то всплывает окно, которое сообщает о том, что вход не выполнен и причину ошибки. Пользователю необходимо вновь повторить этот сценарий. Зарегистрировать учетную запись Цель: Создать учетную запись. Предусловие: Пользователь должен быть не аутентифицирован. Сценарий: Пользователь нажимает кнопку «Зарегистрировать учетную запись». Всплывает новое окно, в котором есть поля для ввода регистрационных данных. Пользователь вводит nick, e-mail и пароль и нажимает кнопку «зарегистрироваться». Если регистрация прошла успешна, то пользователю сообщается о том, что пользователь зарегистрирован. Альтернативный сценарий: Если регистрация не удалась, то пользователю сообщается об этом и говорится причина ошибки. Тогда пользователю необходимо вновь повторить сценарий регистрации.
Начать игру Цель: Запуск игрового стола. Предусловие: Пользователь должен быть аутентифицирован и находиться в главном меню. Сценарий: Выбрать игровой стол, или подключиться к столу друга, или создать стол. Создать игровой стол Цель: Создать игровой стол. Сценарий: Выбираем карту и нажимаем «создать».
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-10; просмотров: 192; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.135.226 (0.011 с.) |