Разработка уровня «головоломка» в мультижанровой игре

Принципы и основные этапы разработки компьютерной игры. Обоснование выбора необходимого инструментария разработки, алгоритмов и библиотек. Проектирование приложения и пользовательского интерфейса, главные требования к ним. Реализация и тестирование игры.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.12.2019
Размер файла 4,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Разработка уровня «головоломка» в мультижанровой игре

Введение

Ежедневно индустрия развлечений набирает обороты, согласно исследованиям журнала Forbes [1], рост доходов этой части рынка уже превосходит киноиндустрию. Существует два основных способа монетизации видеоигр: первый, продажа игры за фиксированную плату, второй, free to play - бесплатное распространение игры с внутриигровым магазином. Но, желание заработать привело крупные издательства к совмещению данных моделей монетизации, что было негативно встречено простыми игроками. Покупая игру, компании вынуждают покупать дополнения и внутренний контент, чтобы получить все то, что задумывали разработчики.

Игровая индустрия представляет из себя два лагеря, первым являются крупные издатели, выпускающие 3-4 крупных проекта в год, вторым инди разработчики, создающие небольшие и интересные проекты.

Чтобы выйти на этот рынок в область индустрии развлечений недостаточно просто сделать интересную игру с хорошим сюжетом, также нужно сделать запоминающуюся особенность или отразить интересующую людей идею. Что бы не потерятся в большом количестве разных проектов, требуется провести анализ рынка, изучить правила публикации, разобраться с условиями рекламы, продумать все детали игры и сделать качественный продукт, производящий хорошее впечатление, и открывающийся пользователям с новой стороны при каждом следующем шаге. В ходе проекта организованна групповая работа для создания небольшой игры, повествующей о реалиях современной игровой индустрии, о проблеме монетизации игр, в частности такими компаниями как EA и Ubisoft. Далее в работе описан процесс создания уровня с головоломкой, описана часть работы с графической составляющей, процесс объединение результатов работы группы и тестирование.

При разработке использован популярный игровой движок - Unity 5, позволяющий создавать игры в любом из жанров. При реализации продукта на данной технологии, есть возможность использовать большое количество материала от комьюнити, присутствует большое количество справочной информации.

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

Объектом данной работы является - Сложившаяся в игровой индустрии система монетизации.

Предметом данной работы является - Программное обеспечение для игры (уровень головоломка и сетевой режим).

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

Для достижения поставленной цели необходимо выполнить следующие задачи:

1. Проанализировать предметную область, выявить основные особенности.

2. Составить дизайн-документ.

3. Распределить задач в группе.

4. Выбрать инструментарий разработки, алгоритмы и библиотеки.

5. Спроектировать приложение и пользовательский интерфейс.

6. Реализовать и протестировать игру.

В данной работе создается мульти жанровая 2D-игра, с рядом разнообразных уровней, с использованием Unity 5, C#, MS Visual Studio и других инструментов.

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

В проведении исследования будут использоваться следующие методы: наблюдение и опрос для понимания предметной области, анализ с целью получения общей картины рынка, моделирование для построения качественного интерфейса, интересного дизайна уровней, сравнение и закрытое бета-тестирование для выявления недостатков в проекте, а также контакт с аудиторией в виде плей-тестинга и сбора предложений и пожеланий [3].

1. Анализ предметной области и постановка задач

Разработка компьютерных игр - это процесс, собирающий в себе знания из большого количества областей - музыка, компьютерная графика, сценарное мастерство, программирование и тестирование.

1.1 Анализ индустрии копьютерных развлечений

С каждым годом индустрия компьютерных развлечений набирает обороты, согласно исследованиям журнала Forbes [1], рост доходов этой части рынка уже превосходит киноиндустрию. Согласно информации сайта GamesIndustry.biz, доходы компаний в этой области за 2017 год составляют более 116 миллиардов долларов [2]. Ежегодно появляются крупные игровые проекты, большое количество инди-проектов, инструментарий - игровые движки - позволяющие разработчикам быстро и эффективно создавать качественные продукты, а также магазины наработок, предлагающие готовые модели, графику и звуки за небольшое вознаграждение.

Появилось несколько мировых онлайн-магазинов, таких как Steam, Gog, Epic Store, Sony, Microsoft Store, централизующих торговлю и позволяя вести детальную аналитику продукции и отслеживать ситуацию на рынке.

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

Существует два основных способа монетизации видеоигр: первый, продажа игры за фиксированную плату, второй, free to play - бесплатное распространение игры с внутриигровым магазином. Но, желание заработать привело крупные издательства к совмещению данных моделей монетизации, что было негативно встречено простыми игроками. В индустрии существуют хорошие примеры совмещения - игра The Wither 3, от польской студии CD Project Red. Данная компания выпустила к игре два дополнения, за 400 и 800 рублей, при этом добавив к основной игре 10 и 30 часов игры соответственно.

С другой стороны, большинство выпускаемых дополнений при аналогичной стоимости добавляет в игру около часа игрового времени, косметические изменения. Пример - Call of Duty Ghosts. При цене 2599 рублей за игру 2014 года, так же предлагает купить 51 дополнение, на сумму более 7,5 тысяч рублей.

На рынке компьютерных развлечений наблюдается явный процесс снижения качества продукции и увеличение цен на развлечения, рост числа платных дополнений, микро-транзакций, без которых игра становиться неполноценной. А основной идее выпуска новых игр является получение прибыли, такой конвейер приводит к гибели известных студий и проектов. Согласно исследованиям WePC.com [28], рост прибыли с продаж дополнений неуклонно растет и уже опережает прибыли от продаж игр.

1.2 Постановка проблемы и возможные решения

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

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

1.3 Анализ платформ и предпочтений игроков

Приняв разработку игры в качестве решения, перейдем к изучению рынка компьютерных развлечений. Рассмотрим актуальные платформы и жанры, чтобы определить наиболее востребованный концепт игр. Согласно вышеупомянутой статье от gamesindustry.biz [2], рис. 1.4, лидирующей платформой является мобильный рынок, занимающий 43%, в котором 34% отдано смартфонам. Второе место делят между собой консоли и компьютеры, заняв примерно по 30%.

Приведенные данные сопоставимы с данными WePC.com [28], рассматривающими распределения игроков по платформам в 2019 году. По данным этого сайта, уже 45% рынка отданы мобильному сегменту, и он продолжает расти. По диаграмме видно, что 26% и 25% (+4% веб игры) поделили консоли и персональные компьютеры соответственно.

Говоря о Российском сегменте, согласно небольшому исследованию, проведенному в одной из групп в социальной сети Вконтакте, рис. 1.6, лидирует персональный компьютер, что подтверждается опросом от журнала Игромания, в официальной группе той же социальной сети, где приняло участие более 50 тысяч человек.

Рассмотрим популярность разных жанров игр в России, согласно исследованию проведенному компанией разработчиком игры Хроники Хаоса, в опросе которой приняло участие более 48 тысяч человек, рис. 1.8, первое место занимают FPS игры с результатом почти в 45%, на втором месте RPG с их 31%, далее стратегии собравшие более четверти голосов.

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

Исходя из всех этих данных следует, что для Российской аудитории основной игровой платформой является компьютер и основным жанром является FPS, что в результате является более чем 25% игровой аудитории.

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

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

Поскольку работа выполняется в группе, требуется организовать эффективную коммуникацию, выбрать стратегии для решения вопросов и споров, которые возникнут в будущем и определиться с набором технологий и методов группового взаимодействия [21].

Agile [27] выбран за его гибкость, универсальность и удобность для небольших коллективов. Сроки итераций увеличены до 6 недель. Одной из ключевых причин выбора так же является малое количество документации, которое компенсируется общением. По окончании итерации диаграммы завершения задач, даты и уменьшение задач.

Планинг Покер был выбран для оценивания трудоемкости задач, поскольку эта методика позволяет быстро оценить задачу по ряду параметров, используя опыт каждого члена команды. В спорных моментах обсуждение позволяет увидеть иные стороны вопроса, что полезно в проектировании.

Экстремальное программирование выбран для использования в коллективе с целью быстро решать проблем в процессе разработки, за счет использования опыта других членов команды.

WorkReview - нами придуманная практика, основанная на CodeReview, для проверки работы других участников, понимания всех частей дипломной работы, контроля качества и внесения идей. Специально разработан для дипломной работы в этом коллективе.

Бальная система оценки - так же нами придуманная практика для оценки участия человека в процессе работы. Система основывается на баллах, которые человек получает за выполнение той или иной задачи (в соответствии с человеко-часами на задачу), за WorkReview +1 балл. При работе нескольких участников балы за задачу делятся пополам.

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

Для отслеживания прогресса и сроков, по окончании каждой итерации требуется составление диаграмм эффективности (например, круговая диаграмма с всеми участниками и баллами максимальным числом баллов за итерацию + участник «Не выполненно», столбчатая диаграмма задач). Полное описание и примеры с результатами работы приведены в приложениии И.

В группе так же создан стайл-гайд, доступный в приложении И. Инструментарий для организации и разработки описан в следующей главе.

В ходе выполнения первой главы, поставлена проблема агрессивной монетизации компьютерных развлечений и выбрана стратегия её решения - компьютерная игры, с сюжетом отражающим проблему. Проведен анализ рынка компьютерных развлечений, выявлены популярные жанры - шутер и RPG, и платформы - PC для Российского рынка. Организована групповая работа и придумано несколько технологий для группового взаимодействия.

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

· Сюжет, направленный против текущей ситуации на рынке.

· Пародийность.

· Многожанровость (Выделить Шутер, RPG).

· Большое количество разнообразных механик для разных уровней.

· Кроссплатформенность (PC для России в приоритете).

· Вид с верху / сбоку.

· Сетевой режим.

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

· Язык C#.

· Встроенная физика.

· Инструментарий для групповой разработки.

· Бесплатность.

· Кросплатформенность.

Данные требования будут учтены при выборе игрового движка для создания запланированной игры.

2. Проектирование мультижанровой игры

Для решения поставленной проблемы, было принято решения реализовать компьютерную игру. Первым этапом разработки является проектирование игры. В ходе проектирования будет создан дизайн документ - описывающий концепцию, стилистику и логику игры, согласно статье Нилова С., «Как написать дизайн документ игры» [4]. Далее будет спроектирована архитектура, логика и сетевая составляющая игры. Последним этапом проектирования станет продумывание уровень «Головоломка».

2.1 Создание дизайн документа для игры

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

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

Главный герой, персонаж, живущий в мире игр студии «TMS.GDS» (The Most Successful Game Development Studio), которой грозит опасность - покупка студии большим издателем «Cash Hunter», что приведет к монетизации выпущенных игр и усложнит жизнь нашему герою. Ужасное произошло, и издатели начали внедрять свои «улучшения». Цель героя путешествовать по проектам студии и проходя игры, уничтожать все внедрения издателя.

Основной целевой аудиторией будут любители инди проектов, ценители сюжетных и веселых игр, возможно сторонники подхода издателя Developer Digital.

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

· Система порталов.

· Система нажимных плит.

· Система рычагов-активаторов.

· Система передвижных блоков и объектов.

· Система стрельбы.

· Роботы охранники и их AI.

· Двери.

· Зоны с газом.

Данная работа рассматривает разработку демонстрационной версии игры с 5 уровнями и одним боссом. С полным текстом дизайн документа можно ознакомиться в Приложении А.

2.2 Выбор средств разработки

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

2.2.1. Windows 10

В качестве основной платформы для разработки и реализации продукта выбрана наиболее популярная платформа Windows, 10 версия, занимающая более 41% рынка по данным NetMarketShare.com. Планируется совместимость с версиями 7, 8, 8.1, что обеспечит 87% охват рынка [29]. Вторым плюсом данной операционной системы является мощный инструментарий для работы с C# и платформой.NET Framework.

Основные преимущества:

· Высокая распространенность.

· Большой набор библиотек и поддержка C#.

· Большое количество профессиональных и многофункциональных программ.

· Хорошая изученность.

MS Visual Studio

Для создания и редактирования скриптов, разработки лаунчера и иных программных продуктов, связанных с игрой, выбрана MS Visual Studio. Во-первых, выбор основан на большой функциональности и полной совместимости с Unity. Во-вторых, на последующих итерациях продукт можно использовать для тестирования и отладки. В-третьих, есть большая справочная база на MSDN [30] и хорошая справочная литература по C# от Албахири [10]. На рис. 2.1 показан интерфейс программы.

Рисунок 2.1. Microsoft Visual Studio 2019

Основные преимущества:

· Большой функционал.

· Большой набор библиотек и поддержка C#.

· Раскрашивание кода.

· Встроенное тестирование.

· Поддержка Unity.

· LiveCode

· Интеграция с Git системами.

GIT и Unity

Инструментом для синхронизации кода выбран GIT, развернутый на MS Team Foundation Server, бесплатный по академической подписке. Программа позволяет вести совместную разработку, откатывать версии продукта, синхронизировать файлы. Хранение проектных файлов клиента будет в облаке Unity бесплатном для трех человек.

Paint Tool Sai2

В качестве программы для рисования выбрана распространенная Sai2, рассчитанная на работу с графическими планшетами. Программа является бесплатной, имеет большое количество сторонних дополнений, от пользователей, содержит большой функционал для работы с пером.

Adobe Photoshop

Многофункциональная программа для обработки графики, создания и редактирования изображений. Выбрана за наиболее полный функционал и универсальность, поддерживает графические планшеты, большое количество фильтров, кистей и настроек. На рис. 2.2 показан интерфейс программы.

Рисунок 2.2. Adobe Photoshop CC 2019

MS Visio

Для проектирования используется программа MS Visio, содержащая большое количество паттернов проектирования, множество готовых нотаций и разнообразных элементов для построения диаграмм. Программа позволяет быстро создавать разнотипные диаграммы и имеет возможность интеграции в другие офисные приложения Microsoft, что позволяет при изменении диаграммы, автоматически внести изменения в презентации и текст.

MS Office

Для работы с документацией, таблицами и презентациями используется MS Office. Данный пакет является наиболее функциональным и распространенным, позволяет работать с большим количеством расширений, добавлять изображения, диаграммы, проводить вычисления, строить графики и т.п. В месте с тяжелым клиентом имеется легкий веб клиент, интегрированный в облачные сервисы и позволяющий вести коллективную работу над документами. Рис. 2.3 демонстрирует интерфейс программы.

MS Office Word 2003

Яндекс. Диск

Облачный сервис, созданный компанией Яндекс [30]. Диск работает на бесплатной основе, предлагая всем пользователям 10 ГБ места, распространение ссылок, доступ нескольких пользователей и синхронизацию интерфейса. Система работает с 2012 года. Выбор этого облачного хранилища обусловлен наличием 80 бесплатных гигабайт, удобным доступом с возможностью автоматической синхронизации через приложение, мобильным доступом и удобным многопользовательским онлайн офисом. Яндекс позволяет хранить любые файлы.

Возможности:

· 10 ГБ свободного места для файлов без ограничений по времени.

· Синхронизация файлов между устройствами.

· Создание публичных ссылок на файлы.

· Просмотр документов, фото, видео.

· Графический редактор, MS Office Online.

· Работа с протоколом WebDav.

· Доступны Яндекс.API

· Возможность доступа к диску нескольких пользователей.

· История файлов, с возможностью отката (Платно).

· Основные платформы

· Web-версия.

· Windows, macOS, Linux

· iOS, Android, Windows Phone

· Поддерживаемые для просмотра форматы файлов

· Документы - DOC/DOCX, XSL/XSLX, PPT/PPTX, OpenDocument, ODS, ODP, CSV, RTF, TXT, PDF.

· Изображения - JPEG, PNG, GIF, BMP, TIFF, NEF, EPS, PSD, CDR, AI.

· Архивы - ZIP, RAR, Tar.

· Видео - MP4, WMV, MKV, AVI.

· Аудио - AAC, MP3, MKA.

· Книги - FB2, EPUB.

Таблица сравнения с другими облачными хранилищами показана в приложении Г. В главе Интернет-источники ссылки 31-40 ведун на главные страницы облачных сервисов с их описанием.

OneNote

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

Discord

Был выбран командой за его кроссплатформенность, бесплатность и возможности организовать общение, уведомления, передачу файлов и организовать чат, с нужной для команды структурой. Удобный высококачественный голосовой канал позволяет без проблем проводить собрания, конференции, и даже общаться в процессе разработки. На рис. 2.4 показан интерфейс программы.

Рисунок 2.4. Discord

Discord - Бесплатный чат с в VoIP и видеосвязью в первую очередь направленный на пользователей увлекающихся компьютерными играми. Активно поддерживается и имеет большой функционал. Серверы расположены в 11 разных частях мира.

Особенности:

· Бесплатный доступ.

· Кросплатформенный.

· Есть web-версия.

· Голосовой чат с высоким битрейтом.

· Видеосвязь/трансляция экрана.

· Создание своего сервера.

· Работа с каналами.

· Закрепление информации.

· Форматирование текста.

· Передача файлов / изображений.

Таблица сравнения с другими чатами показано в приложении Д.

2.3 Выбор игрового движка

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

Unity

Unity [41] - кроссплатформенный игровой движок и среда разработки компьютерных игр, развиваемая с 2005 года. Unity позволяет компилировать приложение под более чем 20 операционных систем, включая консоли, мобильные устройства и веб приложения. Игровой движок является универсальным, что позволяет разрабатывать игры в любых жанрах. На данный момент, на Unity реализовано большое количество игр, его используют как небольшие команды и одиночки, так и крупные студии. Ниже на рис. 2.5, показан интерфейс графической среды разработки.

Рисунок 2.5. IDE Unity

Основные преимущества:

· Кроссплатформенность.

· С# как язык разработки.

· Универсальность.

· Визуальная среда разработки с большим инструментарием.

· Магазин пресетов и объектов.

· Встроенные компиляторы.

· Есть бесплатная лицензия.

· Большое комьюнити и множество статей.

· Частые обновления и исправления.

· Интеграция с внешними редакторами кода.

Основные недостатки:

· Сложности при многокомпонентной работе.

· Сложность подключения внешних библиотек.

· Слабо реализованный мультиплеер.

Примером качественной игры, разрабатываемой на Unity, является Escape From Tarkov [42]. Тактический Шутер от первого лица с элементами RPG, с упором на реалистичность происходящего. В данной игре используются все возможности игрового движка, серьезная графика и детализация, большое количество действий. Игра доказывает возможность разрабатывать ААА Шутеры на Unity. Ниже на рис. 2.6 показан скриншот из игры.

Пример игры на Unity, Escape From Tarkov

CryEngine

CryEngine [45] - игровой движок, разработанный немецкой компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry. На данный момент движок принадлежит компании Ubisoft, и предлагается на лицензирование другим компаниям, существует условно бесплатная лицензия. Основной целевой платформой является Windows, движок в основном заточен на шутеры, но хорошо проявляет себя в онлайн РПГ играх. Сильными сторонами движка является графика и физика. Ниже на рис. 2.7 показан интерфейс редактора.

Рисунок 2.7. Пример IDE CryEngine.

Достоинства движка:

· Качественная графика.

· Графическая среда разработки.

· Возможность подключения библиотек.

· Наличие бесплатной лицензии.

Недостатки движка:

· Язак разработки Lua.

· Высокий порог вхождения.

· Малое комьюнити.

· Заточенность под шутеры.

Примером проекта на движке CryEngine является Far Cry [46], одиночный шутер от первого лица, с революционной на момент выхода графикой. Игра предоставляла пользователю большую свободу в передвижениях, хорошую физику и транспорт. Ниже на рис. 2.8 показан скриншот из игры.

Рисунок 2.8. Пример игры на СryEngine, Far Cry 1

UnrealEngine 4

Unreal Engine [43] - кроссплатформенный игровой движок, разрабатываемый и поддерживаемый компанией Epic Games, написанный на языке C++. Язык создан по модульной системе, обладает отличной физикой и графической системой, есть графическая среда разработки и возможность создавать проекты не используя код. Движек направлен на Шутеры и ММОРПГ игры, игры с большой динамикой. Последним большим примером игры является Lineage 2 Mobile. Ниже на рис. 2.9 показан интерфейс графической системы.

Достоинства движка:

· Качественная графика.

· Отличная физика.

· Возможна разработка без кода.

· Графическая среда разработки.

· Возможность подключения библиотек.

· Наличие бесплатной лицензии.

· Библиотека для сетевых режимов.

· Модульная система, разные библиотеки графики и звука.

· Возможность воспроизводить и воспринимать голос.

Недостатки движка:

· Язык C++.

· Высокий порог вхождения.

· Малое комьюнити.

· Заточенность под динамичные проекты.

Рис. 2.9. Пример IDE Unreal Engine

Основным примером игр на движке UnrealEngin 4 является Unreal Tournament 4 [44], рис. 2.10. Полностью бесплатная игра, разрабатываемая компанией Epic Games, использующая все возможности движка, и являющаяся отличной демонстрацией продукта. Игра представляет из себя высокоскоростную арену с хорошо проработанным ИИ.

Рисунок 2.10. Пример игры на Unreal Engine, Unreal Tournament 4.

HeroEngine

HeroEngine [51] - это игровой движок, разработанный Simutronics Corporation, для создания 3D MMO игр. Для разработки используется собственный язык программирования - HeroScript, но можно использовать и C++. Есть возможность создавать игровой мир в «онлайне», где каждый разработчик в реальном времени создает и видит происходящее вокруг. Движок поддерживает большое количество технологий: FMOD, PhysX, SpeedTree, FaceGen, Wwise, Scaleform и Vivox. Движок не имеет бесплатной версии. Ниже на рис. 2.11 показан интерфейс графической среды.

Рисунок 2.11. Пример IDE HeroEngine

Достоинства движка:

· Качественная графика.

· Хорошая проработка сетевой составляющей.

· Большое количество технологий.

· Разработка мира в реальном времени.

· Много дополнительных программ и графическая IDE.

Недостатки движка:

· Язык C++.

· Своя язык программирования.

· Платная лицензия.

· Не подходящая направленность.

· Только Windows.

· Не оптимизации под многопоточные системы.

Движок использовался в разработке известной MMORPG «Star Wars: The Old Republic» [52], от BioWare, рис. 2.12.

Рисунок 2.12. Пример игры на HeroEngine, Star Wars: The Old Republic

GameMaker

GameMaker: Studio 2 [50] - популярный кроссплатформенный движок, вторая версия GameMaker: Studio, созданный Марком Овермарсом и разрабатываемый компанией YoYo Games. Движок нацелен на создание двухмерных РПГ игр с простой графикой. Ниже показан пример IDE GameMaker, рис. 1.13.

Рисунок 2.13 Пример IDE GameMaker

Достоинства движка:

· Простой.

· Есть графическая среда.

· Кроссплатформенный.

· Подходящая направленность.

Недостатки движка:

· Слабая графика.

· Свой язык разработки.

· Платный, только триал версия доступна.

· Нет ИИ.

Ниже, на рис. 2.14, показан пример игры Undertale [53]. Простая 2D-РПГ игра про ребенка, попавшего в подземный мир. Игра разработана одним человеком.

Рисунок 2.14 Пример игры на GameMaker, Undertale

Phaser

Phaser [47] - движок для создания браузерных 2D-игр. Для работы с графикой он использует Pixi.js, одну из лучших библиотек для отрисовки 2D. Движек работает в барузерах, которые поддерживают HTML5. В основном Phaser нацелен на мобильные браузеры. Ниже на рис. 2.15, показан Web редактор для создания игр.

Достоинства движка:

· Простой.

· Низкие требования к ресурсам.

· Открытый исходный код.

· Бесплатный

Недостатки движка:

· Язык разработки JavaScript и TypeScript.

· Работа только с Web.

· Нет графической среды разработки.

· Нет возможностей линковки.

· Мало литературы.

Cocos 2D

Cocos2d [48] - открытый кроссплатформенный фреймворк, используемый для разработки интерактивных приложений и игр. Cocos2d содержит множество ответвлений, таких как Cocos2d-ObjC, Cocos2d-x, Cocos2d-html5 и Cocos2d-XNA. Также в сообществе Cocos2d имеется несколько независимых редакторов, предназначенных для редактирования спрайтов, частиц, шрифтов и тайловых карт. Можно также упомянуть редакторы мира: CocosBuilder и CocoStudio. В первую очередь Cocos направлен на мобильные 2D-игры жанра RPG, стратегии.

Достоинства движка:

· Средний порог вхождения.

· Бесплатный.

· Кросплатформенный.

· OpenGL и OpenAL

· Схожая направленность

Недостатки движка:

· Язык разработки С++, C, Python.

· Нет единой IDE.

· Малое количество справочного материала.

· Сложности с компиляцией и настройкой управления.

Ниже, на рис. 2.16 показана игра Kingdom Rush [49] на движке Cocos2D. Представляет из себя простой товер дефендер.

SFML - Разработка движка

При разработке собственного движка можно учесть все необходимые параметры, использовать библиотеки, которые подходят под решаемые задачи максимально, но это очень трудозатратный процесс. Данный процес подробно описан в книге Фленова М.Е. «Искусство программирования игр на C++» [18].

В качестве простого варианта можно использовать библиотеку SFML [11, 19]. Это свободная кроссплатформенная библиотека для отображения 2D-графики. Она упростит работу со спрайтами и текстурами. Для работы с физикой можно использовать Box2D [54] - свободная 2D-библиотека для работы с физикой, не плохо зарекомендовавшая себя в Angry Birds. Для работы со звуком можно использовать OpenAL.

Достоинства движка:

· Заточенность под проект.

· Бесплатно

· Движок полностью известен

Недостатки движка:

· Время и сложность на создание движка, изучение принципов создания.

· C++, как язык разработки движка и игры, глубокое изучение языка.

· Сложность с компилированием на разные платформы и настройка управления на платформах.

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

Требования и выбор движка

Вспомним требования команды к инструментарию и игровму движку из первой главы и дополним их. При разработке проекта требуется возможность создавать кроссплатформенную 2D-игру в нескольких жанрах. Основными критериями при выборе движка являются:

1. Цена - бесплатно

2. Языки - C#

3. Платформа - максимальный охват с возможностью быстрой компиляции на платформы

4. Жанр - FPS, RPG, платформер

5. Вид - 2D

6. Порог вхождения - Низкий

7. Наличие справочного материала и комьюнити.

8. Возможность командной разработки.

9. Хорошая встроенная физическая библиотека.

Проанализировав данные лучшим вариантом является - Unit. Сравнительная таблица игровых движков приведена в приложении Е.

2.4 Проектирование архитектуры игры

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

Как было сказано в статье deWiTTERS Game Loop [5]: «The game loop is the heartbeat of every game», из чего мы понимаем - вся игра, логика, картинка, интерфейс, звук обновляются каждую итерацию, а скорость работы и частота кадров напрямую зависит от выполнения всех этих действий.

Существуют вариации данной схемы, выносящие часть функций в «под циклы» и снижающие нагрузку на часть итераций основного цикла; выносят отрисовку кадров в другой цикл, позволяя использовать все ресурсы компьютера, не влияя на частоту кадров и выравнивая пользователей с разным железом. Но часть операций остается в основном цикле и не всегда используется.

Любая игра так или иначе содержит модель циклов, в простых 2D-проектах этого достаточно, в консольных играх раньше это было частично связано с архитектурой, в таких проектах код мог достигать 2-3 тысяч строк в основном цикле. Следующим шагом оптимизации стало появление паттерна ECS.

ECS - Entity Component System [6], паттерн построения игр в основе которого лежат сущности, компоненты и системы обработки событий. События позволяют исполнять код по востребованности, убирая лишние ответвления в основном игровом цикле. Вторым преимуществом ECS является удобная система компоновки, где основой являются сущности, в которые входят компоненты - данные разных типов, и системы - логика обработки данных, собранных в компоненты.

Особое распространение данная система получила в крупных проектах и сетевых многопользовательских играх, поскольку сильной стороной ECS является масштабируемость, эффективная работа с ресурсами и гибкость. В случае с клиент-серверными приложениями, данные на сервер уходят не пакетом на каждом шаге цикла, а сообщениями об изменениях, например передвижение персонажа генерирует событие с новыми координатами.

В данном проекте была реализована классическая модель циклов, встроенная в Unity, а для оптимизации - часть кода была вынесена в системы, вызываемые событиями, чтобы избежать лишних проверок и ответвлений в коде основного цикла. Подробное описание архитектуры присутствует в работе Макарова Владислава.

2.5 Проектирование меню и логики UI

Определившись с основной архитектурой игры, перейдем к проектированию логики игрового меню. Хорошим правилом является правило «Трех», т.е. из главного меню пользователь за три шага должен добраться до любого места программы. В игре требуется создать отдельные страницы для Главного меню; Выбора сложности игры; Выбора уровней; Настроек; Достижений; Дополнений.

Создав концепты следует объединить их в единую систему, переходы по которой не должны превышать трех шагов. Ниже на диаграмме экранных форм, рис. 2.20, показана логика меню.

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

Для взаимодействия с UI, внесения изменений и взаимодействия между частями системы будут использоваться события и сообщения. Архитектура UI была основана на паттерне MVC (рис. 2.22), который обеспечивает слабую связь, независимость модели от представления и контроллера, и масштабируемость.

2.6 Проектирование сетевого режима

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

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

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

Задачи:

· Определить и предоставить пользователю список серверов для сетевой игры.

· Организовать сетевое общение сервера и клиента.

· Создание сервера для игры пользователем.

· Простота и универсальность, для использования системы во всех уровнях с разными механиками.

Для реализации сетевого взаимодействия игроков в компьютерной игре требуется максимально быстро передавать данные на сервер и обратно, для чего реализуется прямое взаимодействие клиент-сервер по протоколу UDP. Данный протокол по сравнению с TCP имеет возможность отправлять данные без задержки, без комплектования в пакеты, без необходимости поддерживать соединение [7].

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

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

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

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

Игровой сервер после запуска и загрузки конфигурационного файла, отправляет свои данные на сервер мачмейкинга, далее готовится слушать клиентов и передавать данные между ними. В качестве информации о себе сервер передает адрес, название, карту, количество игроков.

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

Детальное продумывание системы

В основу системы ляжет четыре модуля - Игровой сервер, сервер мачмейкинга, тестовый клиент и Unity клиент, который представляет из себя интегрированный в игру тестовый клиент. Рассмотрим подробние основные модули.

GameServerTBD

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

Потоки:

· Прослушивание порта.

· Отправка сообщений.

· Поток консоли, для команд и информации.

· Поток проверки, для перезапуска в случае падения других потоков.

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

Отметим, что в диаграмме присутствует класс LobbyItem, который представляет из себя запись об игроке, который подключился к серверу. При разработке планируется создать лист из объектов этого класса и рассылать игровые данные всему лобби. Вторым замеченным на диаграмме класом является объекь GameInfoObject, представляющий из себя все данные, полученные от игрока или передаваемы игроку. Данный класс будет описан ниже.

MMServerTBD

Сервер, предполагающий распределение клиентов по основным игровым серверам. Позволяет получать информацию о доступных работающих серверах и отправлять её клиенту. Хранит информацию о серверах в сети и с периодичностью её обновляет. Основные потоки сервера:

Потоки:

· Прослушивание порта.

· Отправка сообщений.

· Поток консоли, для команд и информации.

Для данного сервера требуется реализовать модифицированное лобби, которое будет хранить информацию о серверах в форме:

· ID - внутренне поле.

· IDGlobal - внешний GUID сервера.

· Name - имя сервера.

· Describe - описание сервера.

· Map - игровой мир.

· Players - количество игроков.

· Key - хеш ключа.

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

ТestClientTBD и UnityClientTBD

Клиентское приложение будет представленно в двух видах «Тестовый клиент» - отладочным клиентом, для проверки работоспособности архитектуры и внедрения нового функционала и «Unity клиент» - клиент, интегрированный в игру и используемый непосредственно для игровых сессий. Оба клиента содержат полноценный функционал, но «Тестовый клиент» генерирует случайную информацию и посылает её по нажатию клавиши, а игровой реальную в заданных промежутках. Идентификатором будет GUID, обеспечивающий уникальный идентификатор клиента.

Рассмотрим основные потоки, которые должны протекать на клиенте:

· Прослушивание порта

· Отправка сообщений

· Поток консоли, для команд и информации (в случае с игровым - поток для обновления мира игры).

Упрощенная блок схема клиента находится в приложени О, рис. 2.

Структура передаваемых данных

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

#Команда#Тег-класса {JSON данные}#Тег-класса {JSON данные}…

Рассмотрим пример команды с одним блоком данных, рис. 2.27.

В данном примере команда #GameInfoObject сообщает клиенту / серверу о том, что пришли данные и их нужно обработать, затем #PlayerInfo сообщает, что пришел класс PlayerInfo, который содержит имя игрока, идентификатор, координаты и угол поворота. Так же может передаваться просто команда, на которую ответит сервер и команда с тегом. Ниже приведен пример запланированных команд:

#GameInfoObject - тег, обозначающий пакет с данными;

#GetOnlineServerList - запрос списка всех серверов, вернет JSON в форме List<ServerItem>;

#AnswerOnlineServerList - ответ листа серверов;

#RegisterServer - внесение сервера в список для ММ, вернет ответ в форме string.

Все данные могут шифроваться по AES256, для обеспечения безопасности, данная функция включается в конфиге сервера и клиента.

2.7 Проектирование уровня головоломка

В ходе главы будет приведено описание проектирования устройства уровня и приведено описание механик.

Проектирование механик

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

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

· Система нажимных плит - плиты активаторы чего-либо при постоянном нажатии игроком / ящиком / роботом.

· Роботы охранники - боты с простым ии для атаки игрока, могут быть статичные или активные, перемещающиеся по карте. Логика основана на автоматах.

· Система передвижных блоков и объектов - активные передвигающиеся плиты или же приводимые в действия активаторами.

· Двери.

· зоны с газом - Зоны в которых игрок погибает, преодолеваемые с помощью порталов.

· Противники - усложняющие игру элементы.

o Статичные роботы.

o Активные роботы - перемещающиеся по заданной траектории.

o Турели - подвесные роботы, отслеживающие периметр в заданной области.

· Комнаты скрытности - место, где игрок может спрятаться от робота, который проходит мимо.

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

· Инвентарь - место для хранения найденых используемых объектов.

· Обучение - основанная на сюжетном UI система для пояснения игровых механик.

· Сложность игры - система регулирующая сложность игры по средствам изменения параметров урона, здоровья и т.д. Включает два параметра - сложность из 5 вариантов и тип лицензии игры из 2.

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

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

Определившись с действиями, перейдем к продумыванию используемых объектов и их отношений, ниже на рис. 2.30, показана диаграма ERD, где отражены основные характеристики игрока, противника и уровня. В глобальных данных уровня будем хранить ссылки на порталы, что бы все перемещаемые объекты могли независимо использовать данную механику. Вторым блоком выделим для уровня информацию о сложности и типе лицензии. В данной игре тип лицензии задается пользователем и влияет на сложность. На карте будут находиться несколько типов статичных объектов, логика которых будет отличаться от присовенного тега:

1. Объекты, с которыми можно взаимодействовать.

2. Объекты, которые можно собирать.

3. Объекты, которые являются частью карты.

Проектирование гейм-дизайна

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

Рассмотрим проектирование на примере 3-го уровня, рис. 2.31. Для его прохождения перед игроком ставиться задачча собрать четыре камня и активировать основные ворота, ведущие к выходу. Каждый из камней находится под охраной и игроку предстоит расчитать время активации роботов и верно расставить порталы. Для изучения мира на уровне находится два секрета, найти которые можно только при изучении уровня и внимательности игрока. Для кооператива на этом уровне не требуется модификаций, поскольку добыча 4-х камней хорошо разделяется на двух игроков.

Лучшим вариантом создания уровней является использование префабов - объектов Unity содержащих в себе скрипты, спрайты, объекты и представляющих из себя готовые игровые блоки. Таким образом в ходе разрабоки будут созданны все механики, объекты и предметы, затем собраны префабы. Это позволит собирать следующие уровни без непосредственной работы с кодом, а также исправлять ошибки связанные с префабами во всех уровнях сразу, исправля префаб.

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

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

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

3. Экономическая оценка

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

Первый шаг при оценке трудозатрат - формирование списка задач, требуемых для решения поставленной проблемы. При планировании проекта было выделено 4 итерации по 15-20 задач в каждой. Для каждой итерации проводилась оценка по человеко-часам, основанная на экспертном мнении каждого участника проекта. Процесс был организован по методике Планинг-покер. Полный список задач с результатами доступен в приложении Б, таблицы 1-4. Ниже приведена таблица с трудозатратами по итерациям.

Таблица 3.1. Итоги экономической оценки по итерациям

Итерация

Количество задач

Итого человекочасов

1 итерация

23

129

2 итерация

21

307

3 итерация

13

478

4 итерация

16

280

Итого 1194 труд часа. Средняя зарплата программиста составляет 50 тыс. рублей. Что примерно составляет 312,5 рублей/час, и в пересчете на 1194 труд часов получается 375 тысяч рублей и около 160 тысяч на оборудование и сопутствующие расходы, которые перечислены ниже. Цена оборудования взята средняя, ЗП разработчика взято из области GameDevelopment. Итого, разработка прототипа (в расчет взяты только планируемые 100% уровни) обойдется в 500 тысяч рублей, что позволит выйти на рынок в стадии раннего доступа, и уже получать финансирование на дальнейшее развитие, минуя краудфайдинг.

Список затрат на оборудование, ПО и прочее:

1. Требуется 3 компьютера с переферией - 35000 рублей/шт.

2. Графический планшет 1 шт. - 5000 рублей.


Подобные документы

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

    курсовая работа [85,9 K], добавлен 31.10.2014

  • Проектирование игры "Жизнь" и ее реализация в среде разработки Visual Studio 2010, версия .Net Framework 4.0. Особенности языка программирования C#, основных принципов ООП на языке C#. Проектирование пользовательского интерфейса. Описание алгоритмов.

    курсовая работа [990,0 K], добавлен 18.04.2013

  • Диаграмма прецедентов взаимодействия игрока и программного продукта. Требования к пользовательскому интерфейсу. Диаграмма состояний проектируемого приложения. Выбор инструментальных средств разработки. Проектирование алгоритмов и иерархии классов.

    дипломная работа [9,9 M], добавлен 20.03.2017

  • Обзор методов и средств реализации поставленной задачи. Описание компьютерной игры "Японские кроссворды". Обоснование инструментария разработки программного продукта. Алгоритмический анализ задачи. Графический интерфейс и лингвистическое обеспечение.

    курсовая работа [725,4 K], добавлен 27.08.2013

  • Разработка адресных и технических требований к игре. Написание сценария. Общая концепция разработки приложения. Разработка схем алгоритмов приложения. Игровые технологии. Выбор среды и программированного языка. Описание пользовательского интерфейса.

    курсовая работа [1,6 M], добавлен 14.06.2014

  • Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.

    дипломная работа [3,3 M], добавлен 18.02.2017

  • Общая характеристика сетевой игры с несколькими клиентами в программной среде MS Visual Studio 2010 на языке программирования C++ с использованием функций работы с сокетами. Реализация системного сервиса, разработки интерфейса, алгоритм его тестирования.

    курсовая работа [495,3 K], добавлен 06.01.2013

  • Анализ игровых жанров для мобильных устройств и целевой аудитории. Разработка концепции игрового приложения, основной механики, меню и интерфейса игры. Описание переменных скриптов. Реализация выбора цели и стрельбы. Настройка работоспособности игры.

    дипломная работа [1,4 M], добавлен 19.01.2017

  • Понятие и эволюция игр, анализ их различных жанров и существующих аналогов. Выбор программных средств для реализации игры, написание сюжета и выбор среды разработки игры. Алгоритмы для придания гибкости обучающей игре. Описание программных модулей.

    дипломная работа [2,7 M], добавлен 27.10.2017

  • Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.

    курсовая работа [1,5 M], добавлен 17.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.