Учебный процесс в IT

индекс
214,21

Как учить детей программированию: Kodu Game Lab теперь доступен для PC

Я уже писал про обучение детей программированию на основе Лого. Однако возможен и другой, ещё более “симпатичный” подход – это визуальное программирование, в котором вообще не надо писать текст. Причём визуальное – это не обязательно рисование блок-схем! Например, можно исходить из понятия объекта, который находится в разных состояниях и реагирует на внешние события.

В Майкрософт также задумываются над проблемами обучения детей, в частности, уже писалось про проект Kodu Game Lab. Kodu – это интерактивная среда создания трехмерных игр, доступная одновременно на Xbox 360 и на ПК. Я решил написать о ней подробнее, поскольку начиная с сегодняшнего для любой желающий может скачать и попробовать версию для ПК.

image image


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

Внутри мира живут объекты – это могут быть яйцеголовые “коду”, яблоки, деревья, пушки, снаряды и т.д. Объекты уже наделены некоторым поведением – например, пушка, добавленная в игровой мир, может вдруг сама по себе опрокидываться на спину и “улыбаться”. Другие действия можете добавлять вы – например, при нажатии на пробел можно попросить пушку “выстрелить” снарядом, а при нажатии на стрелки – повернуться. Снаряд, по умолчанию, столкнувшись с каким-то объектом взорвётся, уменьшив “здоровье” этого объекта. Когда здоровье уменьшится до нуля – объект сам умрёт.

image image

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

imageimage

Приведённые скриншоты демонстрируют весь процесс создания игры-стрелялки на Коду: создаём пустой мир, добавляем объекты (дерево, затем пушку), модифицируем свойства пушки, добавляя реакцию на клавиши – вот, собственно, и вся игра! А более подробно процесс показан на видео (рекомендую смотреть на YouTube в HD):



Как вы думаете – насколько такой подход к созданию игр близок к программированию? Можно ли это рассматривать как обучение программированию, или скорее как способ перетащить детей от пассивной роли игрока к более творческому процессу создания игры? Именно это, как мне кажется, самое главное, что позволяет сделать Kodu – показать, что компьютер может использоваться для создания чего-то нового, для воплощения в жизнь своих идей. Конкретные технологии, языки программирования и библиотеки всё время будут меняться, но этот принцип – свобода творчества, возможность создания виртуального творения своими руками – будет оставаться всегда.
+70
15 января 2010, 10:44
83

комментарии (79)

+6
dohlik #
Спасибо, попробую младшего брата сестры таким вот образом отвлечь от игрушек. Надеюсь, получится :) Главное, чтобы интерес не пропал через час-другой.

Сам в свое время растратил на разные игры столько, что до сих пор жалко — можно было много полезного узнать…
+1
shwars #
Поделитесь потом впечатлениями!
+1
dohlik #
Обязательно. Единственное, что пока смущает — не нашел информации про локализацию. Брат ленивый, может бросить из-за непонятного интерфейса… Придется первое время рядом сидеть и подсказывать. С другой стороны, можно и к изучению английского подтолкнуть таким вот игровым способом
+2
man_without_face #
Я показывал младшему брату. Он сказал, что круче Lego Star Wars ничего нет. :)
+5
shwars #
Круче Lego Star Wars есть Lego Mindstorm NXT :)
+1
man_without_face #
Я говорю о комп.игре, а не о роботе за ~350$.
0
3ton #
а вы покажите ему TheGameCreators немцы это сделали наверно раньше всех. Если не ошибаюсь, то первый раз об этом продукте услышал еще в 2001. thegamecreators.com/
+1
CB9TOIIIA #
Уважаемый, очень подробно расписали моменты благодарю! :)
Но, интересует такой момент:
К примеру:
Создали свой мир, спрограммировали элементы, и т.д. Вопрос: Есть ли реализация, как это показать, к примеру-друзьям, или учителю по программированию в школе, т.е. интересует можно ли скомпоновать свой мир к примеру в *.exe или др. иной формат, чтобы потом продемонстировать вне дома?
+3
NikitaG #
>попробую младшего брата сестры
Не понял степени родства…
0
DpyuD #
Вероятно сестра сводная
0
sultee #
скорей двоюродная
0
LightAlloy #
тогда и брат двоюродный
+2
Logonoff #
Требуем с автора UML схему родства))
+7
rekub #
А почему вы считаете, что время потраченное на игры, потрачено зря?
0
Danov #
Если считаете, что время потрачено не зря, приведите аргументы в пользу такого утверждения. Очень любопытно.
+2
wdk #
Шутеры улучшают цветовосприятие и реацкию, квесты — нестандартное мышление, стратегии/головоломки — очевидно что.
ММОРПГ развивают геморрой.
0
stix #
ММОРПГ зачастую помогают развить социальные навыки (быстрая адаптация в незнакомом коллективе, слаженная работа в группе, и таки да «субординация») у людей, особенно это относится к тем кто ведет достаточно замкнутый образ жизни. И еще это развлечение, ну вот кто-то лобзиком выпиливает, а кто-то в ВоВку режется или там в танчики, каждому свое. А фанатизм+мморпг — это, да, геморой, но это уже проблема фанатизма а не игры)
0
BegiBober #
я например играя в УО получил первые навыки автоматизации, которые позже развил до того уровня, что б использовать их в работе
+1
TR4V15 #
Как я вас понимаю, именно это игра и открыла мне любовь к программированю, так как програмить начал именно сервера для неё (:
0
kurokikaze #
Старый добрый SphereServer :)
0
TR4V15 #
После чаго дорос до RunUO написанный на C# :)
0
kurokikaze #
Эх, а я к нему так и не привык :) Был со Сферой до конца )
0
mrBadim #
вот мои аргументы.
один из необходимых навыков в моей профессии — играть и разбираться в играх =)
+2
rekub #
А ничего что оффтопик? А ничего что вы отвечаете вопросом на вопрос? А ничего что про это уже очень много раз говорилось, и наверно я не лучшим образом сформулирую? Ну ладно.

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

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

В-третьих, самое главное, а с чего вы взяли, что потратили бы это время на что-то более полезное? Часто играют, потому что устали (в широком смысле, творческий кризис, например). Думается, что время, потраченое на игры, иначе было бы потрачено на валяние на диване, просмотр телепередач и распитие спиртных напитков… Или, возможно, на занятие какой-нибудь неинтересной работой, не приносящей не удовлетворения, не особого дохода, а оно вам надо?
+1
shwars #
Пока проект очень новый и исследовательский, поэтому про локализацию говорить рано… Но многое интуитивно понятно. И насчёт английского — тоже верно!
НЛО прилетело и опубликовало эту надпись здесь
+1
lesa80 #
в 7 лет дети разным увлекаются…
авиамоделлинг и т.п. занятия примерно того же уровня думаю…
Главное первое время посидеть с ребенком, потому что ему сложно пользоваться гуглом =)
0
shwars #
Я первую попытку (5.5 лет) делал на Лого www.gotdotnet.ru/blogs/sos/6884/
+2
JuliaTem #
Мне тоже интересно.
Моей дочке 7 лет вот-вот будет. попробую на ней. Напишу что получится.
+2
kashey #
мой в два года успешно освоил WorldOfGoo, сейчас почти в три сам скачивает себе инди(алавар, армор и те) и играется.
Как начнет говорит думаю начнем осваивать Коду, имхо мозги развивает
ПС: в кваку тоже умеет, но не очень получается
0
shwars #
Привет AIESEC (МАИ)! Явных рекомендаций нет. Думаю, стоит попробовать! Но я бы не делал это подарком на ДР — все-таки продукт свободно скачиваемый. Может быть просто установить и предложить вместе поиграть?
НЛО прилетело и опубликовало эту надпись здесь
+3
Lector #
а результат получается в виде чего? имеется ввиду в виде проекта для Kodu Game Lab или полноценный .exe?
если дети не могут похвастаться результатом, дав готовую игру друзьям — то она для них будет лишена смысла.
что-то вроде spore — поиграться немного можно, но потом забрасывают.
0
shwars #
Получается в виде проекта для Коду, который он сохраняет где-то у себя — но кажется есть сообщество и возможность обмена играми…
+3
lesa80 #
да… уж это точно лучше чем биониклы и ВоВы…

Пораньше конструкторы… Попозже программирование роботов =)
Заинтересовать ребенка вполне можно, если родитель в этом заинтересован конечно =)
+2
kvervo #
Интересная штука надо будет попробовать.

Если кто не знает, есть подобное приложение и для студентов: www.alice.org/
+1
FTM #
В second life и иже с ним вообще можно добавить свой объект с заданными ему функциями по взаимодействию как с окружаюшим миром, так и с персонажами. Причем, не какой-то стандартный набор объектов и функций, а все, что душе угодно. Но то не для детей, конечно.
–2
Horse #
Учим программировать детей и индийцев (2 тома).
Том 1: Как учить индийцев программированию: Delphi Forms теперь доступен на пиратском рынке.
Том 2: Как учить детей программированию: Kodu Game Lab теперь доступен для PC
+2
vk2 #
Безусловно, это обучение программированию, т.к. само понятие «программирование» в первую очередь подразумевает определенный образ мышления, а не заучивание операторов Бейсика.

Ссылка по теме: scratch.mit.edu/
0
shwars #
Scratch кстати на сайте Kodu указан в дружественных проектах (первым номером), и там же StarLogo NG (трёхмерный лого, следующее поколение StarLogo)
0
Proway #
спасибо! попробую сына от спайдерменов да от дальнобойщиков отвлечь
–1
rubyrabbit #
Таки не уверен, что это программирование. На первый взгляд, это ближе к старой доброй «The incredible machine» или недавним «Crayon Deluxe» и «World of Goo». Хотя безусловно это лучше, чем тупо рубиться в шутеры или виртуально красть машины.

Думаю, ребёнку быстро станет скучно (если он от природы не относится к классу «ботан»). Можно было бы поддержать интерес мультиплеером. Вот тут как раз можно и применить недавнюю идею Хабравойн: в общий мир выпускается живность, запрограммированная разными людьми, далее наблюдаем за естественным отбором и эволюцией. Если мальчики с удовольствием будут программировать поедание монстрами друг друга, то девочки могут программировать вкусные и красивые растения :-)

Тема интересная.
Спасибо и успехов.
0
oWeRQ #
> или виртуально красть машины
Меня GTA сподвигла освоить компьютер(винды если быть точнее), поначалу установка модов требовала некоторых знаний, здесь конфиг поправить, здесь заменить текстуру, итд. Надо заменить, что даже Lego Minstorms меня хоть и задело, но осваивать что-то еще не потянуло.
0
FullZero #
Любопытная тема. Сегодня тоже на младшем сыне испытаю. Все лучше чем зобаков стрелять.
+2
rekub #
По-моему, программирование и без всех этих плюшек, является самой интересной игрой.
+2
lesa80 #
детям лет до 7-8 крайне не интересно смотреть на букаффки… а тут крупно-цветасто-наглядно… и обучает мышлению =)

после такого останется изучать математику и конкретные языки =) да и с ООП ребенок уже разберется…
0
rekub #
Ну так дайте им раскраску пораскрашивать, или на горку сводите покататься, или книжку вслух почитайте! Это все, кстати, тоже мышление развивает… Чего вы над детьми издеваетесь-то? Хотите чтобы они уткнулись в компьютер и не мешали вам заниматься своими делами, да? Программировать раньше чем читать, это ерунда какая-то, просто потому, что, в какие бы цветастые обертки его не заворачивали, программирование требует гораздо более высокий уровень абстрактного мышления, чем обычное чтение книжки без картинок. И если читать книжку без картинок, еще не интересно, то программировать будет не интересно тоже, да, может будет интересно смотреть, как разные объекты, по-разному улыбаются и ходят. Ну и все. Суть происходящего будет неинтересна и непонятна.
+1
lesa80 #
1. заведите детей…
2. читать дети уже в 3-4 года многие умеют… в 5-7 уже обязаны в наше время…
3. никто не написал о груглосуточно программинге )) но если ребенок рвется к компу — то почему бы не извлекать пользы из этого?
4. Не смотреть как ходят и улыбаются, а заставить их улыбаться и ходить так как захочет ребенок.

и вообще вы бред написали… зачем детей плаванию учить, все кружки закрыть и отправить фтыкать в ВоВ…
–1
rekub #
1) без умных разберемся ;-)
2) Сначала, вы говорите, что до 7-8 им неинтересно смотреть на буковки, а потом, что они в 3-4 читают. Определитесь уже… Я имею в виду, что если читать уже умеет и нравится (неважно во сколько), то можно, эту программку показывать, а можно и без нее обойтись, просто какой-нибудь язык программирования показать. А вот наоборот точно не получится.
3) Возможно, хотя непонятно, почему если ребенку интересно играть в игрушки, то ему будет интересно возится с обучающей программой.
4) Вопрос в том какая из составляющих процесса, ему будет интереснее, если действительно, та которая и есть программирование, то, скорее всего, ему этот фреймворк надоест еще быстрее, чем если наоборот.
и вообще) я вроде писал, оторвите детей от компьютера — сводите на горку покататься.
0
BReal #
Я бы вот очень хотел найти игру который обучает C#. Но увы, многие часы гугления не дали результата. Нашел парочку игра Колобота, что-то близкое (Java), но все равно не то.
Подскажите, если в курсе :) Хочу точить скил C# и Silverlight…
0
kurokikaze #
C# — посмотрите на Microsoft Robotics. Насчёт Silverlight ничего сказать не могу.
0
shwars #
Robotics — очень обманчивая вещь, какие-то простые вещи на VPL делаются легко, но как только идешь дальше простейших примеров — все становится очень непросто.
+1
shwars #
Игру, обучающую C# — надо делать, эта ниша вроде бы пока пуста. А обучаться программированию игр на C# очень хорошо на XNA Game Studio — простейшая игра пишется за полчаса, на TechDays.ru есть примеры.
+1
murr #
Проект замечательный, пока что нет возможности посмотреть, разве что под вайном ковырять, но начинание отличное.
Однако, я очень давно понял, что любая игра-обучалка подобного рода должна носить соревновательный характер! Т.е. ребенок должен сравнивать какие-то свои достижения с достижениями других детей, и тогда интерес к подобного рода играм не будет иссякать через день-другой.
+1
mrBadim #
там же можно заливать свои world и смотреть чужие. систему рейтингов я думаю прикрутят, если еще нету.
+1
BReal #
Вываливается с ошибкой.
imageshost.ru/links/f7dad1b7427df6140c463c96a854b128
Думаю конфликт видео-драйвера :( Жаль
0
aquality #
Аналогично
0
aquality #
Вот только у меня ATI Radeon HD 3850 ???
0
bruha #
same shit T_T
ATI Radeon Xpress 1250
0
pietrovich #
поставил ребенку на 7-ку с Radeon X1270 (Wind12 на L335) запускается, мир можно редактировать и вроде как все пучком. но если запрограммировать юнит на пуск ракеты по левому щелчку мыши, а потом попытаться ее запустить то прога вешается намертво :(

зато примитивные «гоночки» мы уже накодили ночью (малый болеет поэтому спит днем а вечером уснуть не может).
ребенок вдохновлен и заинтересован, но глюки могут все испортить :(
0
shwars #
Насчёт глюков — к сожалению, оно пока на уровне technical preview. У меня самый странный глюк был в том, что в режиме записи ролика попытка установить пушку на землю была неуспешной — пушка проваливалась сквозь землю :) а без записи — все нормально.
0
aquality #
Кажись проблема в Windows 7
0
bruha #
у меня WinXP SP3, вылетает с ошибкой
0
Chikey #
а для какого возраста по вашему сделана эта вещица?
+1
BReal #
Я думаю раньше 7-ми лет не стоит даже показывать.
–3
twi #
Лого похоже на залупу с глазами.
0
mrBadim #
мне кажется, данная программа очень подходит для будущих lvl-дизайнеров, как развитие — game-дизайнеров.
программирование — оно идет особняком. в Kodu юный талант не научиться обращаться с такими понятиями как if, for, and, or, array — а их знание и понимание отличает скрипт/лвл/гейм-дизайнера от программиста.

>Можно ли это рассматривать как обучение программированию, или скорее как способ перетащить детей от пассивной роли игрока к более творческому процессу создания игры?
программированию нет, а вот как способ творить — да, определенно да.

и если есть там система рейтингов своих и чужих миров — было бы классно услышать и о ней тоже.
+4
naryl #
.msi уже называется для ПК? Пишите «для Windows».
+2
janvarev #
Есть похожая штука, которую я когда-то немного преподавал, тоже в рамках обучения программированию.
Называется Game Maker: www.yoyogames.com/make/

Тоже самое — объекты, действия и т.д.
0
pietrovich #
а нет ли у вас описания и уроков на русском? в 10 лет с английским у нас пока сложновато :")

Вы не пробовали Kudo? насколько они отличаются? с Kudo ребенок вроде разобрался (разбирается) в нем довольно понятный графический интерфейс и знания английского нужны в минимальном объеме. сможет ли ребенок вкурить в GameMaker?
0
pietrovich #
посмотрел, попробовал… забавно, но порог вхождения на порядок выше.
хотя, попробовать определенно стоит. глядишь начнет клепать «марио» и «змейки», которые на Kudo ну никак не получатся — другой подход, цели и совершенно другие возможности.
0
alxsad #
не обрекайте детей на жизнь программистов=)
+2
Sone #
В 8 лет дядя принес мне QBasic, вот было время))))) О таком даже и не мечтал)
+1
naryl #
Поправьте в конце концов текст.

> любой желающий может скачать и попробовать версию для ПК.

Немалая часть владельцев ПК, желающих скачать и попробовать, не сможет сделать последнее. Так что либо не ПК, а Windows, либо не любой. :)
+1
shwars #
Все зависит от уровня желания! Вдруг у кого-то хватит желания ради Kodu поставить себе Windows? :)
0
AndryX #
Вспомнил своё детство, как я у бабульки выпросил компьютер и мы списали его с её места работы, а потом притащили на санках домой =). Мне тогда было 6 лет и на том компе почти не оказалось игр, потому я прошёл несколько раз те, что были и нашёл новую — бейсик). Благо там хелп был на русском и я таки научился некоторые элементарные вещи реализовывать, но потом мне купили новый комп… и началось… игры =)
0
Dimchansky #
При запуске вылетает с ошибкой:

Инициализатор типа «Boku.SimWorld.Path.Road» выдал исключение.
1.0.21.0
Adapter: NVIDIA GeForce 9800 GT, Driver: 8.17.11.9562

в Boku.SimWorld.Path.Road.UnloadContent()
в Boku.BokuGame.StaticContent.UnloadContent()
в Boku.BokuGame.Unload(INeedsDeviceReset foo)
в Boku.BokuGame.UnloadContent()
в Microsoft.Xna.Framework.Game.DeviceDisposing(Object sender, EventArgs e)
в Microsoft.Xna.Framework.GraphicsDeviceManager.OnDeviceDisposing(Object sender, EventArgs args)
в Microsoft.Xna.Framework.GraphicsDeviceManager.HandleDisposing(Object sender, EventArgs e)
в Microsoft.Xna.Framework.Graphics.GraphicsDevice.~GraphicsDevice()
в Microsoft.Xna.Framework.Graphics.GraphicsDevice.Dispose(Boolean )
в Microsoft.Xna.Framework.Graphics.GraphicsDevice.Dispose()
в Microsoft.Xna.Framework.GraphicsDeviceManager.Dispose(Boolean disposing)
в Microsoft.Xna.Framework.GraphicsDeviceManager.System.IDisposable.Dispose()
в Microsoft.Xna.Framework.Game.Dispose(Boolean disposing)
в Microsoft.Xna.Framework.Game.Dispose()
в Boku.Program.Main(String[] args)
0
shwars #
Та же фигня на домашнем компьютере. В чем проблема — не очень пока понял :(
0
Dimchansky #
Так и не удалось победить?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.