Исследование и разработка образовательной компьютерной игры, управляемой пользовательским программным кодом
Исследование влияния серьезных игр на обучение и сделан вывод о положительном эффекте. Разработка образовательной компьютерной игры, позволяющей пользователям оттачивать навыки программирования путем решения задач. Управление игрой программным кодом.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 02.09.2018 |
Размер файла | 5,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Аннотация
Цель данной работы - разработать образовательную компьютерную игру, позволяющую пользователям оттачивать навыки программирования путём решения задач. Управление игрой осуществляется пользовательским программным кодом. В ходе работы проведено исследование влияния серьёзных игр на обучение и сделан вывод о положительном эффекте. С целью выявления тенденций и задач разработки был произведён обзор 21 компьютерной игры и выбраны модели для их формального анализа: 4C/ID, ATMSG и DPE. В качестве языков для изучения были выбраны языки написания шейдеров Cg и HLSL. Разработка включала в себя выработку правил, определение игровых циклов частей приложения и реализацию игры на движке Unity 4.3.4. Выбор устаревшей версии движка обусловлен необходимостью компиляции шейдеров во время выполнения программы. В ходе создания игры был разработан метод автоматического анализа программ затенения при помощи вычислительного шейдера. Итог был проанализирован по модели 4C/ID, в результате чего были сделаны выводы о несовершенстве игры и выявлены направления для дальнейшей работы.
Отчёт разделён на две части, теоретическую и практическую, и состоит из 78 страниц, включая титульный лист, аннотации, оглавление и приложения. Он содержит 14 иллюстраций и 6 таблиц.
Annotation
The main purpose of this work is development of educational computer game for enhancing programming skills by solving puzzles. The game is managed by user programming code. In the course of development serious game influence on education process was reviewed. The conclusion of this review states the positive effect of using games. 21 programming games were analysed to identify trends using three frameworks: 4C/ID, ATMSG, DPE. Shader programming languages CG and HLSL were chosen as learning languages of the game. Development included writing game rules, determining of game cycles for different game parts and program realization using Unity 4.3.4 game engine. Old version of engine was chosen because of need to compile shaders at runtime. During the development the method of automatic shader analysis was created using compute shader. The result was compared with analogues using 4C/ID framework. It showed the imperfection of the game, so areas of future studies were proposed.
The article consists of two main parts, theoretical and practical, and its volume is 78 pages including title, annotations, table of contents and appendix. It include 14 illustrations and 6 tables.
Оглавление
Введение
1. Цели и задачи работы
2. Исследование предметной области
2.1 Исследование влияния образовательных игр на обучение
2.2 Методы формального анализ серьёзных игр
2.2.1 MDA
2.2.2 HABS
2.2.3 DPE
2.2.4 ATMSG
2.2.5 4C/ID
2.2.6 Выбор модели для анализа
2.3 Анализ аналогов разрабатываемой системы
2.3.1 Критерии для анализа
2.3.2 Анализируемые игры
2.3.3 Анализ аналогов разрабатываемого приложения
2.3.4 Предлагаемая тематика разработки
2.4 Постановка задачи
3. Практическая часть
3.1 Итоговое описание разрабатываемого проекта
3.2 Структуризация задачи
3.3 Разработка правил игры
3.3.1 Образовательный режим
3.3.2 Соревновательный режим
3.4 Выбор средств разработки
3.5 Разработка образовательного режима
3.5.1 Проверка пользовательских решений
3.6 Разработка соревновательного режима
3.6.1 Основные компоненты соревновательного режима
3.6.2 Ввод и вывод в соревновательном режиме
3.7 Разработка графического интерфейса
3.8 Оформление игры
3.9 Тестирование и результат работы
Заключение
Источники
Приложение А
Введение
образовательный компьютерный игра
В современном мире на смену предыдущим поколениям приходит Игровое [1]. Это люди, выросшие в виртуальном мире, владеющие необходимыми навыками взаимодействия с различными устройствами, сетью интернет и играми. Умея обращаться с компьютерными играми и решать задачи в них, они, тем не менее, могут испытывать трудности, например, при обучении. Это вызвано отсутствием интереса или скукой при использовании классических образовательных методов [1]. Для вовлечения учащихся в образовательный процесс используются серьёзные игры (Serious Games).
Существует множество определений данного термина, к сожалению не так распространённого в русскоязычной литературе. Но наиболее полное звучит так:
Серьёзная игра (Serious Game) - программное обеспечение, ставящее перед собой не развлекательные задачи и имеющее структуру игры [2].
На самом деле, данное направление применимо не только в работе со школьниками и студентами, привыкшими к игровому взаимодействию. Исследования показывают преимущества подобного обучения у разных возрастных групп в разных дисциплинах, от медицины до бизнеса и математики.
Отдельным множеством являются игры для программистов. Игры для программистов (Games for Programmers) игры, управляемые подающимся на вход приложения пользовательским исходным кодом. Большинство из них пересекается со множеством серьёзных игр, занимаясь обучением программированию или смежным дисциплинам. Но данный аспект присутствует не всегда.
В данной работе будет рассмотрен процесс разработки именно серьёзной игры для программистов. В качестве изучаемых языков программирования выбраны языки написания шейдеров. Для этого будет произведён обзор предметной области, проанализированы аналоги разрабатываемого приложения, сформированы требования к разработке, выработаны правила игры, и наконец реализован сам проект на игровом движке Unity. Одним из основных этапов данной разработки можно назвать систему автоматической проверки пользовательских шейдерных программ. На данный момент не было выявлено ни одной подобной методики. Метод решения данной задачи разработан и представлен в ходе подготовки выпускной квалификационной работы.
1. Цели и задачи работы
Целью данной работы является разработка компьютерной серьёзной игры, позволяющей пользователю получать и улучшать навыки программирования, решая игровые задачи, а также исследование подходов к разработке и анализу серьёзных игр и их применимость в образовании.
Для достижения поставленной цели требуется выполнить следующие задачи:
* провести литературный обзор научных работ о влиянии серьёзных игр на обучение;
* изучить проблему формального анализа обучающих компьютерных игр, составить список критериев для сравнения аналогов;
* провести обзор и классификацию аналогов разрабатываемого приложения;
* на основании обзора и анализа сформулировать требования к разрабатываемой игре;
* выработать правила игры;
* разработать серьёзную игру, управляемую пользовательским исходным кодом;
* осуществить тестирование и анализ разработанного приложения.
2. Исследование предметной области
2.1 Исследование влияния образовательных игр на обучение
Ещё с момента выделения серьёзных игр как отдельного способа обучения проводятся эксперименты по внедрению данного образовательного метода. Основной их целью, как правило, является оценка преимуществ серьёзных игр относительно стандартных методов обучения. В данном пункте рассмотрены проведенные исследования и сделан вывод о применимости серьёзных игр в образовании.
Джеймс Найт (James F. Knight) [3] с коллегами в 2009 году опубликовал результаты эксперимента по обучению навыкам оказания медицинской помощи с использованием стандартных методов и серьёзных игр. Две примерно равных группы (44 и 47 человек) участвовали в моделировании последствий взрыва бытового газа. Перед каждым участником стояло две основных задачи. Во-первых, следовало оценить повреждения восьми жертв и определить наиболее рациональный порядок оказания помощи. Вторая часть заключалась в сортировке действий первой помощи для каждого пострадавшего. Одна группа провела занятие с преподавателем, а затем приступила к практической части с восьми актерами и карточками действий для сортировки. Вторая группа прослушала видео-лекцию и приступила к выполнению заданий в специальной игре-симуляции. Эксперимент показал, что при примерно равном времени, затраченном на обучение и выполнение заданий, в первой группе идеально справились с расстановкой приоритетов 55% участников, а с сортировкой действий - 7%. Во второй, обучающейся при помощи серьёзной игры - 72% и 28% соответственно. Подобная же тенденция наблюдалась и среди участников, набравших меньшее количество баллов [3].
В том же году был поставлен подобный эксперимент [4], изучающий влияние игр на успешность выполнения заданий и мотивацию при обучении в математике. Исследования показали значительные преимущества обучения при помощи игр относительно стандартных методов в вопросе получения знаний. В то же время, на мотивацию учащихся использование игр повлияло незначительно. Однако, опрос показал, что и преподаватели, и студенты считают, что игры помогли достичь лучших результатов и повысили мотивацию к изучению. Также это исследование учитывало и сторонние факторы, которые могли повлиять на результат, а именно начальные математические знания, уровень владения английским языком и навыки обращения с компьютером. Эксперимент показал, что данные факторы влияют незначительно, поэтому повышение успешности выполнения заданий следует приписывать именно обучению с использование серьёзных игр [4].
Достаточно популярная сфера применения серьёзных игр - обучение в бизнесе. Исследования 2011 года рассматривают использование серьёзной игры для улучшения навыков межкультурной бизнес-коммуникации на английском языке. Результаты исследований показали, что игры оказали слабое влияние на уровень межкультурной осведомлённости, не очень сильный эффект на межкультурные знания, но при этом значительный эффект на навыки межкультурной коммуникации [5].
Более поздний эксперимент касался медицины и обучал распознаванию и различию симптомов болезней Альцгеймера, Паркинсона и инфаркта миокарда. При этом, в отличие от аналогичных исследований, рассматривалось не влияние игр на обучение в целом, а влияние обучающей активности и игровой по отдельности. Кроме того, проведённые два эксперимента различались степенью обратной связи с пользователем. В первом случае результаты игры выводились лишь после прохождения всех этапов, во втором же - после каждого задания. Итоги первого эксперимента показали, что участники обучающейся группы получили более высокий результат в вопросах, направленных на выведение ответа. В то же время, ни в вопросах на запоминание, ни в мотивации учащихся двух групп значительных различий не зафиксировано. Во втором эксперименте результаты ответов на задачи на выведения оказались обратными. Они были значительно выше у группы, обучающейся игровыми методами. Различия в мотивации незначительные, однако, исследование показало, что группа, обучающаяся с использованием игровых методов была более спокойна и испытывала меньше страха ошибиться в процессе второго эксперимента [6].
Довольно масштабное исследование предметной области было произведено в 2017 году [7]. В статье рассматриваются серьёзные игры для обучения стандартам разработки программного обеспечения. Для этого был проведён анализ 190 источников и выбраны 7 ключевых, ставших предметом более детального рассмотрения. Отдельно стоит отметить, что авторы рассматривали не только научные статьи, но и серую литературу, публикуемую различными компаниями, и несущую более практическую информацию. Несмотря на то, что вопрос использования игр для обучения стандартам требует дальнейшего рассмотрения, шесть описанных в отобранных статьях продуктов показали наличие преимуществ в использовании игр в поддержку стандартных методов. Одним из результатов исследования стало заключение о том, что серьёзные игры:
* имеют высокий потенциал, как обучающие материалы при освоении стандартов разработки ПО;
* наиболее эффективны, как дополнение к классическим методам обучения;
* являются более приятным методом для обучающихся;
* требуют дальнейших исследований вопроса оценки игровых приложений [7].
В статье [1] тунисской исследовательской лаборатории LaTICE сравниваются два разных типа обучающих игр - собственно обучающие игры и обучающие версии уже существующих игр (Tetris, Pacman, Space Invaders и т.д.). Две группы учащихся (84 и 93 человека) изучали язык программирования Maple. Первая группа использовала обучающую игру, заключающуюся в правильной расстановке блоков кода для формирования готовой программы. Вторая играла в игру Pacman, в которой для получения бонуса после съедания персонажем фрукта, в отличие от оригинальной версии, требовалось правильно ответить на вопрос, сформированный преподавателем, по программированию. Оба теста показали значительный рост средних оценок учащихся по предмету после прохождения курса. В то же время обучающая игра поспособствовала более сильному скачку вверх отметок учеников (с 11,67 до 16,31 (прирост 4,64) для обучающей игры и с 12,60 до 16,53 (прирост 3,93) для обучающей версии Pacman) [1].
Стоит отметить, что использование игры Pacman само по себе является фактором, влияющим на заинтересованность учащихся в игре. Данная игра довольно динамична, а необходимость отвечать на вопросы в процессе влечёт за собой паузы. Вполне логично, что игрокам становится не интересно играть в саму игру.
Ещё одно исследование [8] Ричарда Лэмба (Richard L. Lamb) и его коллег разделяет серьёзные игры на категории, что не встречалось ранее:
* собственно серьёзные игры;
* серьёзные обучающие игры;
* симуляции.
Результаты получены на основании 46 практических исследований и разделены по критериям, показывающим влияние на обучения того или иного фактора. Так полностью двухмерные игры демонстрируют наименьший эффект, в наибольшей степени игровое обучение влияет на детей, а из выше указанных типов лишь обучающие серьёзные игры показали большие преимущества при использовании в образовании. В то же время два других типа также имеют положительных эффект [8].
Таким образом, в Таблице 1 показаны выводы о преимуществах использования игр в обучении относительно классических методов. Данные взяты на основании рассмотренных выше исследований.
Таблица 1
Заключения о влиянии серьёзных игр на обучение
Помимо этого в [4] приведён аналогичный обзор других источников. Согласно проведенному анализу 16 работ было выявлено, что 11 из них показывают положительное влияние серьёзных игр на обучение, а оставшиеся пять смешанное. Кроме того, в этой же статье приведены результаты 8 литературных обзоров. Вывод двух работ, включая самый масштабный обзор 94 источников, заключается в преимуществе использования игровых технологий в обучении, один обзор показывает слабый позитивный эффект, три работы - смешанный, а два обзора заключают отсутствия преимуществ игрового обучения вовсе.
Тем не менее, очевидно, что большинство исследований сходится на положительном эффекте при использовании серьёзных игр, а полностью отрицательный эффект не показан ни в одной статье.
2.2 Методы формального анализ серьёзных игр
В то время, как доказательства эффективности игрового подхода подтверждаются экспериментами, многие ученые пытаются вывести теоретические зависимости структуры игры и получаемого ей эффекта. Так как разработка игры комплексный процесс, она затрагивает многие области знаний, критерии оценки некоторых аспектов игры крайне сложно формализовать. Попытки достичь необходимого формального уровня привели к появлению специальных методов анализа игр. Большинство из них ориентировано именно на серьёзные игры.
На данный момент можно выделить пять подходов к формальному анализу серьёзных игр:
1. MDA (Mechanics, Dynamics, Aesthetics);
2. HABS (Hierarchical Activity-Based Scenario);
3. DPE (Design, Play, Experience);
4. ATMSG (Activity Theory-based Model of Serious Games);
5. 4C/ID (Four-component / Instructional Design).
Рассмотри данные подходы подробнее.
2.2.1 MDA
MDA [9] -- подход к формальному анализу игр. Он заключается в разделении процесса взаимодействия разработчика игры с игроком на три уровня:
1. механики (Mechanics);
2. динамика (Dynamics);
3. эстетика (Aesthetics).
Уровень механик описывает компоненты самой игры -- правила, алгоритмы, входные и выходные параметры и т.д. Здесь рассматриваются вопросы реализации тех или иных действий, возможности игры и прочее. Уровень динамики отвечает за процесс взаимодействия пользовательского ввода с механиками. Разработчик проводит настройки сложности, вероятностей успеха, задаёт иные параметры, меняющие не сами механики, но результат их работы. Уровень же эстетики описывает желаемое воздействие на пользователя в процессе игры. На данном уровне предлагается выделение целей игры, опыта, предположительно получаемого игроком. Таким образом, данная модель позволяет просмотреть зависимость между разработанными геймдизайнером механиками и эмоциональным воздействием на пользователя [9].
К сожалению, данный подход хоть и формализует вопрос анализа и разработки игр, делает это в недостаточной мере. Поэтому на его основе была разработана модель DPE.
2.2.2 HABS
Подход к формальному анализу игр HABS [10] основан на теории деятельности Леонтьева. Данная концепция призвана моделировать сценарии на различных уровнях игры. Всего таких уровня три:
1. деятельность;
2. действия;
3. операции.
Любой игрок осуществляет в игре какую-либо деятельность. Это и есть самый верхний уровень. При этом, у пользователя есть мотивы, почему для него эта деятельность важна и задачи, которые он выполняет, её осуществляя. Сама деятельность состоит из отдельных действий, составляющий средний уровень модели. Каждому действию соответствуют достигаемые им цели. Этот уровень, в свою очередь, состоит из объектов еще более низкого - операций. Каждой операции соответствует набор условий, для её выполнения. Операции, в отличие от действий, выполняются практически неосознанно.
Эта модель позволяет очень детально рассмотреть процесс обучения пользователя в игре. Например, в начале обучения игрок выполняет какое-то действие. У игрока есть определённая цель и он пытается её достичь. Но затем, с увеличением его опыта, подобная задача становится для него рутинной и, согласно модели, становится операцией. Игрок уже не концентрируется на этом действии. Бывают также и обратные ситуации, когда операции становятся действиями. Как правило это сигнал для разработчика игры, что то-то пошло не по плану и требуются изменения.
Ещё одним важным для серьёзных игр переходом между уровнями модели является переход от уровня действий к деятельности. Дело в том, что возможна ситуация, при которой результат какого-то действия более важен для игрока, чем мотив, его побудивший. По сути, действие становится аналогом деятельности. Это важно потому, что игрок начинает получать удовольствие от серьёзной игры. Игрок начинает учиться не потому, что такова его цель, а из0за того, что ему это нравится. Подобный переход крайне желателен для разработчика [10].
2.2.3 DPE
Модель DPE [11] расширяет MDA и фокусируется уже на серьёзных играх. Взаимодействие пользователя здесь так же представлено тремя уровнями, но уже расширенными и с изменёнными названиями:
1. дизайн (Design);
2. игра (Play);
3. опыт (Experience).
Эти уровни похожи на аналогичные им в модели MDA, но в данном подходе более детально описан каждый из них. В работе впервые показана итеративность процесса разработки игры, заключающаяся в том, что разработчик влияет полноценно исключительно на уровень дизайна, с уровнем игры взаимодействуют в равной степени и геймдизайнер и игрок (задание параметров и настроек со стороны разработчика и процесс ввода, управления, собственно, игры со стороны пользователя), после чего производится анализ, получил ли игрок желаемый опыт и, если нет, производятся правки на уровне дизайна. Затем процесс повторяется. Каждый уровень модели здесь связан со своей стадией разработки: дизайном игры, разработкой прототипа и игровым тестированием, соответственно (Рис. 1).
Рис. 1 Итеративный процесс разработки игр
Каждый из уровней дополнительно делится на слои, отвечающие за конкретный тип взаимодействия с пользователем (Рис. 2):
1. обучение (Learning);
2. сторителлинг (Storytelling);
3. геймплей (Gameplay);
4. пользовательский опыт (User Experience).
Рис. 2 Уровни и слои в модели DPE
Дополнительно в данной модели выделен слой технологий. Он отвечает не столько за взаимодействие между разработчиком и пользователем, сколько за технические параметры разрабатываемого продукта. Этот слой влияет на каждый уровень, поэтому рассматривается отдельно [11].
2.2.4 ATMSG
ATMSG (Activity Theory-based Model of Serious Games) [12] -- другой подход к анализу серьёзных игр. Основным компонентом здесь являются активности. Действия выполняются субъектом, имеют некую цель, мотив, и используют определённый инструмент. В данном подходе рассматривается три типа активностей (Рис. 3):
1. изучение (Learning Activity);
2. игра (Gaming Activity);
3. объяснение (Instructional Activity).
Рис. 3 Модель ATMSG
Не смотря на то, что все активности используют один и тот же инструмент, серьёзную игру, взаимодействуют они с ним уже иначе. Первое отличие можно провести по субъекту взаимодействия. Если изучение и игра относятся к учащемуся, то объяснением управляет преподаватель. Мотивы у действий также разнятся. Если у игры целью может быть развлечение, то изучать предмет учащийся может, например, лишь чтобы успешно пройти какой-либо учебный курс.
В связи с тем, что разные игры предоставляют разные возможности учащимся, какие-то проходятся индивидуально, а какие-то требуют постоянного взаимодействия с учителем, активность Объяснения поделена на две части:
1. внутренняя (Intrinsic);
2. внешняя (Extrinsic).
Первый подтип отвечает за ту часть объяснения, что заложена непосредственно в игру и взаимодействует с учащимся при помощи инструкций, подсказок, автоматических проверок и т.д. Второй -- за взаимодействие ученика с преподавателем до, после или во время игровых сессий.
Анализ игры по данной модели проводится в четыре этапа:
1. анализ активностей;
2. представление игрового цикла;
3. выделение действий, инструментов и целей;
4. описание реализации.
На первом этапе выделяются все активности игры, их субъекты, инструменты и мотивы. Если мотивы определить затруднительно, они предполагаются лицом, проводящим анализ.
На втором этапе разрабатывается диаграмма игрового цикла. Оно позволяет разнести каждый этап игры по времени, что потребуется на следующем этапе для выделения конкретных действий.
На третьем этапе составляется таблица, в которой соотносятся действия инструменты и цели с каждым этапом игрового цикла.
На последнем этапе проводится анализ конкретной реализации тех или иных действий. Здесь рассматриваются алгоритмы подсчёта очков, сложности, конкретные параметры объектов и прочее. Кроме задания параметров, на данном этапе рассматривается их влияние на достижение образовательных и развлекательных целей. Данный анализ проводится отдельно для каждого типа активностей [12].
Отдельно стоит отметить, что авторами приводится исчерпывающий список возможных действий различных объектов в рамках различных активностей, что существенно облегчает процесс анализа серьёзных игр [12].
2.2.5 4C/ID
Первоначально модель 4C/ID [13] была создана для разработки тренировочных программ. Она базируется на трёх базовых компонентах:
1. дизайн задач обучения;
2. дизайн поддержки обучающихся;
3. организация задач обучения и поддержки.
Первый компонент отвечает за постановку задач обучения. Задачи можно разделить на полные и частичные. Полные задачи имеют непосредственное применение на практике. Частичные сами по себе слабо применимы, но могут послужить основой при освоении полных задач.
Дизайн поддержки обучающихся должен обеспечивать игроков (в случае игр для программистов) всей необходимой информацией вовремя. Это могут быть обучающие материалы, обратная связь, показывающая пользователю допущенные ошибки, отображение на экране действий игрока и т.д.
Третий компонент отвечает за организацию предыдущих двух. Задачи должны быть сгруппированы, а группы расположены в порядке нарастания сложности. Внутри групп сложность должна быть примерно равна. В то же время, поддержка внутри классов как раз варьируется. Первая задача имеет максимальный уровень встроенной поддержки, последняя сильно ниже.
Бельгийские ученые предложили использовать эту концепцию для анализа серьёзных игр для программистов. При этом, они дополнительно используют классификацию игровых компонентов для оценки непосредственно развлекательной части этих игр. При этом рассматриваются следующие игровые компоненты:
* язык взаимодействия;
* оценка;
* конфликт/испытание;
* контроль;
* окружение;
* игровая выдумка;
* человеческое взаимодействие;
* погружение;
* правила/цели.
Более подробное описание на английском языке можно найти в Приложении А.
Использование данного метода в анализе позволяет сравнивать игры между собой. Для этого игры кластеризуются по модели 4C/ID. Затем по классификации игровых компонентов анализируется соотношение программирования и, собственно, игры в проекте. Эти две классификации позволяют построить диаграмму распределения игр в данной модели. Более того, авторами статьи было определено местоположение идеальной, с точки зрения 4C/ID, игры. Соответственно, становится возможным на диаграмме определить степень удалённости от неё того или иного продукта [13].
2.2.6 Выбор модели для анализа
Часть подходов является полноценным развитием других. Поэтому выбор сводится к трём: DPE, ATMSG и 4C/ID. В то же время, каждый подход рассматривает игру немного с разных сторон и удобен для анализа определённой части. Подход DPE единственный, разбирающий детально итеративность процесса разработки игр. 4C/ID является очень мощной моделью для сравнения игр между собой, особенно учитывая его дополнения для анализа серьёзных игр для программистов, что и предстоит сделать в дальнейшем. В то же время, он, разбирая игру на компоненты, не анализирует её структуру, для чего идеально подходит ATMSG. Таким образом, предлагается не выбирать один концепт для проведения необходимого анализа, а использовать все три в соответствующих задачах.
Модель 4C/ID будет использована для анализа и сравнения аналогов разрабатываемого приложения, построения диаграммы их распределения. Кроме того, предлагается позже обозначить на этой диаграмме место разработанной игры для оценки её успешности.
При помощи подхода ATMSG будут проанализированы игровые циклы аналогов для выделения основных тенденций, и построены аналогичные циклы для разработки собственного приложения.
Концепт DPE будет использован уже непосредственно при разработке для постановки и структуризации задач.
2.3 Анализ аналогов разрабатываемой системы
На данный момент существует множество аналогов разрабатываемого проекта. Для удобства произведем классификацию игр для программистов и разделим их на типы:
1. по цели игры:
1.a. обучающие;
1.b. соревновательные;
1.c. развлекательные.
2. По типу задач:
2.a. алгоритмические;
2.b. привязанные к конкретному языку программирования.
В обучающих (1.a) играх для программистов цель игры научить пользователя программировать. Изучаются методы объявления переменных, условные конструкции, циклы, функции и т.д.
Соревновательные игры (1.b) основаны на противопоставлении решений нескольких пользователей друг другу. Оценивается, под чьим управлением игровые объекты одержат победу. Часто подобные игры заключаются в написании наиболее эффективного алгоритма управления объектами.
Развлекательные игры (1.c) просто управляются пользовательским кодом. Без обучения или соревнования. В связи с этим, подходят, в основном, уже опытным программистам.
Алгоритмические игры (2.a) направлены на обучение основным концепциям программирования без привязки к языку. Как правило, используются либо специальные для этой игры языки, либо превдокод, либо графические элементы управления с явным функционалом.
Привязанные к языку программирования игры (2.b) направлены на изучение синтаксиса конкретного языка. Могут включать в себя обучение общим концепциям, а могут служить дополнением и расширением алгоритмических игр.
Стоит отметить, что игра может совмещать элементы нескольких типов. Кроме того, образовательная цель есть практически в каждой игре для программистов, просто она может быть не ключевой.
Помимо непосредственно анализа игр, отдельное внимание уделялось их структуре, особенностям игрового цикла и построения заданий.
Был проведён обзор исключительно тех игр, которые обучают программированию или связанным с программированием вещам. Все рассмотренные проекты предполагают составление программы путём либо написания кода, либо его сборки из предлагаемых авторами задачи блоков.
2.3.1 Критерии для анализа
Для выявления тенденций и возможности сравнения игр между собой мы ввели ряд критериев. Оценки каждого приложения были либо взяты из его описания, либо выявлены непосредственно в процессе игры и приведены к соответствующим, указанным далее, значениям.
Тип. Данный критерий относит игру к одной из вышерассмотренных категорий. Стоит отметить, что в данном обзоре указана классификация игр исключительно по их цели. Это связано с тем, что практически все рассмотренные аналоги обучают конкретным языкам программирования. Для иных игр даны соответствующие комментарии.
Изучаемые языки. Данный параметр показывает, какие языки программирования используются в игре. Здесь сделано допущение, приравнивающее язык разметки HTML и каскадные таблицы стилей CSS к языкам программирования с целью упрощения классификации. Также необходимо указать, что алгоритмические игры могут использовать искусственные языки или не обучать им вовсе.
Платформа. Данный критерий указывает, на каких устройствах предполагается запуск игры. Безусловно все рассматриваемые игры ориентированы на работу с использованием персонального компьютера. Однако, большинство из них являются браузерными и позволяют запуск, например, на мобильных устройствах. Большинство игр, требующих использование исключительно персонального компьютера, поддерживаются основными операционными системами: Windows, Linux, MacOS последних версий. Возможность использования игр на более старых или иных операционных системах в данной работе не существенна.
Стоимость. Так или иначе модель монетизации имеют все игры. В большинстве рассматриваемых проектов предполагаются добровольные пожертвования разработчикам. Однако, часть игр требует покупки. Данные о стоимости были взяты из сервисов цифрового распространения игр Steam и GOG Galaxy. Цены представлены в рублях.
Графическое оформление. Безусловно в любой игре для программистов основной рабочий интерфейс представлен окном для написания кода и консолью. Однако, игровая составляющая требует особого внимания к эстетике. Таким образом, данный пункт включает в себя отнесение графического оформления рассматриваемой игры к одной из категорий:
* отсутствует (художественное оформление представлено лишь редактором программного кода или подобными элементами графического интерфейса);
* простое (в игре используются простые иллюстрации без анимации или с её минимальным количеством);
* художественное (художественное оформление включает в себя сложные иллюстрации и трёхмерные модели или использует пусть и простые элементы, но задающие необходимый стиль виртуального пространства).
Реиграбельность. Реиграбельность в общем смысле отражает интерес к повторному прохождению игры. И оценка реиграбельности представляется довольно сложной проблемой в играх. В данном случае рассмотрен упрощенный критерий. Под реиграбельностью будем понимать наличие изменения условий игровых задач, позволяющее при повторном прохождении получить несколько другой игровой опыт. Стоит отметить, что так как в большинстве случаев задачей игрока является написание кода, практически все игры подразумевают возможность изменения собственного кода, не поощряя дополнительно его оптимизацию при этом. Такая возможность не является интересующим нас параметром. В данной работе оценку реиграбельности проекта предлагается рассматривать как одно из трёх значений:
* реиграбельность отсутствует (Повторное прохождение игры или её частей не подразумевает нового игрового опыта);
* слабая реиграбельность (В игре поощряются повторные прохождения с изменением или оптимизацией решения);
* сильная реиграбельность (Каждая новая игровая сессия представляет собой разные условия, будь то изменение условий задачи или состава и действий игроков-оппонентов).
Звуковое сопровождение. Кроме художественного оформления для создание необходимой атмосферы может использоваться и звук. Это довольно важная характеристика игры. В данной работе оценка звукового сопровождения каждой из игр может принимать следующие значения:
* нет (Звуковое сопровождение отсутствует);
* эффекты (Присутствуют звуковые эффекты, такие как звуки выстрелов, звуки нажатия кнопок, спецэффектов и прочее);
* полное (Помимо звуковых эффектов в игре используется профессионально написанная музыка в качестве сопровождения для создания атмосферы).
Оценка игровых сервисов. К сожалению, оценку игры удалось найти исключительно для коммерческих приложений. Оценки были взяты из сервисов цифрового распространения игр Steam и GOG Galaxy, однако ввиду равенства оценки GOG (4,5 бала из 5) для всех продуктов, она не была включена в таблицу. Оценка Steam представляет собой процент положительных пользовательских рецензий на игру за всё время её размещения в сервисе.
Целевая аудитория. В данной работе заключение об этом критерии было сделано на основании наличия обучения основам программирования на выбранном языке, требованиям к начальным знаниям и направленности создаваемых программ. Таким образом целевую аудиторию предлагается относить к одной из следующих категорий:
* начинающие (особых начальных знаний для игры не требуется, необходимые основы даются в рамках приложения);
* обучающиеся (требуются некоторые начальные знания; игра направленная на их совершенствование и расширение);
* опытные программисты (в игре нет обучающих материалов, предполагается, что пользователь уже имеет необходимые навыки, или эти навыки необходимы, чтобы достичь успеха в игре).
Тип игрового цикла. Рассмотренные игры относятся к различным жанрам и по-разному организуют процесс непосредственно игры. Какие-то приложения состоят из уровней, какие-то подразумевают стратегическое взаимодействие нескольких игроков на одном поле. Безусловно даже схожие игры отличаются, однако возможно выделить основные типы игровых циклов. Проанализированные и сформулированные игровые циклы будут описаны после обзора.
2.3.2 Анализируемые игры
В данной работе рассмотрены как бесплатные, так и коммерческие аналоги разрабатываемого приложения. Часть из них выпущена крупными компаниями, но большинство создано независимыми разработчиками. Ниже приведено краткое описание каждой, а затем таблица с оценками каждого приложения по описанным ранее критериям.
Untrusted [14]. Игра заключается в управлении движением персонажа с целью довести его до выхода с уровня. Осложняется путь лабиринтом. Однако, игрок видит программный код, формирующий сцену и имеет возможность некоторые его фрагменты изменять. Количество попыток неограниченно. Графическое оформление игры представляет собой ASCII-символы. Не смотря на то, что уровни можно перепроходить и лабиринт формируется случайным образом, написанное решение зачастую работает для всех вариантов данного уровня, что снижает реиграбельность.
Codewars [15]. Не является игрой в привычном понимании. По сути, это набор задач по программированию. В то же время за их решение дают очки опыта, что позволяет получать новые уровни (названные по примеру восточных единоборств “кю”). После успешного прохождения задания пользователь может посмотреть чужие решения, чтобы почерпнуть для себя какие-либо идеи.
Codecademy [16]. Не является игрой. Это сервис для онлайн-обучения программированию и смежным дисциплинам. В то же время, сами задачи представлены в игровой форме, что позволяет включить данный сайт в подборку. На codecademy.com можно найти как бесплатные курсы, так и платные версии, стоимость которых достигает порядка 12000 р. Кроме того, некоторые уроки доступны только при оплате Pro-аккаунта.
Codingame [17]. Очень интересный с точки зрения исследования аналог. Поддерживает несколько режимов работы. Обучающий предполагает решение задач. Они представлены в виде небольших игр; в описании каждой описано, на какие темы задание и даны теоретические подсказки. Второй режим соревновательный и подразумевает либо соревнования по написанию ботов, либо создание кода на время, либо оптимизацию кода и подобные задачи. Кроме того стоит отметить, что большинство задач создаётся пользователями. По условиям оценки реиграбельности появление новых задач и, соответственно, интерес к игре в целом мы не можем учесть, однако соревновательный режим предоставляет постоянно меняющиеся условия игры.
Codecombat [18]. Игра, позволяющая управлять персонажем при помощи кода. По сути представляет из себя последовательные уровни-головоломки. Базовый курс бесплатен, но игра требует покупок для открытия полного контента или облегчения прохождения задач. Снабжена хорошим художественным оформлением и звуковым сопровождением.
Checkio [19]. Набор задач по программированию в рамках игры. Несмотря на художественное оформление общей карты мира и глав для изучения, сами задачи всего лишь представляют собой окно редактора кода и необходимую теорию.
Empireofcode [20]. Представитель жанра мобильных стратегий на подобии Clash of Clans. Игра заключается в строительстве своей базы и отправке войск для нападения на чужие. Написание кода в данном примере используется в трёх случаях. Во-первых, решение задач по программированию позволяет повысить эффективность заданий. Во-вторых, игра позволяет задавать логику поведения оборонительных сооружений на своей базе. Ну и третий вариант использования - задание логики действий войск при атаке противников. Игра хорошо оформлена художественно и имеет звуковое сопровождение.
Flexbox Froggy [21], Flexbox Defense [22] и Grid Garden [23]. Данные три игры объединены в связи с тем, что они крайне похожи. Каждая из них состоит из нескольких уровней, в которых пользователю необходимо так написать CSS-код, чтобы объекты расположились в нужных местах поля. Оформление игр довольно простое, представляющее собой просто картинки, звукового сопровождения нет. Исключением является Flexbox Defence, где присутствуют звуковые эффекты, но не музыка.
Ruby Warrior [24]. Полноценная игра с двумя уровнями сложности, управляемая кодом для контроля персонажа. Оформлена в стиле старых игр с пиксельной графикой и восьмибитной музыкой. Состоит из последовательных уровней и предлагает все необходимые подсказки для успешного прохождения каждого.
JavaScript Fight Club [25]. Игра для множества игроков. Представляет собой поле боя, на котором две команды соревнуются либо до последнего выжившего, либо до определенного преимущества по ресурсам. Каждый персонаж каждой команды управляется алгоритмом, написанным одним из пользователей. Битвы проходят без непосредственного участия игроков, а программы берутся из специальной директории на GitHub.
BOX-256 [26]. Игра заключается в написании ассемблерного кода для рисования на поле из 256 пикселей изображения, эквивалентного данному в задании. Графика довольно простая, но при этом является достаточной и логичной для игры подобного рода.
Scalatron [27]. Игра о написании логики поведения ботов для выживания на одной арене с другими игроками. В данной игре можно управлять не только основным ботом, но и набором подчиненных.
Colobot [28]. Стратегическая игра для персонального компьютера, позволяющая управлять юнитами при помощи пользовательского кода на искусственном языке программирования.
Codefights [29]. Сборник задач по программированию на различные тематики. Не предполагает наличие художественного оформления. Данный сервис в первую очередь ориентирован на подготовку программистов к собеседованиям и наоборот поиск работников компаниями.
Elevator Saga [30]. Игра, суть которой состоит в программировании логики работы лифтов для достижения определенного количества доставленных пассажиров на нужные им этажи. При этом не известно ни когда и сколько пассажиров появится на определенном этаже, ни на каком этаже тот или иной человек должен выйти.
Shenzhen I/O [31]. Игра для персонального компьютера, позволяющая собирать устройства из компонентов и программировать их на ассемблере. Включает в себя как набор задач для решения, так и "режим-песочницу", в котором можно собрать то устройство, которое хочет пользователь.
TIS-100 [32]. Игра, в ходе которой требуется исправить ошибки в ассемблерном коде устаревшего компьютера, решая различные головоломки. Основная её цель - понять, что это было за устройство, кем и зачем оно создано. Все задачи подразумевают повторное решения для минимизации количества инструкций. Дополнительно игра поддерживает режим песочницы.
Screeps [33]. Многопользовательская онлайн игра, в которой игроки управляют некоторой колонией игровых ботов при помощи программного кода. Программы описывают логику поведения юнитов и выполняются даже в отсутствие игроков онлайн. Игра использует подписочную модель. Указанная в таблице цена позволяет купить игру и пользоваться ей полноценно в течение одного месяца. Затем доступные возможности снижаются и требуют подписки за 599р. в месяц для разблокировки всех функций.
Human Resource Machine [34]. Алгоритмическая игра. Решение головоломок требует составление алгоритма из предлагаемых блоков, управляющего персонажами. Как и все коммерческие аналоги, игра отлично оформлена как в визуальном, так и в звуковом плане.
2.3.3 Анализ аналогов разрабатываемого приложения
В Таблице 2 приведены оценки всех рассматриваемых игр по обозначенным выше критериям.
Данные приложения были проанализированы с использованием подхода ATMSG. Было выявлено четыре основных типа игровых циклов:
* итеративный;
* стратегический;
* мультиплеерный:
* детерминированный;
* недетерминированный.
Безусловно, даже схожие игры разительно отличаются друг от друга, но в данной работе мы рассматриваем общие особенности каждого игрового цикла, что и позволят свести их к четырём типам.
Итеративный игровой цикл представляет собой последовательное прохождение уровней. Сама последовательность меняется от игры к игре и может быть строгой, даже разделённой на главы по темам задач, а может быть открытой, с возможностью проходить любые уровни в любом порядке. Сам уровень представляет собой задачу, в рассматриваемых примерах по написанию кода. Его можно разделить на три части:
1. объяснение теории;
2. непосредственно решение задачи;
3. награждение.
Таблица 2
Оценка аналогов разрабатываемого приложения
Таблица 3
Оценка аналогов разрабатываемого приложения (продолжение)
Первая часть заключается в подаче пользователю необходимого теоретического материала для решения задачи. Довольно часто в играх этот этап совмещён со вторым и ограничивается краткими подсказками на экране. Вторая часть -- непосредственно то, во что играет пользователь. Ему объясняются условия задачи, требуемый результат и даётся возможность написать решение. Третья часть отвечает за обратную связь с игроком.
В самом простом случае его поздравляют с успешным решением задачи и предлагают продолжить игру. Или наоборот выводится сообщение о проигрыше с предложением попробовать ещё раз. В более сложных играх наградами могут дополнительно выступать какие-либо внутриигровые объекты.
Стратегический игровой цикл в данных серьёзных играх наследуется от подобного у стратегий в реальном времени. Игроку доступны подконтрольные ему юниты и здания, он может производить с ними какие-либо действия, взаимодействовать с игровым окружением и т.д. Особенностью данных игр является то, что в любой момент игрок может открыть редактор, чтобы изменить код модели поведения одного или группы юнитов. В случае же с игрой Empireofcode есть ещё и возможность решать задачи для повышения эффективности работы строений. Этот факт в совокупности с моделью боевой системы привносит в игровой цикл этого проекта элементы итеративного типа.
Мультиплеерные игры рассчитаны на взаимодействие сразу нескольких игроков на одном игровом поле. Как правило, сначала загружается заранее написанный игроком программный код, а затем подконтрольные игровые объекты выполняют описанные в нём команды. В детерминированном подтипе игра разбита на ходы и действия каждого управляемого персонажа рассчитывают в фиксированные моменты времени. В недетерминированном же все вычисления производятся параллельно с действиями и не прерывается исполнение программы.
В результате анализа был выявлен наиболее популярный тип игрового цикла, состоящий из отдельных уровней-головоломок, и поставленные перед каждым его этапом задачи. На основании этих данных будет сформирован цикл разрабатываемого приложения.
Наиболее популярным языком программирования в играх для программистов является JavaScript. Ему обучают 47,6% рассмотренных аналогов. На втором месте Python (33,3%). Несмотря на то, что данные игры позволяют изучить множество языков программирования, не было найдено ни одной серьёзной игры для программистов, обучающей языкам программирования шейдеров. Именно на данной тематике предлагается сконцентрироваться в данной разработке.
Как и упоминалось ранее, большинство аналогичных проектов работает в веб-браузере. Связано это в основном с тем, что в подобных проектах, в отличие от современных развлекательных игр, не требуются большие вычислительные мощности на стороне клиента. Кроме то, доступ к игре через интернет позволяет продолжать обучение из любой точки мира с любым устройством, что не так просто с клиентскими приложениями.
Разумеется, игровая составляющая привносит некоторые требования на уровне эстетики в обучающие программы. Так художественно оформление является неотъемлемой частью большинства игр. В то же время стоит отметить, что звуковому сопровождению уделяется куда меньше внимания.
Реиграбельность является важным фактором, так как позволяет удерживать пользователя в игре. Из проведенного обзора очевидно, что сильной реиграбельности добиваются, в основном те игры, которые взаимодействуют с другими пользователями и имеют в себе соревновательные элементы. Другим фактором можно назвать наличие так называемых режимов-песочниц, где игрок может самостоятельно создавать из элементов игры то, что посчитает сам нужным.
Зачастую интерес к игре проявляется в полной мере, когда пользователь уже достиг определённого уровня знаний, чтобы эффективнее решать поставленные задачи. В то же время, большинство игр уменьшают порог вхождения за счёт как раз обучающей составляющей. Таким образом, человек без навыков программирования зачастую способен получить их с нуля. Также стоит отметить, что многопользовательские игры хоть и не требуют официально высоких знаний, наиболее интересны именно опытным программистам. Связано это с тем, что в процессе игры будут попадаться противники выше игрока по уровню владения навыками.
Теперь проведём классификацию рассмотренных аналогов по модели 4C/ID. Для этого сначала расположим изучаемые игры на координатной плоскости. Ось абсцисс показывает степень предполагаемой в данной игре поддержки. Эта оценка основана на четырёх параметрах: доступности поддержки, её типу, наличии примеров и предполагаемой обратной связи. По оси ординат оценим организацию обучающих задач и поддержки. Этот параметр базируется на наличии деления задач на классы и соответствующее распределение классов, как было описано в модели, а также на распределении поддержки пользователей внутри данного класса.
Дополнительно на диаграмме отмечается тип задач, решаемый приложением - полные задачи (заполненный круг), частичные (пустой круг) и смешанные (серый круг). Результат построения этой диаграммы показан на Рис. 4.
Безусловно, так как у осей отсутствуют шкалы, расположение объектов на диаграмме относительное. Мы не можем количественно выразить эти критерии, но способны утверждать, что одна игра доминирует над другой по одному из параметров.
Следующим этапом является расположение игр по четырём зонам вдоль оси "программирование-игра". Чем левее располагается проект, тем меньше в нём игровых элементов и тем больше он походит на среду обучения программированию. Самое правое положение в этих группах показывает наличие явных игровых элементов, не связанных с программированием. Игры в центральных зонах ориентированы на обучение написанию кода, однако в них присутствуют игровые элементы, не разрывающие связь с программированием, будь то сюжет, взаимодействие с другими игроками, необычная система управления и прочее. Оценка расположения игр производится по названным ранее в модели компонентам игры. Иллюстрация данного этапа опущена, так как он входит в следующий. Согласно данной модели идеальная игра располагается на стыке третьей и четвёртой групп [13].
Рис. 4 Диаграмма оценки обучающей составляющей аналогов
Финальный этап объединяет две классификации. В первую очередь изображённые на диаграмме игры разбиваются на классы. самый большой класс - игры расположенные в центре диаграммы. Они располагаются в так называемой "серой зоне" или "сером облаке". Это игры, которых большинство, они обеспечивают достаточную, но не полную поддержку пользователей, задания в них разделены на классы и правильно организованы, но встроенная поддержка ограничена. Обозначим этот класс буквой B. Два других класса составляют игры, располагающиеся cправа и выше "серой зоны" (обозначим класс как C), и напротив, ближе к началу координат (обозначим A). Итоговое распределение игр изображено на Рис. 5. Дополнительно к обозначенному в статье методу построения данной диаграммы, было принято решение обозначить на итоговом варианте типы заданий каждой игры.
Рис. 5 Классификация аналогов по модели 4C/ID
2.3.4 Предлагаемая тематика разработки
Шейдер (англ. shader -- затеняющая программа) -- компьютерная программа, предназначенная для исполнения процессорами видеокарты (GPU) [35].
Программы затенения (шейдеры) исполняются на графическом процессоре и используются для отображения объектов в виртуальном пространстве. Подобные программы применяются во многих отраслях, начиная от компьютерных игр и киноиндустрии, и заканчивая программами симуляции и визуализации данных в медицине, архитектуре, военной и космической промышленностях.
Сейчас с развитием бесплатных движков для создания трёхмерных приложений появляется возможность у пользователей контролировать практически каждый аспект приложения, включая процесс отрисовки виртуального пространства. Более того, с развитием технологий разработчики получают всё больше контроля над различными стадиями графического конвейера [36]. Как говорилось ранее, нами не были встречены обучающие программированию шейдеров игры. Более того, обучающие материалы некоторых языков зачастую касаются исключительно получения конкретных эффектов, а не синтаксиса, особенностей языка и логики работы самих шейдеров.
...Подобные документы
Требования к техническим, программным средствам разработки и функционированию программы. Обоснование выбранного языка программирования. Описание алгоритма решения задачи, тестирование ее основных функций. Понятие дружелюбного пользовательского интерфейса.
курсовая работа [85,9 K], добавлен 31.10.2014Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.
курсовая работа [2,1 M], добавлен 23.02.2011Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.
курсовая работа [160,3 K], добавлен 03.12.2014Приемы практического использования объектно-ориентированного подхода в создании законченного программного продукта. Разработка кроссплатформенной компьютерной игры "Морской бой". Принципы "хорошего стиля программирования C++/Qt". Описание классов игры.
курсовая работа [2,7 M], добавлен 12.08.2014Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта.
курсовая работа [1,4 M], добавлен 18.01.2017Разработка программы "Быки и коровы", предназначенной для развития логики и смекалки. Требования к программным, техническим параметрам персональных компьютеров. Требования техники безопасности и охраны труда при эксплуатации программы, методика испытаний.
курсовая работа [1,8 M], добавлен 06.01.2017Разработка компьютерной игры "Эволюция" с помощью игрового движка Unit. Сравнение критериев игры-аналога и разрабатываемой игры. Разработка графического интерфейса пользователя. Настройки камеры в редакторе Unity. Структура файла сохранения игры.
дипломная работа [3,6 M], добавлен 11.02.2017Ознакомление с понятием компьютерных игр и их основными жанрами. Выбор сюжета игры и среды программирования. Отрисовка графики; проведение функционального и интерфейсного тестирования программы. Анализ условий труда в данной компьютерной лаборатории.
дипломная работа [3,2 M], добавлен 13.07.2014Анализ моделей и средств построения игровой компьютерной среды предметной области. Разработка алгоритмов построения игровой компьютерной среды. Отладка и экспериментальное тестирование компьютерной игры "Представление знаний в информационных системах".
дипломная работа [2,9 M], добавлен 12.08.2017Обзор методов и средств реализации поставленной задачи. Описание компьютерной игры "Японские кроссворды". Обоснование инструментария разработки программного продукта. Алгоритмический анализ задачи. Графический интерфейс и лингвистическое обеспечение.
курсовая работа [725,4 K], добавлен 27.08.2013Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.
дипломная работа [3,3 M], добавлен 18.02.2017Разработка легко модифицируемой игры типа tower defence (меняя фон и изображение объектов, можно получить как средневековые сценарии защиты, так и современные с участием ПВО, артиллерии, танков и самолетов). Применение механизма инкапсуляции, буферизация.
курсовая работа [221,7 K], добавлен 13.08.2011Исследование базовых концепций программирования приложений под операционную систему Windows. Изучение истории создания универсального языка программирования Си. Разработка графического пользовательского интерфейса. Обзор правил игры и алгоритма работы.
курсовая работа [58,2 K], добавлен 09.11.2012Требования к пользовательским интерфейсам, к аппаратным, программным и коммуникационным интерфейсам, к пользователям продукта. Проектирование структуры приложения для самоконтроля успеваемости студентов. Программные средства эксплуатации приложения.
курсовая работа [561,9 K], добавлен 28.08.2019Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.
курсовая работа [357,1 K], добавлен 28.02.2011Разработка компьютерной игры, выбор структур, используемых данных, технологии, языка и среды программирования. Алгоритм и программа для реализации игры, функциональные возможности и сопровождение разрабатываемой системы. Выбор стратегии тестирования.
курсовая работа [341,9 K], добавлен 19.04.2011Понятие и эволюция игр, анализ их различных жанров и существующих аналогов. Выбор программных средств для реализации игры, написание сюжета и выбор среды разработки игры. Алгоритмы для придания гибкости обучающей игре. Описание программных модулей.
дипломная работа [2,7 M], добавлен 27.10.2017Методика и основные этапы разработки стратегической игры, ее элементы и принцип работы программы. Порядок построения информационной модели. Диаграмма потоков данных и действий. Выбор языка программирования и его обоснование. Критерии качества среды.
курсовая работа [3,5 M], добавлен 11.12.2012Описание правил игры "Морской бой". Особенности современных компьютеров и искусственного интеллекта. Создание общей блок-схемы программы, ее внешний вид. Необходимые переменные, процедуры и функции. Характеристика объектов, используемых в приложении.
курсовая работа [950,1 K], добавлен 05.11.2012История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.
курсовая работа [168,1 K], добавлен 27.09.2013