Пользователь
10,0
рейтинг
15 января 2010 в 10:44

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

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

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

image image


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

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

image image

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

imageimage

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



Как вы думаете – насколько такой подход к созданию игр близок к программированию? Можно ли это рассматривать как обучение программированию, или скорее как способ перетащить детей от пассивной роли игрока к более творческому процессу создания игры? Именно это, как мне кажется, самое главное, что позволяет сделать Kodu – показать, что компьютер может использоваться для создания чего-то нового, для воплощения в жизнь своих идей. Конкретные технологии, языки программирования и библиотеки всё время будут меняться, но этот принцип – свобода творчества, возможность создания виртуального творения своими руками – будет оставаться всегда.
Дмитрий Сошников @shwars
карма
78,0
рейтинг 10,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

Комментарии (82)

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

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

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

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

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

    Если кто не знает, есть подобное приложение и для студентов: www.alice.org/
  • +1
    В second life и иже с ним вообще можно добавить свой объект с заданными ему функциями по взаимодействию как с окружаюшим миром, так и с персонажами. Причем, не какой-то стандартный набор объектов и функций, а все, что душе угодно. Но то не для детей, конечно.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +2
    Безусловно, это обучение программированию, т.к. само понятие «программирование» в первую очередь подразумевает определенный образ мышления, а не заучивание операторов Бейсика.

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

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

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

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

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

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

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

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

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

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

    Инициализатор типа «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
      Та же фигня на домашнем компьютере. В чем проблема — не очень пока понял :(
      • 0
        Так и не удалось победить?
  • 0
    Попиарюсь немного. Я хоть и не разработчик игр, но недавно знакомый предложил мне подумать над этим, потому как у него ребенок, он хотел бы, чтобы какую-то игру ему обучающую дать. Для такого возраста не нашел.

    И я создал небольшую онлайн-игру. Для детей, наверное, младше 12 лет. Простенькую. Программируется робот, тоже визуально. Мышкой. Сравнивать с игрой, о которой тема, конечно, не имеет смысла, у меня не создаются игры и не 3-d. Но и порог вхождения значительно ниже, что важно для таких игр.
    Игра детей знакомит с ветвлениями и простыми циклами. Не смотрите, что на первых уровнях очень простая. Под конец детей такого возраста вполне нагружает. Напоминает головоломку. Проверял на детях, понравилось. (может только придется вам поучаствовать в объяснении вевтления и цикла. Но были дети, которые сами разобрались)

    Может и вашим подойдет.
    http://robotinmaze.net/ru

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