Крэйг Ричардсон: Программируем с Minecraft. Создай свой мир с помощью Python

Minecraft – это игра, которую любят дети и взрослые по всему миру.

Игру-конструктор создал шведский программист Маркус Перссон, и она стала настоящим феноменом игровой индустрии. Кубомир Minecraft быстро обрёл армию фанатов и стал одной из самых прибыльных игр в мире.

В 2014 году игру выкупил Microsoft. Корпорация решила расширять вселенную во всевозможных направлениях – в том числе и образовательном. Одним из таких направлений стало программирование Майнкрафт для детей.

В Швеции Майнкрафт даже включили в обязательную школьную программу в качестве инструмента цифрового творчества и поставили в один ряд с обучением рисованию.

Курсы Minecraft для детей

Дружелюбная среда Minecraft – отличное место, чтобы начать изучать программирование. Мы рекомендуем курс «Программирование Майнкрафт для детей» всем коддикам от 7 лет.

Для многих Майнкрафт давно стал не просто игрой, а способом самовыражения: маленькие кубики позволяют моделировать целые миры и управлять действиями героев. Во время обучения программированию Minecraft для детей ребята выполняют различные задачи и проходят мини-игры. Элементами игры управляют с помощью специальных программных команд, которые выглядят как небольшие блоки. Эти блоки нужно расставить в определённой последовательности, чтобы программа привела их в действие. Таким образом ребята пишут программный код. И это только начало!

Ребята, у которых есть хотя бы небольшой опыт в Minecraft, видят в игре моменты, которые можно было бы изменить и улучшить. Искать полезные ресурсы, добывать дерево и строить бывает довольно скучно. Было бы здорово автоматизировать эти действия, правда? Программирование в Майнкрафт поможет избавиться от рутинных процессов и сделает игру более увлекательной и индивидуальной.

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

К концу курса Minecraft для детей ваш ребенок:

  • овладеет основами программирования в Minecraft;
  • научится применять полученные знания на практике, создавая игровые объекты – от ферм и темниц до замков и лабиринтов;
  • разовьет навыки планирования, алгоритмическое и пространственное мышление;
  • научится работать в команде;
  • превратит увлечение игрой в полезный обучающий процесс.

Подарите вашему ребёнку возможность создавать удивительные виртуальные миры и писать для них собственные правила!


Как мы понимаем, что учащийся освоил программу?

Во время обучения мы оцениваем как практическую сторону вопроса (как это сделать?), так и понимание темы (почему и зачем).

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

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

Наконец, если вас заинтересует перевод ознакомительной публикации Уолтера Хиггса о ScriptCraft, на которую ссылается автор в самом конце статьи - пишите, обсудим:)

Если у вас, как и у меня, есть маленькие дети в возрасте 5-10 лет, то вы, вероятно, не понаслышке знаете о всеобщем увлечении Minecraft; возможно, у вас даже есть книги и игрушки на эту тему. Я стала размышлять, может ли эта игра в кубики чему-то научить ваших детей и решила рассказать, как увлечь детей программированием за игрой в Minecraft. Мы уже пытались учиться программировать на Scratch , но Minecraft нравится детям даже больше, чем этот язык. Вот я и решила отталкиваться от Minecraft.

С чего начать

Установка

Как раз этим делом я решила не заниматься с детьми. Они маленькие, и я хотела сделать так, чтобы мы могли сосредоточиться на «самом интересном», чтобы дети сразу получали «отдачу» от программирования, а не занимались скучной настройкой прежде, чем смогут приступить к программированию. Хорошо, что я поступила именно так: при установке обнаружились некоторые закавыки, которые вполне могли бы испортить детям настроение. Кстати, мы работали на Mac.

Предварительные условия

  • При установке воспользуйтесь обычным (normal) аккаунтом. Сначала я пыталась работать с аккаунтом ребенка, активировав на нем родительский контроль. К сожалению, в таком случае не только ограничиваются возможности самого Minecraft, но и сужается набор вызовов для командной строки, которые могут понадобиться. Этот аккаунт не требует прав администратора.
  • Установите полноценную клиентскую версию Minecraft. Поскольку дети часто играют в Minecraft Pocket Edition (PE) на айпадах, мы не сразу поняли, что эта версия не позволяет подключиться к модифицированному серверу Minecraft, что мы делали при помощи CanaryMod. Клиентскую версию можно приобрести на сайте Minecraft . Обязательно подберите надежный пароль.
  • Установите Java , если еще не сделали этого. Без Java вы не сможете работать с модифицированным сервером.
  • Наконец, ссылки: убедитесь, что версии, с которыми вы работаете, совместимы друг с другом, иначе плагин ScriptCraft загрузится неправильно.

Начали

Необходимо усвоить: если от вас требуется «запустить сервер», то имеется в виду следующее:

  • Откройте терминал
  • Перейдите в каталог
  • Введите
    java -jar CanaryMod-1.2.0_0.jar

Если все сработает верно, то вы должны увидеть следующее:

Обратите внимание: если вы правильно установили плагин ScriptCraft, то также должны увидеть «Found 1 plugin».
Статус завершается приглашением командной строки для рабочего сервера. Чтобы аккуратно выйти с сервера, когда все сделаете, вернитесь в терминал и просто введите «stop». Если этого не сделать и закрыть окно терминала, либо нажать Ctrl-Z, то соответствующий процесс Java так и будет висеть на том порте, где был запущен CanaryMod – по умолчанию 25565. В таком случае у вас возникнут проблемы, как только вы попытаетесь вновь запустить сервер.

Навигация в Minecraft

Если вы не играете в Minecraft регулярно (не то, что я), то убедитесь, что умеете пользоваться навигацией в игре.
Единственный вопрос, ответ на который я не нашла в онлайновых руководствах и при простом поиске в Google – как открыть дверь, не разрушая ее. В итоге я приспособилась прокладывать путь при помощи Ctrl + click. Тогда можно не сносить красивые дверцы домиков и других строений:). Странно, что дети предпочитали везде вламываться, не щадя дверей. Хмммм…

Итак, пойдем

Впервые запустив клиент Minecraft, настройте многопользовательский режим (multiplayer). В руководствах пишут, что для соединения используется просто «localhost», но на самом деле нужно задать
localhost:, где port – либо порт, задаваемый по умолчанию для CanaryMod, то есть, 25565, либо другой порт, который вы могли определить в конфигурационном файле CanaryMod.

Затем попробуйте ввести какой-нибудь текст в командную строку. Обратите внимание: командная строка есть как в самом клиенте Minecraft, так и в том окне терминала, из которого вы запускали сервер CanaryMod. Иногда кажется, что клиент реагирует не на все нажатия клавиш. Мой старший любит в таком случае говорить «что-то глючит». В таком случае нужно перезапустить клиент Minecraft, а иногда даже сервер CanaryMod.

Если вы не хотите отвлекаться на всяких монстров и тварей, пытающихся сожрать вашего персонажа, сразу установите такой игровой режим, чтобы можно было творить. Это можно сделать как в конфигурационном файле config file , так и в командной строке Minecraft, где нужно ввести: /gamemode c
. В таком случае вы с детьми сможете вплотную заняться программированием и игрой, а не спасением вашего персонажа.

Как увлечь детей

Сначала давайте убедимся, что ScriptCraft работает:

Начинаем с упражнения, в котором учимся программно создавать блоки, для этого применяется вызов длиной в одну строку:

/js box(5,3,2,4)


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

Дети сразу заинтересовались, а можем ли мы создать тут животных, например, коров или лошадок:

/jsp spawn cow

/jsp spawn horse

Эти вызовы отличаются от тех, что мы делали при создании блоков: перед ними ставится /js, а не /jsp. Помните команду «op»? Она позволяет делать при помощи /js мощные вызовы, которые не следует предоставлять в распоряжение всем игрокам.

Если в игровом мире начинает идти дождь или становится темно, можете показать ребенку следующие быстрые команды, позволяющие вернуть погожий солнечный день:

Демо-версия для родителей

Мне не без труда удалось уговорить детей оторваться от игры в Minecraft и выполнить несколько простых упражнений – чтобы увлечь их программированием. Для этого вам потребуется внимательно посмотреть, чем дети занимаются в Minecraft, и подсказать им, какие вещи можно сделать гораздо быстрее, написав всего пару строк кода. Вот несколько рекомендаций на этот счет:

Покажите, как создать цилиндр из тортов (cake blocks) при помощи функции цилиндра, принимающей id торта, радиус и высоту. Моя старшая дочь была в полном восторге от того, что в этом квадратном мире можно сделать цилиндры, причем из торта (id 92). Она переключилась в режим выживания командой game mode s
и с аппетитом «поедала» тортики, в Minecraft от этого улучшается здоровье. Ах, если бы в жизни тоже так было:)

/js cylinder(92, 5, 20)

Вот что получилось (вид сверху):

Создаем домик, потом набор домиков, форт и замок. Не забывайте двигать крестик, чтобы все эти объекты не выстраивались друг на друге.
/js cottage()

/js cottage_road()


Затем покажите, как замостить одну из этих структур слизнями. Дети подсказали, что если мы так сделаем, то наш персонаж сможет весело летать в облаках и приземляться в виртуальном домике-батуте. Блоки-слизни упоминаются в gamepedia, их id 165.

Можно даже добавить в одном из строений танцпол:

/js dancefloor()


Освободите большое пространство, чтобы на нем было проще размещать разные структуры. На первый взгляд было неочевидно, как это делается, даже покопавшись на различных сайтах я не нашла четкого ответа – разве что такая возможность была в популярном моде WorldEdit. Я не решилась устанавливать малознакомый мод, но в итоге нашла кое-какой код в папке с плагином ScriptCrafts, где используются воздушные блоки. Точно, воздушные блоки! Итак, поехали:
/js box(blocks.air, 50, 50, 50)


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

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

29 октября 2015 в 12:40

Книга «Minecraft. Программируй свой мир»

  • Блог компании Издательский дом «Питер» ,
  • Профессиональная литература

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

Книга специально написана для тех, кто не только любит играть, но и хочет создавать что-то новое. Вы с легкостью освоите программирование, просто играя в Minecraft. В этом вам помогут простые пошаговые инструкции, позволяющие не только написать программу на Python, но и построить дом, фантастическое сооружение или даже 3D-копировальную машину. Вы сможете создавать собственные интерактивные игры, заниматься поиском сокровищ и даже возводить невероятные гигантские 2D- и 3D-объекты (сферы и пирамиды).

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

Что такое Minecraft

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

Виртуальный мир

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

Персонаж в Minecraft - воплощение игрока, его аватар называется Стив (Steve). Игрок управляет Стивом в виртуальном мире, стремясь достичь поставленной цели. Если удастся благополучно пережить первую ночь, когда одолевают монстры, вы сможете следовать своим целям, взаимодействовать с другими игроками и строить огромные сооружения, ограничиваясь лишь собственной фантазией. Игры в жанре песочницы позволяют игроку самому решать, как вести игру, не вынуждая его двигаться маршрутами, заложенными создателями игры.

О программировании в Minecraft

В этой книге рассказывается о программировании: игра Minecraft использована в качестве способа обучения программированию. Если вы ищете советы, как строить разные сооружения и выигрывать сражения, лучше обратиться к другим книгам по теме.

Программируя в Minecraft, можно сделать игру более захватывающей, творческой и индивидуальной. Играя в обычную игру, игроки следуют основным правилам Minecraft, заложенным создателями. А добавляя свои программы, взаимодействующие с игровым миром Minecraft, можно автоматизировать решение сложных и повторяющихся задач, таких как строительство протяженных улиц с домами и гигантских строений. Можно придать игре и ее объектам новые стили поведения, добавить новые элементы, до которых не додумались авторы. Но самое главное, что так вы приобретете универсальный навык - умение программировать на языке Python, который можно применять более широко, не только для программирования в Minecraft. На рисунке 1 изображена длинная улица со зданиями, построенная с помощью коротенькой программы на Python.


Рис. 1. Длинная улица со зданиями, построенная 20-строчной программой на Python

Что вы узнаете

Вы познакомитесь со множеством сторон игры Minecraft и способами влияния на ее поведение с помощью программ на языке Python. Откроете тайну адресации блоков в трехмерном мире с использованием координат. Узнаете, как определять местоположение персонажа, создавать и удалять блоки в Minecraft и как определить, какой блок выбран игроком.

Вы научитесь настраивать и запускать собственный локальный сервер Minecraft, использовав сервер craft-bukkit, созданный сообществом, и программировать его, использовав программный интерфейс Minecraft.

Вы узнаете, как писать программы на языке Python: от самых простых, таких как «Привет, мир Minecraft!», до сложных, взаимодействующих с огромными трехмерными объектами, которые, благодаря новым навыкам программирования на Python, легко штамповать.

Использовав бесплатный модуль MinecraftStuff, входящий в состав библиотеки на языке Python, вы сможете создавать двух- и трехмерные объекты из блоков, рисовать линии и многоугольники, а также выводить текст.

О структуре книги

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

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

Первые три приключения написаны для тех, кто мало знает или вообще ничего не знает о программировании. Мы объясним все термины и понятия по мере встречи с ними. В Приключениях 2, 3 и 4 рассмотрены ключевые элементы любой хорошей игры Minecraft. В их числе: определение событий, происходящих в мире Minecraft; выполнение простых вычислений и создание программ, реагирующих по-разному, например, отправляющих сообщения в чат или автоматически создающих блоки. Эти три ключевых понятия - определение, вычисление и реагирование - мы будем использовать на протяжении всей книги для создания больших и захватывающих программ Minecraft.

Приключение 5 основано на знаниях, полученных в предыдущих приключениях. Здесь мы исследуем некоторые интересные способы связи виртуального мира Minecraft с внешним миром. В частности, рассмотрены способы сохранения больших объемов данных в файлах для копирования и воспроизведения больших сооружений с помощью трехмерного «копировального аппарата».

Приключения 6 и 7 знакомят с модулем MinecraftStuff, позволяющим с помощью блоков создавать линии, окружности и другие двухмерные фигуры, а также некоторые фантастические трехмерные сферы и пирамиды. Они могут стать основой для строительства гигантских сооружений, создать которые вручную очень сложно. В Приключении 7 показано, как наделить движущиеся объекты индивидуальными особенностями, чтобы сделать их движения более-менее разумными. Освоив эти приемы, вы сможете писать захватывающие «игры внутри игры», которые наверняка поразят ваших друзей.

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

Более подробно с книгой можно познакомиться на

Зачем вам изучать программирование на языке Python? Он отлично подходит для новичков. Коды на Python легко писать и читать, мощности языка хватает, чтобы создавать на нем серьезные компьютерные программы. Неспроста Python является одним из самых распространенных языков программирования в мире!

Minecraft

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

Программирование

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

Синтаксис

У каждого языка программирования есть набор правил - синтаксис. Эти правила похожи на правила русского языка, которыми мы пользуемся, чтобы составлять предложения. Если вы будете знать синтаксис языка Python, программы будут работать, а если нарушите их, компьютер не поймет, что вы от него хотите.

Телепортация

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

Волшебный танцпол

Цикл while расскажет, как научить программу многократно выполнять код с помощью циклов. Вы сможете автоматизировать работу программ и получить фантастические результаты. Например, след из цветов, который будет тянуться за игроком, или волшебный танцпол, переливающийся всеми цветами радуги!

О книге









При этом в вашем арсенале появится большое количество работающих программ, навык программирования на Python и...

Читать полностью

О книге
Вам не страшны криперы, глубокие пещеры и высокие горы? А знаете ли вы, что меч можно превратить в волшебную палочку, дворец - возвести в мгновение ока, а тайные ходы легко открываются нажатием секретной кнопки? Книга "Программируем с Minecraft" позволит творить эти и многие другие чудеса с помощью Python - языка программирования, которым пользуются миллионы людей - от профи до новичков!

Следуйте пошаговым инструкциям и вы:
научитесь сохранять в переменных разные типы данных;
освоите принцип действия функций;
узнаете, как проверять условия при помощи булевых значений, операций сравнения и логических операций;
познакомитесь с циклами while и for;
поработаете со списками, кортежами и словарями;
научитесь создавать файлы, записывать и считывать из них данные;
поймете, в чем прелесть объектно ориентированного программирования.
При этом в вашем арсенале появится большое количество работающих программ, навык программирования на Python и радость от того, что вы можете создавать собственные миры!

Для кого эта книга
Для детей от 10 лет, а также всех, кто хочет начать программировать с нуля или не мыслит жизни без Minecraft.

Об авторе
Крейг Ричардсон - разработчик программного обеспечения и преподаватель языка Python. Он работал в Raspberry Pi Foundation, преподавал информатику в старших классах, провел множество семинаров, посвященных созданию Python-программ для Minecraft.

Для среднего и старшего школьного возраста.

Скрыть

Пять причин купить

  • 1. Программирование — это, прежде всего, тренировка ума для решения сложных задач. Вы научитесь разбивать большие задачи на маленькие и подключать при этом творческое мышление.
  • 2. Программирование учит мыслить логически. Логика нужна, чтобы тщательно спланировать структуру программы и сценарий ее работы. Навыки решения задач, творческое и логическое мышление пригодятся в самых разных областях жизни, а не только при написании кодов.
  • 3. Книга учит практическому программированию. Изучив ее, вы тут же пустите свои знания в ход: создадите мини-игры,приложения, программы, интересных героев, необычные миры и полезные утилиты.
  • 4. Вы изучите язык программистов Python, на котором можно создавать серьезные компьютерные программы. Python является одним из самых распространенных языков программирования в мире.
  • 5. В игровом мире вы можете создавать все, что захотите, — лишь дайте волю воображению! Раскроете свой творческий потенциал — сделаете такое, что просто невозможно повторить обычными средствами игры. Например, в считаные секунды возведете огромное здание.


 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!