Как в рамках одного занятия познакомить учащегося с Kodu

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

Описание Kodu

Важнейший компонент проекта Kodu — пользовательский интерфейс программирования. Язык очень прост, в нем используются только значки. Программы состоят из страниц, которые подразделяются на правила, которые, в свою очередь, подразделяются на условия и дейст­вия. Язык Kodu специально предназначен для разработки игр и содержит специализиро­ванные примитивы (существительные, прилагательные и глаголы языка), взятые из игровых сценариев. Программы выражаются в физических терминах; для управления поведением персонажей используются такие понятия, как зрение, слух и время. В Kodu сложные понятия проектирования игр выражаются просто, непосредственно и интуитивно понятно.

Обучение с помощью Kodu

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

План состоит из двух частей.

1. Простое программирование: содержит руководство и задания для учащихся, работая над которыми, учащиеся знакомятся с объектами и простыми понятиями программирования.

2. Простое создание и редактирование ландшафтов: при наличии времени можно использовать и вторую половину этого плана «Изменение мира» и на ее основе обсудить создание ландшафта.

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

Рекомендации по заданиям для учащихся

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

Иногда учащимся потребуется работать в группах по 2–4 человека. В этом случае очень важно, чтобы они по очереди управляли контроллером или мышью.

Базовая навигация (5 мин)

Перед входом в Kodu учащихся рекомендуется кратко познакомить со средой создания игр. Это должно занять не больше 5 минут и впоследствии ускорить перемещение класса по интерфейсу Kodu.

Вот некоторые из основных меню.

Это первый экран, который появится после загрузки Kodu. Если вы уже играли в игры, первой в списке будет команда Resume (Возобновить). При выборе этой команды будет загружен последний открытый мир и начата игра (режим игры Play Mode). Чтобы выбрать новую игру, щелкните Load World (Загрузить мир).
В центре экрана находится список сохраненных миров. Для прокрутки списка служат левый и правый выступы контроллера или клавиши со стрелками на клавиатуре. Выберите интересующий вас мир, нажав кнопку  или клавишу ENTER. Хотя миры можно создавать с нуля, Kodu поставляется с несколькими готовыми мирами. Эти миры содержат землю и могут также включать заранее заданных персонажей. В этом уроке мы начнем с изменения готового мира.
Каждый мир запускается в режиме Play Mode (Режим игры). Для переключения между режимами игры и редактирования Play и Edit служит кнопка «Назад» на контроллере Xbox или клавиша ESCAPE на клавиатуре.
Для входа в режим редактирования Edit Mode нужно нажать кнопку «Назад» на контроллере Xbox или клавишу ESCAPE на клавиатуре. Большую часть времени при работе с Kodu пользователь проводит в режиме Edit Mode. Признаком этого режима является панель инструментов внизу экрана. Для навигации по панели инструментов можно использовать правый и левый триггеры на контроллере или стрелки вправо и влево. Здесь можно создать ландшафт игрового мира, заполнить его объектами и запрограммировать их поведение.
Для перехода в это меню нажмите кнопку Play (Играть) на контроллере или клавишу HOME на клавиатуре. С помощью меню Mini Hub (Мини-хранилище) можно вернуться в мир, над которым вы работаете, сохранить текущий мир и все сделанные изменения, загрузить другой имеющийся мир, начать работу «с чистого листа» или вернуться в главное меню. 


Создание простой программы (15 мин)

После выполнения этого задания учащиеся смогут:

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

Подготовка

Для подготовки к этому уроку инструктор должен создать простую программу в пустом мире Empty World. Добавьте несколько деревьев и мотоцикл с помощью следующей программы: «When: always Do: move wander; When: see tree closeby Do: move avoid». Назовите мир Demo1.

Введение

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

  • Мотоцикл выполняет объезд.
  • Мотоцикл избегает деревьев.

Инструмент Object Tool

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

Просмотр программы

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

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

  • Добавьте к миру дерево.
  • Сделайте его синим.
  • Настройте поведение мотоцикла таким образом, чтобы он избегал только синее дерево. (Измените вторую строку кода на следующую: «When: see blue tree closeby + Do: move avoid».)

Задание для учащихся 1. Поедание яблок (15 мин)

Цели: добавить объект, изменить цвет, выбрать объект, создать последовательную программу для объекта.

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

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

Контрольный список задач

  • Откройте мир «Small with water».
  • Добавьте яблоко.
  • Сделайте это яблоко синим.
  • Добавьте к уровню объект Kodu.
  • Сделайте так, чтобы Kodu нашел ваше яблоко.
  • Сделайте так, чтобы Kodu съел найденное яблоко. (Подсказка: возможно, вам придется уберечь Kodu от воды.)

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

Дополнительное задание

  • ДЛЯ КОНТРОЛЛЕРА. Если вы еще не управляете движением Kodu с помощью контроллера Xbox, измените программу, чтобы привести Kodu к яблоку. (Движение управляется левым мини-джойстиком.)
  • ДЛЯ КЛАВИАТУРЫ. Измените программу, чтобы управлять движением Kodu с помощью клавиш со стрелками (WHEN-keyboard-DO-move или WHEN-left-mouse-DO-move-towards).
  • Какими еще действиями можно управлять с помощью контроллера Xbox или мыши?

Изменение мира (15 мин)

Цель:

  1. Изменение и создание окружения Kodu.
  2. Задание и модификация тона и настроения игрового мира с помощью фрагментов.

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

Учащиеся уже знают, как создавать и программировать объекты. В этом задании они научатся изменять пейзажи в играх. Создание и изменение ландшафта в Kodu — это одно из самых интересных первоначальных заданий для начинающих пользователей Kodu. Они могут часами изменять и проектировать замысловатые ландшафты для своих игр и анимаций. Ландшафты также задают тон для последующих действий. Попросите желающих испробовать несколько функций изменения ландшафта — некоторые из учащихся наверняка попытались применить их в предыдущем примере. В том же демонстрационном мире, созданном для урока 1 (Demo1), попросите желающих выполнить следующие действия:

  • Добавление земли к имеющейся суше или ее удаление. [Выберите на панели инструментов зеленую кисть. Работая с контроллером, выберите соответствующий ландшафтный материал, нажав на кнопку (Y) и выбрав нужный вариант на панели инструментов. Затем выберите форму кисти (X) и ее размер (кнопки направления движения). Используя левый мини-джойстик и удерживая правый триггер для добавления земли или левый для ее удаления, учащиеся могут рисовать ландшафт. Работая с мышью, щелкните четыре маленьких значка рельефа слева от кисти для выбора материала (с помощью клавиш со стрелками), а затем щелкните четыре формы кисти, чтобы выбрать одну из них (также с помощью клавиш со стрелками). Затем с помощью клавиш со стрелками можно увеличивать и уменьшать размер кисти. Щелкните, чтобы нарисовать рельеф.]
  • Добавление земли различного цвета/текстуры по периметру суши. [Выполняются те же действия, что и выше, меняется лишь материал ландшафта и, возможно, размер кисти. Скорость добавления или удаления земли контролируется степенью сдвига контроллера.]
  • Создание холмов и долин; использование функции сглаживания. [Выберите на панели инструментов значок повышения/понижения. И вновь используйте инструменты Brush Picker и Brush Size. Скорость повышения/понижения поверхности земли контролируется степенью нажатия триггеров на контроллере; мышью и клавиатурой скорость не управляется. Также обратите внимание учащихся на то, что функция сглаживания обеспечивает более плавные переходы ландшафта, одновременно повышая маневренность.]

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

Задание для учащихся 2. Ландшафты (15 мин)

Цели: создание и изменение ландшафта с помощью различных инструментов редактирования земли.

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

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

  • Перейдите к пустому миру.
  • Создайте сушу из любого материала.
  • Создайте остров. (Подсказка: нельзя добавить воду, если под ней нет земли.)
  • Создайте плато (плоскую поверхность); теперь сделайте его бугристым с помощью соответствующих инструментов.

Дополнительное задание

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

Приложение. Опросы

Дополнительное упражнение по программированию: ничего не подозревающий «аватар»

Это интересное упражнение позволяет сформировать у учащихся представление о принципах программирования игр в Kodu. При наличии времени рекомендуется начинать занятия с этого задания.

Материалы

  • 3 красных яблока (также подойдут мячи или другие окрашенные объекты)
  • 2 зеленых яблока
  • 1 сумка
  • 1–2 повязки на глаза

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

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

Вызовите желающего на роль персонажа Kodu. Посадите его на стул в середине класса и завяжите глаза. Затем расспросите других учащихся, как обставить комнату, чтобы создать окружение для Kodu. Сообщите, что нужно разместить в среде 5 объектов (3 красных и 2 зеленых яблока). Положите их в разные места комнаты. Скажите, что теперь нужно помочь персонажу Kodu найти и собрать яблоки. Обратите внимание, что каждое действие должно быть структурировано и описано.

Чтобы помочь упорядочить «команды», сообщите, что персонаж слушает только вас, поэтому следует фильтровать команды и запрашивать объяснение в случае, если что-то будет неясным или сложным для выполнения. В зависимости от того, насколько активны ваши учащиеся, вы можете приглашать их высказаться. Задавайте вопросы: как? когда? где? Вы можете развязать глаза учащемуся-персонажу, если от него требуется что-то увидеть (ведь такая команда присутствует и в Kodu).

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

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

Возможный сценарий

Учитель:        Нам нужно, чтобы Kodu сделал что-нибудь с этими яблоками. Попробуем просто переместить Kodu к яблоку и положить фрукт в его в сумку. Что мы заставим его делать вначале?

Учащийся:     Переместиться к яблоку?

Учитель:        Как? Он ходит?

Учащийся:     Да, он ходит.

Учитель:        Быстро или медленно?

Учащийся:     Быстро.

Учитель:        Как он узнает, когда это нужно сделать? Что побуждает его перемещаться?