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

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

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

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

С чего начать

Установка

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

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

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

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

Наконец, если вас заинтересует перевод ознакомительной публикации Уолтера Хиггса о 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 и более, то можно запросто обвалить сервер.

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

О книге









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

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

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

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

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

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

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

Скрыть

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

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

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: