Как ребенку создать игру
Создание интерактивной игры в PowerPoint (пошаговая инструкция)
Юлия Алехина
Создание интерактивной игры в PowerPoint (пошаговая инструкция)
Предварительная работа: Создать папку, скачать в нее необходимый фон (или можно использовать предложенную текстуру или заливку фона, необходимые для игры картинки.
1.Открываем программу PowerPoint, создаем пустой слайд («макет» «пустой слайд»)
2.Делаем фон слайда. Это можно сделать тремя способами:
— Использовать готовый фон, взятый из интернета (кликаем правой клавишей мыши, выбираем формат фона – рисунок или текстура – файл – выбираем папку, в которой есть данный готовый фон – выбираем фон, кликаем левой клавишей мыши – вставить – применить ко всем – закрываем окно крестиком) Фон готов!
— Использовать готовую текстуру (кликаем правой клавишей мыши, выбираем формат фона – рисунок или текстура – выбираем текстуру – применить ко всем – закрываем окно крестиком) Фон готов!
3.Создаем нужное количество слайдов (кликаем левой клавишей мыши под слайдом – Enter. Делаем так столько раз, сколько слайдов нам нужно)
Таким образом мы создали слайдовую базу, подходящую для любой игры.
4.Первый слайд оформляем как титульный: вставляем надпись – название игры, по желанию можно вставить надпись – создателя игры (автора, дополняем слайд соответствующими картинками (по вашему выбору).
Создаем управляющие кнопки.
«СТАРТ»: вставка – фигуры – выбираем любую – вставляем на слайд. Можно добавить в фигуре надпись СТАРТ, поменять размер и цвет. Теперь «оживим» эту кнопку. Сделаем ее действующей. Находим на панели задач вставка – действие – действие по щелчку мыши – перейти по гиперссылке – слайд…— выбираем номер слайда, где у нас начинается игра – далее можно добавить звук (по желанию) – ОК. Теперь при нажатии на эту кнопку мы всегда будем попадать на первый игровой слайд. Данную кнопку мы ставим только на втором слайде.
Для удобства переключения слайдов в нужный нам момент, по окончании выполнения задания, лучше добавить кнопку переключения на следующий слайд, т. е. создать кнопку «ДАЛЕЕ»
6. Создаем кнопку «ДАЛЕЕ»: вставка – фигуры – управляющие кнопки (выбираем любую, например стрелку) – выбираем перейти по гиперссылке – следующий слайд – ОК. Этой кнопке также можно придать звуковой эффект. Для этого перед тем, как нажать ОК, выбираем звук – затем ОК. Кнопку «ДАЛЕЕ» делаем нужного вам размера, цвета (правой клавишей мыши – формат фигуры – сплошная заливка – цвет – закрыть, копируем кнопку и вставляем на каждый слайд, кроме последнего. Теперь при нажатии на данную кнопку вы будете передвигаться на следующий слайд.
7. Создаем кнопку «МЕНЮ»: создается аналогично кнопке «ДАЛЕЕ» и располагается на каждом слайде, начиная со второго до последнего.
Переходим к созданию игрового слайда. Создадим слайд для игры «Четвертый лишний», где из группы картинок нужно выделить одну лишнюю.
1.Выкладываем на слайд нужные картинки из папки, которые мы скачали в предварительной работе (кликаем левой клавишей мыши на панели задач вставка – рисунок – выбираем нужную нам папку с картинками – открыть – выбираем картинку – вставить) Подгоняем картинку по размеру (увеличиваем или уменьшаем, при желании можно сделать рамки.
Есть второй вариант оформления слайда игры (более сложный, но более красивый): можно вставить картинки в готовые фигуры (например, вам хочется, чтобы картинки находились в кружках или овалах, или в закругленных прямоугольниках). Дизайн такого слайда смотрится лучше, чем простой набор картинок. Для этого на панели задач кликаем левой клавишей мыши вставка – фигуры – выбираем нужную фигуру – кликаем на слайд левой клавишей. Далее эту фигуру доводим до нужного размера, затем копируем ее и вставляем на слайде столько раз, сколько нам нужно картинок. В игре «Четвертый лишний» их должно быть четыре. Расставляем фигуры на слайде так, как нам нужно. Теперь нам нужно, чтобы в этих фигурах появились нужные нам картинки. Левой клавишей выделяем фигуру – кликаем правой клавишей – формат фигуры – рисунок или текстура – файл – выбираем нужную папку – открыть – выбираем картинку – вставить.
То же делаем с остальными фигурами.
2.Теперь необходимо «оживить» наши картинки, чтобы они реагировали на ответ игроков, то есть придать картинкам анимацию.
В данной игре нам нужно выделить одну картинку, которая является лишней. Можно сделать, чтобы при нажатии на нее она увеличивалась или исчезала. Для этого выделяем нужную фигуру левой клавишей мыши – на панели задач выбираем анимация – настройка анимации – справа высветится панель задач для настройки анимации – выбираем добавить эффект – выбираем нужный нам эффект (например, выделение) – изменение размера (или др.) Ниже у вас высветился прямоугольник с названием данного триггера (фигуры).
! Триггер в игре – это картинка, фигура или надпись, при нажатии на которую происходит какое-либо действие анимац ии.
Например, овал4 (если картинка вставлена в круг или овал). Далее нам нужно сделать так, чтобы картинка реагировала только тогда, когда мы нажимаем на нее, а не в других местах слайда. Для этого в прямоугольнике с названием триггера нажимаем на стрелочку справа – время – переключатели – начать выполнение эффекта при щелчке – находим и выбираем в прямоугольнике название нужной фигуры (овал4).
Далее можно добавить звуковой эффект: Эффект – звук (выбираем нужный звук) – ОК.
Другие три картинки на слайде можно оставить как есть, без анимации. Тогда при их выборе (нажатии на них, не будет происходить никаких действий. А можно и этим картинкам придать анимацию. Например, при нажатии на них, картинки будут покачиваться и (или) издавать соответствующий звук. Для этого мы действуем по тому же алгоритму, что и с «правильной» картинкой, только эффекты анимации выбираем другие. Например, выбираем эффект выделение – качание – звук – щелчок – ОК. Тогда при нажатии на данную картинку, она будет покачиваться и издавать щелчок.
Важно! На общей панели задач (ленте вверху) необходимо убрать галочку из квадратика, где написано «по щелчку», кликнув на него левой клавишей мыши. Это делается для того, чтобы слайд не переключился после первого щелчка мыши, так как ребенок может щелкать и выбирать ответ несколько раз, ища правильный. Если этого не выполнить, то при любом первом ответе (щелчке, даже неправильном, слайд переключится на следующий. А нам этого не нужно. Нам нужно дождаться правильного результа та!
Более сложный эффект в интерактивных играх, когда картинка при ее выборе должна переместиться с одного места на другое. Рассмотрим, как это можно сделать на примере игры «Засели домашних животных».
1.На готовый слайд (с фоном и управляющими кнопками) размещаем фигуру (например прямоугольник, доводим его до такого размера, чтобы он занимал примерно 2/3 слайда. Это будет фон картины. Вставляем в него картинку фермы (Левой клавишей выделяем фигуру – кликаем правой клавишей – формат фигуры – рисунок или текстура – файл – выбираем нужную папку – открыть – выбираем картинку – вставить.)
2.Рядом с этим прямоугольником – фоном вставляем картинки домашних и диких животных. Картинки должны быть на прозрачном фоне, чтобы при перенесении их на общий фон не терялась целостность картины.
Как сделать картинку на прозрачном фоне, если она скачана на цветном фоне?
Вставляем картинку из папки, выделяем ее левой клавишей мыши – на панели задач высвечивается работа с рисунками – формат – перекрасить – установить прозрачный фон – кликаем мышкой на фон картинки. Готово!
3.Анимируем картинки животных. Делаем так, чтобы картинки домашних животных «ушли» с фона слайда и «встали» на фоне в нашем прямоугольнике – картине «Ферма».
Для этого выбираем картинку домашнего животного, копируем, вставляем копию на фон «Ферма» туда, где мы будем ожидать ее появления в игре. Далее работаем с каждой из копий:
Важно! Далее нужно прямоугольник с названием данного триггера (рисунок 8) подчинить предыдущему триггеру, закрепив его правой клавишей мыши и перетянув под триггер (рисунок 4). Таким образом на панели задач «настройка анимации» будет запись: сверху в выделенном прямоугольнике надпись «Триггер: рисунок4», ниже – Рисунок 4, еще ниже – Рисунок 8.
Выполняем аналогичные действия с каждой картинкой домашнего животного.
Картинки диких животных можно оставить без эффекта анимации. Тогда при нажатии на них не будет происходить никаких действий. А можно анимировать. Например, сделать так, чтобы при выборе неправильной картинки она качалась или обесцвечивалась, или выделялась звуковым эффектом. Например, выбираем эффект выделение – качание – звук – щелчок – ОК. Тогда при нажатии на данную картинку, она будет покачиваться и издавать щелчок.
Проверить работу слайда можно нажав в правом нижнем углу монитора «показ слайдов»
Заключительный (последний) слайд любой игры можно сделать итоговым. То есть можно скачать и вставить анимационную картинку или надпись типа «СПАСИБО!», «МОЛОДЦЫ!», «БРАВО!», «ТАК ДЕРЖАТЬ!» и т. п.
Таким образом можно создать игровые слайды по любой теме и любому образовательному направлению. Надеюсь, что данная инструкция будет вам полезна.









Как создать игру без навыков программирования
Мечтаете создать свою игру, но мысли о том, что придётся учить языки программирования пугают вас? Вы гуманитарий? А может, у вас просто не хватает времени на изучение C# или Java? В любом случае, речь в этом посте пойдёт об игровых конструкторах. Для тех, кто не в курсе, это программы, в которых можно делать игры без написания кода. Конструкторы подходят для создания прототипов и участия в коротких Game Jams, которые сейчас популярны.
Первое знакомство
Однажды мне довелось побывать на мастер-классе по прототипированию у одного известного левел-дизайнера, работавшего в одной из крупнейших IT-компаний в России. На мастер-классе каждому участнику предложили создать свою игру за 1 час, а в конце часа показать игру остальным. То есть я первый раз запускаю программу и через час должен создать игру? Обладая некоторым опытом работы в программах, где необходимо писать код, я не поверил, что такое возможно. К моему удивлению, все (я в том числе) успели сделать свою первую маленькую игру. Пусть и простую, но в нее можно было играть. Так во мне зародилась любовь к конструктору под названием Clickteam Fusion 2.5 (раньше назывался Multimedia Fusion). Ещё популярными конструкторами являются Game Maker Studio и Construct 2. В основном, я работаю в Clickteam Fusion 2.5 (далее CF 2.5). На её примере раскрою принцип работы таких программ и их возможности.
Как это работает
Сразу отмечу, что конструкторы предназначены для работы в 2D. Уверен, в ближайшее время появятся и полноценные 3D-аналоги. Если вы настроены попробовать себя в 3D, то без знания программирования, вы сможете создать только карты для популярных игр, которые имеют редакторы-карт. Это уже другая тема, а сейчас я расскажу, как же работать в конструкторе.
При создании новой игры необходимо определить, для какой платформы хотите творить. Конструкторы дают возможность создавать игры для PC, IOS, Android, Html 5, Flash и т.д. Например, чтобы создать игру не только для PC, но и для IOS в программе CF 2.5, придётся докупить или скачать export module ios. Модуль конвертирует игру в код платформы – Xcode. Затем, через несколько нажатий, вы уже сможете тестировать игру на устройствах Apple (также нужен аккаунт разработчика Apple).
Ваша игра будет состоять из кадров (сцен). В каждом кадре можно создавать объекты, которые помогут вам решить любую задачу. Например, если это главное меню и вы хотите создать кнопку «Start», вам необходимо создать объект «active».
Окно «Редактор кадра».
Нажимаем правую кнопку мыши и выбираем «Insert object».
Выбираем объект «active».
Затем, нужно вставить в объект изображение кнопки или нарисовать во встроенном редакторе. В этом окне также можно создать покадровую анимацию. Один объект может иметь несколько анимаций (герой стоит, герой бежит, герой летит).
Окно «Графический редактор».
Осталось придумать событие, которое будет происходить с этим объектом.
Для этого, переходим с вкладки «редактор кадра» на вкладку «редактор событий».
Выбираем из списка необходимые события (условия), при которых, произойдут установленные вами действия над выбранным объектом, группой объектов, кадром.
Если игрок нажимает левой кнопкой мыши на объект «Start», то —
— происходит переход на следующий кадр.
Вот так просто, без программирования, можно создавать различные события, из которых будет состоять ваша игра.
Ещё несколько примеров:
— Если объект «шар» коснулся объекта «шип», то на экране появляется надпись «вы проиграли», а объект «шар» меняет анимацию на «шар лопнул».
— Если прошло более 5 секунд с начала запуска кадра, то в правом верхнем углу появляется объект «аптечка».
— Если объект «птичка» коснулся объекта «червяк», то «червяк» исчезает, в объект «счётчик очков» прибавляется единица и один раз проигрывается звук «жалобный крик червя».
Не изучая программирование, вы сможете создавать самые разные механики, используя фантазию и большое количество вспомогательных объектов. Перечислю некоторые из них:
Active object – самый популярный объект, его используют для создания объектов взаимодействия (главный герой, враги, платформы, ящики и т.д.). Он может содержать много разных анимаций (герой стоит, герой бежит, герой стреляет), иметь встроенные стандартные механики движения и управления.
Counter object – создает всевозможные счётчики жизней, денег, очков и т. д. Может быть представлен как в виде цифр, так и в виде шкалы.
INI object – сохраняет данные после выхода игрока из игры. Можно использовать для сохранения месторасположения любых объектов в кадре.
Physic engine object – появление этого объекта в кадре создаёт гравитацию, параметры которой можно регулировать.
Joystick control object– для touch-устройств создаёт эмулятор джойстика.
IOS store object – даёт возможность сделать внутриигровые покупки для AppStore.
Admob object – позволяет поместить баннерную рекламу в игру.
Touch object – учитывает все касания к экрану touch-устройства. Например, можно создать такое событие:
если игрок одновременно коснулся экрана тремя пальцами, то игра останавливается на паузу.
Если что-то не получается
У CF 2.5 есть отличная техподдержка, которая в течение 24 часов всегда отвечала мне. Ещё у них неплохой форум, на котором выложено много готовых кусков игр и рассказывается, как работать с новыми объектами. Не знаю, как дела с технической поддержкой у других конструкторов, но думаю, не хуже. Game Maker более популярен, чем CF 2.5 и, как мне кажется, тоже должен иметь хорошую поддержку. Один мой знакомый работает на Construct 2, он никогда не слышал, чтобы возникали трудности. А на youtube.com выложено много роликов, где разжёвывают создания популярных механик для большинства конструкторов.
Список популярных игр созданных на конструкторах
Программирование и разработка игр для детей
Интересоваться игровой разработкой начинают дети всё более юных возрастов. Информации в наше время можно найти предостаточно, пожалуй, её даже с избытком. Это руководство поможет юным читателям или их родителям познакомиться с миром разработки игр. И что же это, собственно, значит? Во-первых, я сосредоточусь на технологиях, подходящих новичкам. Во-вторых, я не буду строить догадок об уровне ваших технических познаний, допуская, что он может быть нулевым. Поэтому, если будет казаться, что я считаю вас недостаточно умными или говорю снисходительно – это не так! И наоборот, если что-то будет не до конца понятно, дайте мне знать, и я постараюсь всё прояснить.
Слишком юный возраст – это сколько?
Наверное, самый распространённый вопрос. Сколько лет должно быть мне (или моему ребёнку), чтобы знакомиться с игровой разработкой? Ответить на него невозможно, поскольку все дети разные. На самой нижней ступени (при использовании подходящих инструментов) по-настоящему заинтересованный 6-летний новичок уже может достичь определённых успехов. На другой стороне спектра в 12 лет для этих успехов уже должно быть достаточно образовательной базы и умственных способностей. Реальный возраст получается где-то посередине.
Для начала нужно усвоить несколько критически важных вещей.
Первое – мотивация. Именно отсутствие мотивации, а не умственных способностей чаще становится преградой на пути к успеху. Если ваш ребёнок обожает творить (любить играть и любить делать игры – совсем не одно и то же) и готов к пробам и ошибкам, он идеально подходит для игровой разработки!
Второе – управление ожиданиями. Здесь мы теряем большую часть потенциальных разработчиков, независимо от возраста. Разработка игр – не самое сложное в мире занятие, но оно достаточно комплексное. Ваш ребёнок не будет в скором времени работать над масштабными современными играми, вроде Call Of Duty или NHL, не будет делать MMO-проекты. Начинать нужно с чего-то очень скромного и постепенно двигаться дальше.
Если ребёнок убеждает себя, что собирается делать новый Minecraft, его ждёт очень болезненная неудача. С другой стороны, установка «когда-нибудь я сделаю новый Minecraft» может отлично сработать. Тут очень важно понимать разницу. Как и с любым другим навыком, этот следует развивать постепенно. Попытка взяться за слишком серьёзное дело приведёт лишь к провалу и разочарованию. Для справки, сам я начал программировать лет в 8 на Atari BASIC.
Что вообще такое игровая разработка?
Здесь мы слегка углубимся в технические аспекты. Игровая разработка – обобщающий термин, подразумевающий множество навыков, направленных на создание одного большого творения. Представьте, что вы занимаетесь производством автомобилей. Одного навыка для этого недостаточно, вам нужны инженеры, дизайнеры, сборщики, тестировщики и множество других специалистов, чтобы сделать одну машину. Однако весь перечень необходимых задач может выполняться одним человеком. Есть немало успешных игр, написанных, нарисованных и выпущенных одним человеком. Впрочем, важно понимать, что это редкие случаи. Я говорю о том, что весь процесс разработки не сводится к одной задаче, их несколько. И если ребёнку по душе что-то одно, другое может и не понравиться. Важно помнить это при выборе программ, проверяя наличие образцов графики и звука, чтобы не приходилось абсолютно всё делать самостоятельно.
В титрах современных игр указаны сотни фамилий и специальностей связанных с проектом людей. Впрочем, для начала вам достаточно всего двух задач: сделать игру и её содержимое.
Для примера возьмём «Монополию». Во-первых, делаем игру: определяем дизайн игрового поля, придумываем правила для кубиков, пишем игровые карточки и т.п. После этого создаём игровой контент: изображения на поле, рисунки на карточках, пластиковые домики и прочее.
С видеоиграми всё точно так же. Первая задача обычно называется программированием, вторая состоит из наполнения игры графикой, анимацией, звуком и музыкой. Для всего этого требуются совершенно разные навыки, но без них, как правило, не обойтись. Наша статья сосредоточится на программировании – когда дети интересуются разработкой игр, они думают именно об этом. Если ребёнок хочет рисовать графику для игр, то скорее всего уже и так делает наброски в блокноте! И это, кстати, правильный подход, ведь разница между «художником» и «игровым художником» минимальна.
Что такое программирование?
Итак, когда речь идёт об игровой разработке, скорее всего имеется в виду программирование. Что это такое? Проще всего сказать, что это искусство объяснять компьютеру, что он должен делать. В контексте разработки игр это значит делать вещи, вроде «если игрок нажимает кнопку «вверх», сделать то» или «если здоровье падает до нуля, сделать это».
Как вам программировать игры – это уже вопрос непростой, и с ним вам предстоит помучиться. Ещё важнее понимать, что здесь всё зависит от вашего ребёнка. Все мы думаем по-разному и по-разному выражаем свои идеи. Кто-то может выбрать стиль, совершенно непривлекательный для другого.
По большому счёту, существует три способа говорить компьютеру, что делать (зачастую дело сводится к их комбинации):
Визуальное программирование
Распространённый подход среди новичков, да и среди разработчиков вообще (к примеру, в популярном коммерческом движке Unreal Engine 4 есть интерфейс визуального программирования Blueprints). Вы формируете игровой экран, перетаскивая элементы, впоследствии связывая их подобием блок-схемы. Если ваш ребёнок мыслит визуальными образами, это лучший выбор.
Construct – один из инструментов визуальной разработки игр
Скриптовые языки
Здесь вы объясняете компьютеру задачу с помощью небольших текстовых файлов. Зачастую вы всё равно пользуетесь визуальным редактором, как на картинке выше, но даёте компьютеру понять, что нужно делать, не заполняя текстовые поля и не выстраивая схемы, а с помощью кода.
Пример скриптового языка LUA в библиотеке LÖVE
Этот кусочек текста указывает компьютеру загрузить изображение «whale.png» и вывести его на экран.
Традиционные языки программирования
Наконец, многие игры пишутся на традиционных языках: C++, Java, C# и других. Сразу скажу прямо, что не советую юным игроделам начинать с традиционных, или, если точнее, компилируемых языков по ряду причин.
Главный вопрос, который может у вас возникнуть: чем отличаются скриптовые и компилируемые языки? В основном различия касаются технических подробностей, выходящих за пределы данной статьи, но в целом всё сводится к комплексности. Работа с компилируемым языком затрагивает множество вещей, о которых не нужно думать в скриптовых языках: компиляция (превращение написанного вами текста во что-то, понятное компьютеру), линковка (тут в двух словах и не объяснить) и многое другое.
Более важным различием выступает назначение. Скриптовые языки в основном направлены на решение конкретных задач для упрощения жизни разработчика. Если вкратце, скриптовые языки гораздо проще в изучении и использовании.
В конечном итоге вы часто будете встречать средства разработки, совмещающие визуальное программирование и скриптовые языки.
IDE, библиотека, что.
Ладно, это последний вводный момент. В тексте будет много не самых понятных терминов и выражений, так что я вкратце их поясню.
Язык. Имеется в виду язык программирования. Мы общаемся между собой на разных языках, и с компьютером тоже можно говорить на разных. На примере выше показан язык Lua.
IDE. Интегрированная среда разработки (Integrated Development Environment) – приложение, отвечающее сразу за множество задач. Не все описанные программы включают IDE, то есть для разных работ вам может понадобиться разный софт. Обычно среда разработки содержит текстовый редактор, язык программирования и ряд других инструментов.
Библиотека. Представьте, что это некто, делающий за вас кучу работы. Как правило, даже «простые вещи», вроде вывода на экран, не являются частью языка. Эти вещи создают другие люди, делая их доступными в виде библиотек. В некоторых случаях (в GameMaker или Construct) всё это уже собрано для вас воедино. В Lua, к примеру, вам требуется самому выбирать библиотеку. У каждого подхода есть свои плюсы и минусы. Gamemaker многое упрощает для начинающих, зато Lua позволяет сменить библиотеку на более удобную.
Спрайт. Это используемая в игре графика, например, персонаж игрока. Спрайт может быть картинкой или содержать множество анимаций. Точное значение спрайта в каждом движке своё, но в игре это всегда видимый движущийся объект. В Super Mario Brothers это Марио, черепахи, огненные шары и т.д. Сам мир при этом – небо, трубы и прочее – не обязательно состоит из спрайтов.
HTML 5. Здесь не всё может быть понятно сразу. HTML 5 – это последняя версия HTML, языка разметки веб-страниц. При загрузке сайта в браузере компьютера или телефона вы видите HTML-документ. Но HTML5 – это ещё и обобщённый термин для множества технологий, на которых держится работа веб-сайтов. Сюда входит сам HTML, CSS (ещё один язык, определяющий внешний вид страниц) и JavaScript, скриптовый язык, отвечающий за логику. Люди часто пользуются HTML, HTML5 и JavaScript как взаимозаменяемыми понятиями, хотя технически это не совсем верно. HTML5 может использоваться для создания игр, и с ним не обязательно работать в самом браузере.
Отладчик. Когда игра не работает, как надо, бывает непросто выяснить, почему. В некоторых пакетах для этого существует так называемый отладчик, средство для выявления проблем или «багов». Для новичков это довольно продвинутый инструмент, но когда в нём возникает необходимость, отладчик нельзя переоценить.
Средства игровой разработки, подходящие для детей
Итак, переходим к непосредственной сути статьи – инструментам, способным познакомить вашего ребёнка с миром игровой разработки. Это ни в коем случае не всеобъемлющий список! В каждом пункте я расскажу, что входит в комплект программы, на примере покажу, как она работает, опишу плюсы и минусы, укажу цену, если она есть и приведу ссылки на учебную литературу. Осталось отметить один момент… каждый из вариантов может быть полезен, здесь нет «лучшего» выбора. Выбирайте на основе предпочтений вашего ребёнка. Если первый выбор не сработал, пробуйте что-то другое.
Список построен без определённого порядка.
Scratch
Это проект, финансируемый Массачусетским технологическим институтом и направленный на обучение программированию детей от 8 до 16 лет. Программа появилась на свет в 2006, и с тех пор собрала вокруг себя крупное сообщество. Особый упор делает на привлекательность для всей семьи. Для работы Scratch нужен только браузер, вы просто заходите на сайт и начинаете программировать. Scratch включен в вводный курс по компьютерным технологиям Гарварда и Йельского университета CS50. Для сохранения результатов требуется регистрация, но она простая, и даже не требует подтверждения по электронной почте.
Scratch относится к категории средств визуального программирования. Ребёнок переносит актёров на сцену и управляет ими с помощью Lego-образных блоков программирования. Блоки выступают неплохим аналогом структуры настоящих языков программирования, так что впоследствии в них будет проще разобраться. Документации доступно много, а примеров программ буквально тысячи.
Пожалуй, наиболее привлекательной особенностью Scratch является наличие всего необходимого контента для начала работы. При этом есть и возможность загружать собственные или скачанные звуки и графику, что упрощает переход от программирования к созданию ассетов или наоборот.
Scratch, запущенный в Chrome
Загрузка нового спрайта
Программирование в Scratch
Выше показан скрипт, привязанный к синей собаке. Он состоит из двух частей, первая срабатывает по нажатию зелёного флага. Собака появляется на экране в определённом месте, затем шаг за шагом двигается влево. Второй скрипт ожидает столкновения с другой собакой, после чего возвращает пса в начальную позицию, меняет сцену и скрывает объект. У каждого спрайта отдельный скрипт. Блоки выбираются в палитре программирования.
Для программирования в Scratch используются блоки. На изображении показана категория Внешность. Как видите, выбор категорий достаточно широк.
Scratch – это решение «всё-в-одном», для работы вам больше ничего не понадобится. В комплекте присутствует множество сцен, фонов и звуков.
Scratch абсолютно бесплатен и существует за счёт спонсорской поддержки.
Книги (да, есть на русском):
У Scratch есть и приложение для iPad под названием ScratchJr для детей 5-8 лет. Тоже совершенно бесплатное. Ничего не нужно покупать или скачивать, для знакомства с программой не нужно даже регистрироваться, так что Scratch можно назвать наиболее доступным вариантом из списка.
Construct2
Construct2 – ещё один движок, основанный на визуальном программировании. Игры создаются в интерфейсе с перетягиванием элементов, а логика контролируется системой событий наподобие блок-схем. Если функциональности недостаточно, можно создавать собственные плагины при помощи JavaScript, хотя это уже довольно сложно и вовсе не обязательно – Construct2 задуман так, чтобы всё управлялось событиями. Конечный результат работы представляет собой HTML5, его можно экспортировать на разные платформы, включая мобильные устройства (Android, iOS, Windows Mobile), браузеры и настольные системы.
Construct2 куда более комплексный инструмент в сравнении со Scratch, что говорит о двух важных вещах. Во-первых, крутая кривая обучения делает его неподходящим для маленьких детей, и он не делает упора на обучающий подход. С другой стороны, это относительно простой инструмент уже не для изучения азов, а для создания игр. Это значит, что ваш ребёнок не скоро столкнётся с какими-либо ограничениями. В Construct2 создано немало коммерческих игр.
По Construct2 есть много доступной документации, в том числе подробная справочная информация и руководство в формате PDF. Сообщество очень активное, за поддержкой всегда можно обратиться на форум.
Construct устанавливается на компьютер под управлением Windows. Mac на данный момент не поддерживается.
Главное окно программы
Так выглядит программирование в Construct2. Здесь изображён код, описывающий реакцию игрового персонажа на входные данные; взято из заготовленного примера простого шутера.
Позволяют быстро добавить объекту предопределённое поведение.
Встроенный графический редактор
Construct2 – это решение «всё-в-одном», для работы вам больше ничего не понадобится. С самого начала он не изобилует игровыми ресурсами, зато есть доступный для бесплатного скачивания увесистый пакет ассетов (осторожно, ссылка прямая, архив весит 38 Мб). Для платных версий предусмотрены дополнительные ассеты.
Если захотите делать свои плагины, вам понадобится JavaScript SDK (доступен бесплатно) и инструмент для редактирования текста, поскольку в Construct его нет.
Construct2 доступен в разных версиях:
Game Maker
GameMaker – гибридная система «всё-в-одном», объединяющая визуальное программирование с собственным скриптовым языком GML. Изначально игры работают только на Windows, но в платной версии их можно создавать и для браузеров, iOS, Android, Windows Phone и других платформ.
Программирование в GameMaker может строиться на блок-схемах на манер Construct2. Есть возможность писать код на скриптовом языке GML. Это сразу и плюс и минус. С одной стороны, это гибкая система, с другой стороны, разбираться в ней сложнее. Поскольку это собственный язык GameMaker, многие полученные навыки окажутся не столь полезны при переходе к другому средству разработки. Конечно, основные концепции программирования от языка к языку не меняются, так что это не особо серьёзная проблема.
Помимо необходимых ассетов в GameMaker есть буквально всё, что только может понадобиться, правда, качество инструментов варьируется. В дополнение к программированию вы можете самостоятельно создавать графику, звук и уровни – всё это в одном приложении. Среди игр, созданных в GameMaker есть очень успешные проекты – например, оригинальная версия Spelunky и Hotline Miami (не для детей).
Это одна из самых сложных программ в списке, и браться за неё лучше не раньше подросткового возраста. Зато для детей постарше она предлагает хорошую гибкость и возможность делиться играми и в конечном итоге продавать их. Всё зависит от конкретного ребёнка, так что тут сложно что-то советовать, просто имейте в виду, что по сравнению с тем же Scratch здесь всё в разы сложнее.
Скриптинг (скрипт полёта пули)
GameMaker включает всё, что вам нужно, будь то редактирование кода, создание и редактирование изображений, дизайн карт или что угодно ещё. Есть в комплекте и встроенный отладчик. Правда, в стандартной версии не так уж много примеров работ. На самом деле, их вообще нет. Впрочем, благодаря активному сообществу, в сети без труда можно найти кучу примеров и уроков. Качество материалов может быть самым разным, и сами Yoyo Games ими не занимаются, так что хорошие уроки придётся ещё поискать.
С лицензиями GameMaker не всё так просто, поскольку ценовая структура поменялась, но не все материалы успели обновиться.
Для начинающего разработчика хватит и простой зарегистрированной версии. Если поглядываете на Professional, она нередко бывает на распродажах в Steam.
Обратите внимание, что пользоваться всеми встроенными средствами не обязательно. Вы вполне можете рисовать спрайты в другой программе или импортировать графику из других источников.
Lua и LÖVE
Lua – скриптовый движок, а LÖVE – библиотека для создания игр. Изначально Lua был языком программирования для «не-программистов» и быстро стал популярен в качестве скриптового языка для коммерческих игр, таких, как эти. У данного варианта есть одно большое преимущество перед, скажем, GML. Lua используется повсюду и многим знаком, так что знать его будет полезно. В плане изучения язык довольно прост.
LÖVE – это библиотека для создания игр с помощью Lua. Она предоставляет практически весь функционал, необходимый для создания 2D-игр – вывод графики, проигрывание звука, управление входными данными, загрузку файлов и т.д.
LÖVE и Lua недостаточно самих по себе, вам понадобится ещё текстовый редактор для написания и правки скриптов, софт для создания графики и записи звука, редактор карт для дизайна уровней и подобные вещи. К счастью, всё это есть в бесплатном доступе, и ниже я приведу примеры. Только скачивать всё придётся по отдельности. Вместе с LÖVE не идёт никаких ассетов, но с этим вам помогут ресурсы вроде Open Game Art и FreeSound. Опять же, всё надо скачивать самостоятельно.
Главный минус LÖVE – отсутствие поддержки мобильных платформ. В данный момент библиотека позволяет делать игры только для компьютеров, хотя в будущем обещают и мобильные устройства.
Пример кода Lua/LÖVE
Библиотека LÖVE содержит Lua, поэтому сначала идём только сюда, а потом сюда за документацией для новичков. Однако, вам ещё нужен текстовый редактор и программы для графики и звука.
Для простого набора текста есть два популярных варианта: Notepad++ и Sublime Text.
Впрочем, для разработки на Lua я бы советовал пользоваться ZeroBrane Studio – это скорее IDE с поддержкой автодополнения кода, отладки и подобных вещей. Ах, да – ещё она бесплатная.
Популярные бесплатные программы для создания графики – Paint.NET, GIMP и Inkscape, хотя у двух последних приличная кривая обучения. Также есть куда более дружелюбный редактор Krita (спасибо lg.balukation за наводку).
Для создания уровней и карт отлично подходит бесплатный редактор Tiled.
Об альтернативах – Lua в качестве скриптового языка используется во многих популярных средствах разработки, например, в Corona, Gideros и Marmalade Quick. Все они сложнее LÖVE, поэтому её я и рекомендую. Однако, они отлично демонстрируют, насколько полезным может быть знание Lua.
Lua и LÖVE бесплатны, за ZeroBrane вы платите, сколько пожелаете.
Только одна из книг описывает программирование именно на LÖVE.
Поиск материалов по библиотеке затрудняет распространённость слова love, так что добавляйте в запросы lua.
Python и PyGame
Это ещё одна комбинация языка и библиотеки. PyGame во многом похожа на LÖVE и дружелюбна к новичкам. В ней используется Python, популярный скриптовый язык, хотя он более известен в мире 3D-графики, чем в разработке игр. Часто используется IT-профессионалами для автоматизации задач, поэтому знание Python пригодится даже за пределами игровой разработки. На этом языке написано несколько известных игр.
PyGame обладает ожидаемой функциональностью, справляясь со звуком, графикой и вводом. Вам нужно позаботиться о редакторе текста и создании ассетов. Впрочем, в отличие от LÖVE, кое-какие ассеты и образцы уже идут в комплекте с PyGame.
Код Python в PyCharm
Пользуйтесь советами для LÖVE, большинство указанных инструментов помогут и тут.
Конечно, не считая ZeroBrane – в качестве аналога советую ознакомиться с PyCharm (есть бесплатная версия). Это не самый простой редактор, но вы всегда можете работать в обычном Notepad++ или Sublime Text.
Python и PyGame бесплатны. У PyCharm есть бесплатная версия.
Пишем платформер на Python, используя pygame в трех частях на Хабре.
Python сложнее Lua, поэтому рекомендуется детям постарше. С другой стороны, работа в нём похожа на традиционные языки программирования, и получать такой опыт будет очень полезно.
К сожалению, у Python есть две версии – недостаток, уже долгие годы портящий язык. Вам нужно выбирать версию 2.x.
HTML5 и… много чего
HTML5 – не самый простой для понимания термин. HTML, по сути – язык браузеров, а Javascript – язык, позволяющий ему делать своё дело. С каждым поколением браузеров возможности создания игр для них становились всё более впечатляющими.
Javascript – интересный вариант для обучения, поскольку ваш ребёнок уже может быть знаком с веб-браузерами. Он может открыть текстовый файл, набрать какой-нибудь код, сохранить его в виде веб-страницы и играть. Очень удобный цикл обратной связи. Но тут есть и свои недостатки. Javascript – достаточно понятный язык, но всё же его сложно рекомендовать абсолютным новичкам. К тому же, особенности каждого браузера будут лишний раз всё усложнять. И, в отличие от Lua или Python, для работы с HTML существует огромное множество средств – рекомендации по ним составили бы отдельную статью подлиннее этой!
Если ребёнок заинтересован именно в разработке HTML5-игр, надо подбирать правильную библиотеку. Неплохими вариантами, предоставляющими достойную функциональность и преодолевающими заскоки некоторых браузеров, выступают Phaser и CreateJS (хотя и других буквально сотни). Обе библиотеки понятные, распространённые и снабжены доступной документацией.
По аналогии с Python и Lua, HTML5 не является интегрированным решением, однако практически в каждом современном браузере предусмотрены средства, облегчающие разработку.
Stencyl
Stencyl – это набор средств визуального программирования, именующий себя «самым простым и быстрым способом создания игр», что вполне может быть правдой! По функциональности он схож с Construct2, программируете вы, конструируя сцену и снабжая её поведениями. Это решение «всё-в-одном» со встроенным графическим редактором, хотя возможность импорта изображений тоже присутствует. Писать скрипты в Stencyl нельзя, но можно создавать расширения с помощью языка Haxe, если вам не хватает функционала программы. Впрочем, это уже может выходить за пределы текущих способностей ребёнка – в этом случае пригодятся расширения, доступные в магазине.
Stencyl работает на Windows, Linux и Mac и по умолчанию создаёт только Flash-приложения. Другие платформы, в том числе iOS и Android, доступны за отдельную плату. Программа не может похвастаться массой ассетов в комплекте, но обеспечивает быстрый доступ к ним, плюс онлайн-справка весьма хороша.
Это решение «всё-в-одном». Если вы не углубляетесь в программирование расширений на Haxe, всё, что вам нужно, уже либо есть в комплекте, либо доступно по ссылкам прямо из приложения.
Lego Mindstorm
Позвольте сразу же уточнить, что это очень, очень дорогая штука. Но если ваш ребёнок интересуется робототехникой или просто ярый фанат Lego, это подходящий способ познакомить его с программированием. Mindstorm Lego – это конструктор для создания роботов. В комплекте идут программируемые блоки, задающие поведение робота. Mindstorm предлагает постепенный прогресс в обучении: сначала робот собирается из кусочков конструктора, затем можно учиться управлять им при помощи приложения (для iPad или настольных систем), а потом уже начинать программировать логику.
Lego Mindstorm позволяет как самостоятельно управлять своими творениями, так и программировать их в приложении EV3 с помощью блок-схем. Есть и инструменты, позволяющие заниматься сколь угодно низкоуровневым программированием.
Данный пункт выбивается из общей темы, но я решил упомянуть Mindstorm, как средство обучения программирования, удобное для детей, предпочитающих творить что-то своими руками. Наблюдение причинно-следственных связей на примере материальных объектов может быть очень полезным.
Готовый огнедышащий дракон Mindstorm, месяц на сборку
Дорого! Очень дорого!
В электронном виде (ссылки на pdf-файлы) доступны руководство и учебный материал.
Это уже не совсем «программирование игр», но определённо удобный способ знакомства со множеством навыков, которые для него нужны. И да, если бы мои родители подарили мне такое в детстве, я бы номинировал их на премию «Родитель года». Вот дочка подрастёт, куплю ей такой… хотя, может, это будет подарок для меня самого?
Особые упоминания
Каждый список должен на чём-то заканчиваться, и этот не исключение. Ниже представлено всё, что по каким-то причинам не попало в основные пункты. Если ничего из предложенного выше вам не приглянулось, обязательно взгляните на эти варианты.
Моды для Minecraft
Если ваши дети играют в компьютерные игры, они уже могут быть знакомы с Minecraft. Моддинг – это модифицирование оригинальной игры, и в этом плане Minecraft особенно популярен. Моды могут быть удобным средством изучения программирования – или, по крайней мере, мотивировать к нему. Модами для Minecraft занимается очень много людей. Минус в том, что пишутся они на Java, а этот язык не подходит для детей младшего возраста. Впрочем, при должном интересе к игре, попробовать стоит. Узнать больше можно тут.
GameSalad
Это инструмент визуального программирования, наподобие Stencyl и Construct2. Использовался для создания коммерческих игр, доступна бесплатная версия, платные открывают доступ к другим платформам. Лично я GameSalad не пользовался.
Codea
Kodu или Project Spark
Это игра про создание игр. По факту, это игра, которую можно модифицировать, превращая во что угодно. Kodu – язык визуального программирования от Microsoft. Project Spark – модифицированная версия Kodu, вышедшая для XBox One. Это далековато от обычного программирования, но многие идеи (как и конечный результат!) те же самые.
Code Combat
Интересная концепция – браузерная игра, где персонаж управляется программированием. По мере продвижения по игре вас учат более сложным вещам. По сути, вы учитесь программировать, играя в игру. Изначально создавалась для обучения Javascript, но потом были добавлены и другие языки. Я убеждён, что она полностью бесплатна, так что вам ничего не стоит попробовать.
Alice
Alice – это средство для обучения программированию с интегрированной средой разработки. Вот собственные слова авторов:
Alice – инновационная трёхмерная среда, в которой можно без труда работать с анимацией, рассказывая истории, создавая игры или видео. Это свободно распространяемое обучающее ПО, предназначенное для знакомства учеников с объектно-ориентированным программированием. Оно учит фундаментальным концепциям программирования на примере создания анимированных роликов и простых видеоигр. В Alice виртуальный мир наполнен трёхмерными объектами (люди, животные, машины), и ученики пишут программы, с помощью которых они анимируются.
Alice поддерживается Университетом Карнеги – Меллон и абсолютно бесплатна.
RPGMAKER
Заключение
Конечно, я не углублялся в подробности, но зато прошёлся по большей части доступных вариантов. Если вы думаете, что стоит что-то добавить в список, дайте мне знать! Я постарался сделать статью понятной людям с любым уровнем знаний, но, разумеется, мог с этим не справиться. Если что-то непонятно, напишите. Главное, что не стоит забывать – все дети разные, и один и тот же подход работает не для всех. Выбирайте, что на ваш взгляд лучше подойдёт вашему ребёнку, и если что-то будет не получаться, знайте, что всегда есть уйма других вариантов!






















