Alice как объектно-ориентированная среда для разработки компьютерных игр

УДК 001.8

ALICE КАК ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ СРЕДА ДЛЯ РАЗРАБОТКИ КОМПЬЮТЕРНЫХ ИГР

Т.Н. Лебедева, С.С. Юнусова

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

Ключевые слова: объектно-ориентированное программирование, средства программирования, школьный курс информатики, компьютерная игра.

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

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

Знакомство с программированием является неотъемлемой частью всего курса информатики. Проблема преподавания программирования в школе, выбора сред до сих пор является актуальной и обсуждается учеными, педагогиками с момента введения информатики в школу. В работах А.Г. Гейна, А.П. Ершова, Г.А. Звенигородского, А.Г. Кушниренко, А.С. Лесневского, С.М. Окулова, И.Г. Семакина, Н.Д. Угриновича и др. отражены вопросы изучения информатики, в целом, и программирования, в частности.

На уроках информатики в основной школе по курсу алгоритмизации и программирования учащиеся изучают интуитивное понятие алгоритма, знакомятся с его свойствами, исполнителями и их системами команд. Управление исполнителями, составление алгоритма происходит посредством изучения программных сред «Алгоритмика», «Роботландия», Лого-среды, «КУМИР», «Стрелочка», «Кукарача» и пр. В старших классах в качестве учебной среды программирования широко используются процедурно-ориентированные (Turbo Pascal, Borland Pascal, FreePascal, ABC Pascal, Turbo Basic, QBasic, FreeBasic, PureBasic, Turbo C, Borland C) и объектно-ориентированные языки (Object Pascal и Visual Basic). Эти языки программирования максимально формализованы, строги к структуре конструкций, имеют расширенную номенклатуру типов данных. Задачи, которые решаются с помощью этих языков чаще всего носят физико-математический характер, их решение не наглядно.

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

«Для создания игр можно использовать различные среды, например, Game Maker, Alice, GreenFoot, Squeak, Karel, PlayScape, Stencyl, MegaKerma, Baltie, Mama и др. Данные среды написаны на современных языках программирования, доступны для операционной системы Windows, относятся к свободно распространяемому программному обеспечению, имеют собственный язык программирования» [1, С.40]. Это полноценные конструкторы игр, в которых необходимо знание объектно-ориентированного программирования. Объектно-ориентированное программирование представляет собой «способ программирования с ориентацией на объекты» [5]. Используя данные среды в обучении, учащиеся могут познакомиться с основными его понятиями: класс, объект, принципы объектно-ориентированного программирования (инкапсуляция, полиморфизм, наследование, абстрагирование и др.), поведение, свойства объекта, иерархия класса.

Так, например, объектно-ориентированная среда Alice позволяет управлять трехмерными объектами, создавать программы (компьютерные видеоигры и анимационные приложения-фильмы), генерирующие анимацию в виртуальных мирах на основе использования условий, циклов, функций/методов, обработки массивов данных, списков, объектов, наследования, инкапсуляции, полиморфизма и т.д. (см. рисунок 1) [3,5].

A lice

Learn to Program with Interactive 3D Graphics

a free gift to you from

Carnegie Mel Ion

Рис 1. Логотип Alice

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

С исторической точки зрения проект Alice получил достаточно широкое распространение в США. Сегодня по данным разработчиков среду используют уже около 10% американских колледжей. Проект создан и поддерживается университетом Карнеги Меллона (Carnegie Mellon University) (CMU, cmu.edu). Среда программирования Alice выпускается для Windows, Mac OS и Linux в двух редакциях: основной (для вузов) и упрощенной (для школ).

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

Окна Alice очень похожи на те, что встречаются в профессиональных современных интегрированных средах разработки визуальных приложений типа Visual Studio (см. рисунок 2).

Рис 2. Окно программы

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

В среде Alice используется собственный встроенный язык программирования, приближенный к синтаксису языков современных объектно-ориентированных языков программирования таких, как Java, C++ или Visual Basic.

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

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

Программирование в Alice отчасти напоминает работу в среде Scratch. Процесс написания игры напоминает игру «Пазлы», когда необходимо состыковать между собой программные элементы, из которых собирается вся программа (см. рисунок 3). От учащегося лишь иногда требуется ввести с клавиатуры константы или название собственных идентификаторов. Для наглядности представленного кода блоки программных элементов выделяются определенным цветом в зависимости от их типа. Эти блоки можно легко перетаскивать, меняя порядок и вложенность.

О world.my first method

v/o rid. ту first method No parameters | create new parameter |

No variables | create new variable |

Do in order

! bunny ^ move up - 11 meter ^ more...— I

i bunny - | move down ~ 11 meter ~ тоге..._

Do together

: bunny.upperBody.head.rightEar " turn left — 0.25 revolutions more... I

bunny.upperBoity.head.leftEar ~ turn right 0.25 revolutions more... _ I

: Do in order |; Do together If.'Else Loop While For all in orderly For all together |S Wait

Рис 3.Пример кода программы

В программу можно подключать различные мультимедийные элементы, содержащие видео, графику и звук (*.mov, *.gif, *.jpg, *.bmp, *.png, *.tif, *.mp3, *.wav). Также допустим импорт готовых моделей из других программ, в том числе из графической программы «3DS MAX», при этом сохраняя доступ к отдельным частям модели.

Виртуальный мир Alice имеет три измерения пространства (и времени), и каждый объект имеет свойства: цвет, размер, позиция, направление, в которой объект стоит и т.д. В Alice есть также камера, которая позволяет увидеть виртуальный мир на экране компьютера в разных положениях.

Изменить свойства можно на этапе проектирования интерфейса на вкладке properties и во время выполнения программы. Для изменения значения свойства объект выбирается в дереве объектов. Затем напротив названия свойства из списка возможных значений выбирается желаемое (см. рисунок 4).

Рис 4. Окно «Дерево объектов» и окно «Свойства»

Для программного изменения нужный атрибут переносится с вкладки properties в окно кода, а в команде set устанавливается автоматически. Новое значение для свойства выбирается из списка (см. рисунок 5).

birth ^

set opacity to 0,5

more.,

Рис 5. Выбор значения свойства

В Alice объекты имеют два вида методов: примитивные и пользовательские. Примитивные методы являются частью каждого объекта Alice и обеспечивают простое поведение объектов, например: перемещение, поворот, вращение. Пользовательские методы дополняются разработчиком программы, что позволяет расширять «функционал» объектов. Это позволяет закрепить на практике понятие «вспомогательного алгоритма», «процедуры/функции». В дополнение к стандартным наборам примитивных методов для некоторых объектов в Alice содержатся галереи методов, которые включают пользовательские методы. При просмотре объекта в библиотеке можно увидеть его методы. Для написания новых пользовательских методов по нажатию на кнопку «create new method» можно создать собственный метод с использованием примитивных и уже готовых пользовательских методов (см. рисунок 6).

Рис 6. Окно методов

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

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

Programming is one of the main and most complex topics of the school course of Computer Science. If one uses the construction of their own stories and games while learning algorithms and programming, the process of teching will be interesting and informative. The article substantiates the necessity of using «Alice» virtual environment as a tool to create computer games in teaching object-oriented programming. The article can be useful for university teachers, computer science teachers and students of pedagogical universities. Key words: object-oriented programming, programming tools, Computer Science school course, computer game.

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

1. Лебедева Т.Н. Конструктор игр как средство развития алгоритмического мышления школьников [Текст]// Информатика и образование. № 10 (249). С. 39-41.

2. Национальная образовательная инициатива «Наша новая школа» [Электронный ресурс] URL: [http://mon.gov.ru/dok/akt/6591/] (дата обращения: 30.08.2011).

3. Официальный сайт системы программирования «Alice» [Электронный ресурс] URL: http://www.alice.org

4. Пахомов Б.И. C/C++ и MS Visual C++ 2008 для начинающих. СПб.: БХВ-Петербург, 2009. 624 с.: ил.

5. Юнусова С.С. Объектно-ориентированное программирование в виртуальной среде ALICE [Текст]// Всероссийская научная конференция «Информатика и информационные технологии». Челябинск, ЗАО «Цицеро». С.152-158.

Об авторах

Лебедева Т.Н. - кандидат педагогических наук, доцент кафедры информатики, информационных технологий и методики обучения информатике Челябинского государственного педагогического университета. lebedevatn@mail.ru

Юнусова С.С. - старший преподаватель кафедры информатики, информационных технологий и методики обучения информатике Челябинского государственного педагогического университета, yunusova@cspu.ru.