Почему мы выбрали Unity для обучения детей программированию: опыт Школы CODDY

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

Мы, в CODDY, обучаем детей создавать компьютерные игры. Когда мы только проектировали курс, то рассматривали вариант обучения с использованием готовых элементов для игр. Но в итоге от этого отказались, потому что учим детей программировать по-взрослому. Мы выбрали движок для игры и язык программирования под него. Рассказываю, что за движок, почему он и как изучать самостоятельно.

Что такое Unity

Unity — это движок, программа, среда разработки, которая помогает создавать игры. Его создали в 2005 г. в компании Unity Technologies в Сан-Франциско. Первоначально движок работал только под Mac, но сейчас Unity поддерживает больше 25 платформ: Windows, Linux, Android, iOS и др. Поэтому не нужно писать игру под каждый девайс, потому что она будет работать на всем, включая Xbox и Playstation. Сразу скажу, что под каждую платформу необходимо проектировать отдельный интерфейс игрока, но это намного проще написания отдельных приложений.

У Unity визуальный интерфейс. Это значит, что вы видите все, что делаете. С ним не будет нескончаемой простыни кода, которую показывают в фильмах про программистов. Unity — другой: в нем есть поле и набор инструментов. Все, что мы делаем, сразу отображается на экране.

Код для Unity пишут на языках C # или JavaScript. Оба не так сложны в изучении по сравнению с мастодонтом C или подобными. Мы для обучения выбрали прикладной язык программирования C #, разработанный в 2000 г. в Microsoft. Ребята разбирают функции, переменные и циклы, пишут скрипты и определяют объекты.

Как создают игры на Unity

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

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

Что делают на Unity

Unity очень популярна: игры на ней скачали более 24 млрд раз. Люди играют в игры на Unity на 3 млрд устройств по всему миру. Больше 50% всех мобильных игр в мире сделано на нем. Из популярных игр вспоминаются Pokemon Go, Fallout Shelter, Temple Run и Dead Trigger. Сценарии, сюжеты, графика могут быть абсолютно разными, а движок один.

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

Почему выбрали его

В начале мы выбирали между CryEngine, Unreal Engine и Unity. На выбор повлияли два фактора: деньги и мощности. Первые два движка в то время были платные. Конечно, многие используют в работе взломанные версии. Но как мы будем прививать у ребят любовь к IT, используя хакнутые программы? И у нас были ограничения по мощности. Все-таки Unity предъявляют более простые требования к техническим ресурсам. Позже, когда мы переоборудовали часть классов, мы ввели курсы по платным движкам тоже.

Сегодня у нас курсы по программированию игр на Unity, CryEngine и Unreal Engine. Но каждый раз, когда начинает заниматься новая группа, я понимаю, что Unity до сих пор остается лучшим выбором. На первом занятии по CryEngine и Unreal Engine реакция у ребят одна: «Ооо! Это че такое?» И так реагируют дети, которые не первый месяц у нас занимаются. Что уж говорить о тех ребятах, которые только приходят в гейм-разработку.

Во сколько лет начинать

Курс по Unity предназначен для детей от 10 до 15 лет. Чаще всего, приходят те, кому от 10 до 12. Лучше начинать пораньше, потому что когда подростку 15, ему уже не комфортно заниматься с десятилетними. Они уже шутеры пишут, а он только среду учиться настраивать. Стараемся открывать группы для новичков постарше, чтобы там занимались ребята одного возраста, но желающих, как правило, намного меньше.

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

Как изучают Unity

Курс по Unity рассчитан на три модуля по два месяца. За это время ребята разбираются в коде, начиная с самых основ. Мы не упрощаем программу до примитивного уровня. Даем те же знания, как и на взрослых курсах, просто учитываем восприятие детей и скорость освоения нового. Стремимся к тому, чтобы дети поняли в целом, как создаются герои, карты, деревья; как все это работает. Дальше они уже смогут программировать, как хотят: с ассетами или без.

Такой поход труден. Знаю, что другие школы и курсы учат детей работать с использованием готовых фреймворков, о чем обычно пишут на своих сайтах. Но для меня это больше фановая история. Ребенок за короткий срок делает внешне потрясающую игру, и реакция родителей сразу: «Вау!», но по знаниям дети не сильно продвигаются вперед. Считаю, что подобное обучение больше нацелено на то, чтобы произвести впечатление на родителей.

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

Что получается в итоге

За редким исключением, справляются все. У детей для занятий очень высокая мотивация — они создают собственный мир своими руками. Они моделируют свои трехмерные игры, танчики, бродилки, стрелялки — все, что хотят. Например, один из ребят создал игрушку — аналог Worlds of Tanks. В ней предусмотрены типы снарядов, скорость и траектории их движения, отдельное оружие для разных типов.

Другой коддик сделал макет Солнечной Вселенной. У него вращаются планеты, свет падает на каждую под определенным углом, рассчитано движение — все как в реальности. Это не просто игра, а образовательный проект, в котором есть вопросы для повторения изученного. Реально круто получается, а это делают школьники!

Пример игры, которые делают ребята в CODDY
Пример игры, которые делают ребята в CODDY

Иногда родители обучают ребенка программированию на Unity, только если видят его в будущем гейм-девелопером. Но в целом не важно, с какого языка или движка начинать. Важнее — надломить мышление. Когда оно надламывается, изучение других языков получается на раз-два. И нужна практика, потому что любой язык — просто инструмент, который нужно учиться применять.

Как осваивать Unity самостоятельно

Повторюсь, что движок бесплатный — просто установите его на компьютер. Если в семье нет программистов, и ребенок не изучал C # или другой язык программирования, советую использовать ассеты. Программировать все равно придется, но в очень малом объеме. Зато ассеты позволят вам не потеряться в пути при изучении языка и быстро увидеть первые результаты.

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

Решите, какую игру будете создавать. Unity — трехмерный движок, поэтому он подходит для моделирования пространств и разработки персонажей. Если надумаете написать игру-головоломку наподобие змейки, то необязательно использовать Unity. Для 2D игр есть решения и попроще.

Подытожу

Unity — нагляден, бесплатен и подходит для крутых игр. Детям легко его осваивать, особенно используя готовые ассеты. Не нужно упрощать обучение детей — их мозг часто работает эффективнее, чем у многих взрослых. Пишите на C # или JavaScript для Unity. Это будет дольше, зато сразу по-взрослому.

77
Начать дискуссию