IV Международный конкурс
научно-исследовательских и творческих работ учащихся
«СТАРТ В НАУКЕ»
 
     

ЛАБИРИНТ. СОЗДАНИЕ 3-D ИГРЫ
Стефаненко Н.Н.
Текст научной работы размещён без изображений и формул.
Полная версия научной работы доступна в формате PDF


Введение.

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

Кто не играл в компьютерные игры? В современном мире двухлетний ребенок уверенно держит мышку или ловко водит героя своей игры с помощью стрелочек на клавиатуре. Сейчас не нужно быть программистом, чтобы создать обработать фотографию, создать фильм, обрезать музыку или создать игру – достаточно быть продвинутым пользователем. Создание компьютерной игры – на сегодняшний день одно из самых популярных направлений, причем занимаются этой работой не только профессиональные программисты. Может, сложится впечатление, что профессия программист сейчас не нужна! Но кто же тогда будет создавать все операционные системы, редакторы, графические пакеты, компьютерные игры и многое другое? Программисты, безусловно, нужны, причем задачи, которые им приходится решать, со временем становятся все сложнее. Поэтому узнавать основы программирования нужно уже в школе.

В прошлом году в нашей школе прошел хакатон в рамках акции «Час кода». Ребята 8 класса показали нам возможности программы. В течении 3 часов мы учились работать с этой программой и создавать простую игру под руководством старшеклассников. В апреле 2016 года мы приняли участие в региональном хакатоне в г. Новонузнецк. Там в течение шести часов наши команды создавали свою трехмерную игру.

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

Цель: создание трехмерной игры в среде «Kodu Game Lab».

Задачи:

  • изучить теоретический материал о программировании;

  • ознакомиться с возможностями «Kodu Game Lab»;

  • научиться создавать игры различного уровня сложности;

  • создать игру «Лабиринт» и представить ее ученикам 1-4 классов.

Актуальность: Открытие новых возможностей создания 3-d игр.

Объект исследования: среда программирования «Kodu Game Lab».

Предмет исследования: создание трехмерной игры «Лабиринт».

Гипотеза: не зная профессионального языка программирования можно создавать компьютерные игры.

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

  1. Компьютерные игры – среда программирования.

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

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

Второе место в списке занимает Java/JavaScript. Java - объектно-ориентированный язык высокого уровня, потомок Си++, но с более легким синтаксисом, удобен для интернет-программирования. Это сравнительно молодой язык программирования, появился в 1995 году. Без него не обойдется не один создатель веб-страницы, применяется в браузерах как язык сценариев для создания интерактивности сайта. Самым большим преимуществом языка является то, что он легкоизучаемый и даже, если вы не программист, то немного потерпев вполне сможете в нем разобраться, хотя бы на начальных этапах. У него есть специфическое отличие от остальных языков, им не владеет ни одна компания, он так сказать в свободном плавании.

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

Далее идут языки программирования С, C++, C#. Несмотря на то, что язык C появился в 1972 году, он остается актуальным и по ныне. Его основными преимуществами стали: компактность, быстрота и мощность. Применяется для создания системного и прикладного программного обеспечения. Язык С++ появился он в 1983 году, так же как и C предназначен для общего пользования. Его можно использовать в таких областях как: создание операционных систем, для функций аппаратного ускорения, мобильных устройств, а также для игр. Если вам для работы необходимо большой объем памяти, то вы смело можете воспользоваться услугами языка C++. А язык С# был разработан в 2001 году в компании Microsoft в качестве языка разработки приложений для Microsoft .NET Framework. Это один из основных языков для разработки движка игр Unity.

Востребованным является и язык PHP. Он один из лидеров для создания динамических веб-сайтов. В настоящее время на PHP создано большое количество сайтов, которые ориентируются на большой объем данных.

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

Часто упоминаются языки программирования Visual Basic (1991) Этот продукт от Майкрософт знают все программисты, ведь большинство именно на нём познавало азы работы с компиляторами. Он прост, многофункционален и идеально подходит для быстрого создания прототипов программ. Кроме широких возможностей по созданию программного кода, также с его помощью можно конструировать пользовательский интерфейс программы. Именно ВБ чаще всего используют профессионалы из Майкрософт для создания своих программ, Delphi (1995) Данный язык является ещё одним из самых популярных языков из-за наличия огромного количества компиляторов и диалектов. Каждый программист использует именно тот диалект, который подходит для его основного направления в работе. В целом, Delphi – императивный, объектно-ориентированный язык. Чаще всего на этом языке создаются разнообразные программы.

Free Pascal и Lazarus объектно-ориентированные, визуальные программы. Достоинством их является общедоступность и бесплатность. Так, и Free Pascal и Lazarus можно свободно скачать в Интернете. В отличие от продуктов семейства Delphi, использование Free Pascal и Lazarus позволит снять все проблемы нелегального использования лицензионного ПО. В то же время Lazarus по своим возможностям практически не уступает Delphi. Таким образом, Lazarus является идеальным средством для изучения языка программирования Паскаль в школах и вузах в полном соответствии с Концепцией развития разработки и использования свободного программного обеспечения в Российской Федерации.

  1. Изучение возможности программы KoduGameLab

  1.  
    1. Принципы работы в KoduGemelab

В 2009 году компания Microsoft выпустила компьютерную бета-версию программы Kodu, предназначенной для создания игр.

Kodu Game Lab представляет собой визуальную среду для разработки трехмерных игр. Она не требует знания программирования, и может использоваться даже детьми. Простой и дружественный интерфейс Kodu вызывает положительную мотивацию к созданию различных миров: выбору объектов и среды их обитания, моделированию поведения объектов, условий действий, отношений между разными объектами и т.п. Kodu демонстрирует творческий аспект программирования. Основной идеей Kodu, является сосредоточение внимания пользователя на процессе разработки истории и идеи игры с её логикой, вместо того, чтобы постоянно задумываться над способами программирования. Ядром проекта Kodu является пользовательский интерфейс разработки программ. Программы на языке Kodu очень просты, целиком состоят из значков и делятся на страницы, состоящие из правил. Каждое правило, в свою очередь, состоит из условий и действий. Язык Kodu предназначен для разработчиков игр и предоставляет специализированные примитивы, соответствующие существительным, прилагательным и глаголам обычного языка и разработанные на основе игровых сценариев. Программы, составленные на языке Kodu, можно представить в физической форме, используя действия (такие как «смотреть» и «слушать») и временные интервалы для управления поведением персонажей. Kodu предоставляет простые и интуитивно понятные средства, позволяющие напрямую реализовывать сложные проекты игр.

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

Ключевые особенности и функции программы

  • в наличии интерактивный редактор ландшафта;

  • имеется утилита для создания мостов и путей;

  • с помощью редактора ландшафта можно создавать миры любой формы и размера;

  • в комплекте 20 различных персонажей с настроенными способностями.

В среде Kodu Game Lab можно сделать много различных видов игр, например, гонки, стратегии, РПГ, приключение, платформа, головоломка, стрелялки и другие.

Как же устроена игра на Kodu?

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

Внутри мира живут объекты – это могут быть яйцеголовые “коду”, яблоки, деревья, пушки, снаряды и т.д. Объекты уже наделены некоторым поведением, другие действия можно добавить. Всё это заложенная по умолчанию функциональность – поэтому чтобы получить работающую игру, надо не так много – поместить объекты в мир и наделить минимальным поведением. В ответ на события (нажатие клавиш, перемещение мыши, столкновение и т.д.) можно просить объекты исчезать, испытывать эмоции. Чему может научить Kodu?

  • Kodu знакомит с логикой программирования и способами решения проблем, обходясь без сложного синтаксиса.

  • Kodu включает условия и последовательности и является объектно-ориентированным.

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

Кто может пользоваться Kodu?

  • Любой!

  • Его может преподавать любой учитель, даже без опыта программирования.

  • Наиболее успешно применяют Kodu дети от 8 лет.

Создание новой игры

Игра Kodu находится в группе Microsoft Research меню «Программы».

Открыв игру Kodu, выберать пункт «Загрузить мир».

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

Сначала можно изучаем существующие игры.

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

Рассмотрим для примера первый учебный мир.

Первый учебный мир называется Maze Tutorial .

Чтобы посмотреть, как устроен мир, перейти в режим редактирования, нажав клавишу Esc. В нижней части экрана появится панель средств редактирования

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

Далее составляем алгоритм для работы персонажа в мире.

Можно добавлять и редактировать пути: изменять их тип, высоту, добавлять новые узлы.

Но тогда необходимо внести изменения в программу (Когда персонаж касается заданного объекта - выполнять Движение по путям).

Эту функцию можно использовать при настройке своего персонажа или любого другого бота, который сталкивается в игре с любым другим объектом. Например, при соприкосновении Коди с объектом, испытывающим положительные эмоции выполняется один ряд команд, при соприкосновении Коди с объектом, испытывающим отрицательные эмоции выполняется другой ряд команд. Можно изменить ландшафтный дизайн игры – добавить горы, реки, моря, впадины, изменить цветовую гамму. Можно изменять параметры самого мира – настройка камеры, освещение, музыку, и другие эффекты

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

  1.  
    1. Описание игры

Название: лабиринт.

Главный герой: Rover

Противники: разнообразные боты

Цель игры: пройти квест, состоящий из 3 уровней.

Цель 1 уровня: дойти до замка, набрав нужное количество очков.

Цель 2 уровня: пройти лабиринт.

Цель 3 уровня: освободить жителей волшебной страны «материнская плата» от вирусов.

Примечание: существуют ловушки - псевдопредметы.

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

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

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

Самый последний этап смешанный, представляет из себя жанр приключения, в котором будет представлен мир «Материнская плата».

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

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

  1.  
    1. Тестирование игры

Для тестирования игры мы загрузили программу на три ноутбука. В первый день мы посадили 3 учеников третьего класса, во второй день – учеников 4 класса и в третий день – учеников 4 класса. Всего приняли участие в тестировании 10 человек.

Вот отзывы об этой игре:

Стефаненко Тимофей (ученик 2 класса) – Мне очень понравилась игра, правда некоторые вопросы на первом этапе были сложные и в лабиринте запутался. Но я быстро разобрался. Победить вирусы на последнем уровне оказалось сложно, пришлось добирать бонусы.

Соколовский Александр (ученик 3 класса) – Игра не очень сложная, мало уровней, правда, вирусы на третьем уровне очень злые, отнимают много жизней, да и лабиринт запутанный. Но игра прикольная.

Бушемелев Влад (ученик 4 класса) - А ты, что сам сделал эту игру? А ты мне покажешь, как создавать такие игры, я тоже хочу попробовать. Игра классная.

После тестирования игры ребята ответили на вопросы:

  •  
    1. Понравилась игра?

    2. Уровень сложности (легко, сложно, средний)

    3. Уровень дизайна (отлично, средний, низкий)

    4. Ошибки игры. (нашел не нашел)

    5. Хочешь ли ты научиться создавать такие игры?

Получены следующие ответы. На первый вопрос все ребята однозначно ответили «да». Сложной игрой оказалась для учеников 2 класса (3 чел), для 3-4 классов уровень сложности игры оказался средним (6 чел) и только один ученик 4 класса сказал, что игра очень легкая. Высокий уровень оформления игры отметили 5 человек, 5 учеников отметили средний уровень оформления. Ошибку в игру нашел только один ученик (на первом уровне, когда бот задает вопрос, при ответе нужно выбрать либо букву, либо цифру правильного ответа. Если выбираешь не правильно, то баллы не начисляются, но ошибка в том, что при переборе вариантов может сработать ответ другого бота). Другие эту ошибку не обнаружили. Над этой проблемой я еще работаю. На последний вопрос все ребята однозначно ответили «ДА».

Заключение.

При выполнении данной исследовательской работы я изучил теоретический материал о программировании, познакомиться с возможностями «Kodu Game Lab», научился создавать игры различного уровня сложности, создал игру «Лабиринт» и представил ее ученикам 1-4 классов.

Моя гипотеза подтвердилась. Не зная профессионального языка программирования можно создавать компьютерные игры. В этом может помочь программа для создания трехмерных игр «Kodu Game Lab»

Эта программа позволяет реализовывать невероятные фантазии, создавать «невозможные» образы, экспериментировать, создавая сложные объекты, используя компьютерную графику. Но одновременно творческий процесс создания игры можно рассматривать как процесс обучения началам программирования. Но главное позволяет сделать Kodu – показать, что компьютер может использоваться для создания чего-то нового, для воплощения в жизнь своих идей. Конкретные технологии, языки программирования и библиотеки всё время будут меняться, но этот принцип – свобода творчества, возможность создания виртуального творения своими руками – будет оставаться всегда.

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

Завершить свое выступление мне бы хотелось стихотворением:

Ты молодой, ты должен учиться

Верь, твое знание тебе пригодится.

Иди к своей цели

Сквозь тучи, метели.

Никогда не робей и будь впереди.

Список литературы:

  1. Результаты проведенного CNews Analytics и "Форт-Россом" исследования среди разработчиков ПО

  2. Хостинг-провайдер «King Servers» Рейтинг языков программирования в 2016 году

  3. http://fuse.microsoft.com/kodu (ссылка для скачивания «KODU GAME LAB»)

  4. http://www.microsoftvirtualacademy.com/training-courses/games-creating-with-kodu-game-lab-rus (Обучающий курс «Создаем 3D игры вместе с KODU GAME LAB»)

  5. http://www.teachvideo.ru/v/8156 (Видео инструкция по скачиванию и установке среды Kodu на компьютер)

  6. http://www.youtube.com/playlist?list=PLC4D87CC5CEAB4D2F (ссылка на подборку видео уроков)

  7. http://www.it4youth.ru/page_text/337/ (Твой курс IT для молодежи)

  8. http://www.coderussia.ru/ (сайт акции «Час кода»)