Хотите сделать мод на големов в игре «Майнкрафт»? Легко! В этом поможет язык Python. Предлагаем начинающим мододелам использовать его по представленной инструкции, чтобы разобраться, как создать игру «Армия големов».

«Дети не умеют писать код». «Им это не интересно». «IT – не детская, а взрослая тема». Это ложные установки, хотя они и имеют место. Мы в школе Pixel считаем, что детей, увлеченных геймингом, нетрудно сделать начинающими программистами: на примере популярной игровой вселенной Minecraft это возможно благодаря языку Python. С его помощью даже младшие школьники (8-9 лет и старше) могут создавать собственные моды для популярной инди-игры в жанре песочницы.

А мы предлагаем нашим читателям разобраться, как создать собственный проект на «Питоне» и запустить его в Minecraft. Будет просто и интересно: нами подготовлена краткая инструкция, а в конце представлен видеоролик, в котором наглядно и с примерами описаны основные шаги.

Приступим?

Программирование на Python во вселенной «Майнкрафт»: создаем мод «Армия железных големов»

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

Информация для новичков. 

Если вы только начинаете делать первые шаги в программировании и пока не установили Minecraft и Python на ПК, предварительно посмотрите вводные ролики. Вот видео для пользователей компьютеров с Windows и с MacOS

1. Задаем основные условия

Первых и последующих врагов будем спавнить в лесу: данная локация станет стартовой точкой. 

А еще сделаем ночь: так будет интереснее и немного страшнее. Основные шаги:

  1. Обращаемся к командной строке сервера и вводим команду time set night.

  2. Дополнительно пишем gamerule doDayLightCycle true. Эта команда установит запрет на изменение времени суток.

Создаем големов в Minecraft — начало работы над проектом
Создаем големов в Minecraft — начало работы над проектом

2. Создаем врагов и големов, дополнительные объекты, а также программируем их действия

Создать врагов просто: достаточно использовать внутренние средства, предназначенные для спавна. А еще предлагаем добавить огонь, с чем поможет инструмент «Зажигалка». Применим его, чтобы поджечь деревья в лесу.

Для создания големов из блоков железа нам понадобится:

  1. Создать Python-файл. Давайте назовем его army_golems.

  2. Импортировать 3 модуля, предназначенных для Minecraft, создания блоков и остановки времени.

  3. Объявить переменные. В mc поместим команду для проведения операций в игре. Далее создадим pos для определения позиции одного персонажа.

  4. Создать переменные X, Y, Z. Они потребуются для обращения к координатам персонажей. К X прибавим единицу: это нужно, чтобы новые объекты не появлялись в уже созданных големах.

Объявляем переменные в скрипте
Объявляем переменные в скрипте

Теперь нам нужно применить переменную work. Она отвечает за работу цикла. Не допускается значение в виде False: в этом случае программа перестанет работать. Поэтому поместим в переменную True.

Установим остановку цикла на 0,1 секунды. Объявим переменную chat и поместим в нее команду, предназначенную для считывания сообщений из внутреннего чата. Для этого дополнительно потребуется применить цикл for.

Механизм, который нам нужно реализовать перед тем, как сделать полноценных големов в игре «Майнкрафт», прост: поместим в переменную M сообщение, отправленное в чат. Дополнительно задействуем функцию int для преобразования текста в числовые данные. Это важно: количество повторов зависит от цифр, которые мы будем указывать в чате.

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

Для определения железных блоков используем следующую команду: block.IRON_BLOCK.id. В отношении тыквы потребуется вписать цифру 86: она указывает на соответствующий объект.

Вот какой код должен получиться: 

3. Проверяем, как работает мод на Python для игры «Майнкрафт»

Давайте попробуем добавить одного голема. Если все получилось, значит программа работает корректно. Затем создадим 10 и 100 мобов. Удалось? Если да, то мы стали командирами бесконечной армии големов.

4. Завершаем программу

Итак, мы разобрались, как создать голема во вселенной «Майнкрафт» и клонировать его для получения полноценной армии. Но программа еще не завершена: нужно прописать условие перед циклом for, чтобы мобы начинали появляться и исчезать автоматически. Используем break для выхода из циклической конструкции, отвечающей за прочтение чата, и попробуем закрыть программу.

Бонус: код для мода и обучающее видео

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

import mcpi.minecraft as minecraft
import mcpi.block as block
import time
 
mc = minecraft.Minecraft.create()
pos = mc.player.getTilePos()
 
x = pos.x + 1
y = pos.y
z = pos.z
 
work = True
 
while work:
	time.sleep(0.1)
	chat = mc.events.pollChatPosts()
	for c in chat:
    	m = int(c.message)
 
    	if m == 0:
        	work = False
        	break
    	
    	for i in range(m):
        	mc.setBlock(x, y, z, block.IRON_BLOCK.id)
        	mc.setBlock(x, y + 1, z, block.IRON_BLOCK.id)
        	mc.setBlock(x - 1, y + 1, z, block.IRON_BLOCK.id)
        	mc.setBlock(x + 1, y + 1, z, block.IRON_BLOCK.id)
        	mc.setBlock(x, y + 2, z, 86)

А еще рекомендуем посмотреть обучающий ролик: в нем преподаватель рассказывает и показывает, как действовать. Даже новичок сможет справиться и научиться делать собственные моды для Minecraft на примере проекта «Армия големов». Обязательно смотрите видео и программируйте свой мир в Minecraft на Python вместе с нами! Мы уверены, что у вас все получится.

Хотим подвести итог и подчеркнуть, что использование Python в игре «Майнкрафт» – отличный способ обучения детей программированию. Это возможно благодаря игровому формату: изучение основ написания кода на примере создания маленьким игроком собственных модов – стимул и мотив с точки зрения вовлечения в процесс.

Мы в школе Pixel вместе с юными учениками программируем на Python в Minecraft и успешно делаем более сложные вещи именно благодаря геймификации. Поэтому при условии, что ребенок – геймер, его увлечение можно направить в правильное русло. Предложенный урок поможет в этом. Если вы хотите углубиться в это направление, приходите на наши курсы.

В завершение хотим уточнить: удалось ли вам разобраться, как создать мод для игры «Майнкрафт» на Python? Если нет, то какие возникли трудности? А еще вопрос к родителям: как считаете, уроки программирования на Python в Minecraft подходят для детей? Или лучше погружение в написание кода с помощью другого языка, скажем, Scratch? 

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


  1. Sasa111222333
    18.09.2024 20:12
    +2

    А еще вопрос к родителям: как считаете, уроки программирования на Python в Minecraft подходят для детей?

    да, но начать лучше со скретча. мы пока только там сидим и питон считаем тяжелым. ребенку 9


  1. Octabun
    18.09.2024 20:12

    удалось ли вам разобраться, как создать мод для игры «Майнкрафт» на Python?

    Мне не удалось. Потому что у меня не стоит Майнкрафт, а куда совать файлы на Python и на что это будет влиять - в статье не написано.

    Я бы на это не жаловался, если бы не мысль - не слишком ли жёстко требовать сначала поставить Майнкрафт и Python (кстати, я даже не понимаю почему "и" - Майнкрафт рискует работать с незнамо каким системным интерпретатором Python?), что подразумевает сначала купить ребёнку комп, потом начать учить его программированию, и потом, может быть, убедиться что это пустая трата времени.

    У ребёнка точно есть смартфон. На смартфоне точно можно, даже не ставя Termux в будущее которого я убеждённо верю в смысле отсутствия такового, поиметь Python, Lua и Lisp. Вполне возможно, что можно и ещё что-то, в зависимости от ОС и региона, с этим вроде как обязан разобраться желающий обучать. Самому проверять лень, но сильно похоже что уже этого достаточно чтобы начать преподавать фуллстек. Может быть начинать обучение с этим, если пойдёт - купить клавиатуру и вывести экран на телевизор? А если есть планшет, то и телевизор не особо нужен. Компьютер же покупать только тогда, когда есть уверенность в его необходимости.

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

    Или я что-то упускаю?


    1. Qlavrt
      18.09.2024 20:12
      +1

      Мне не удалось.

      Согласен, в статье маловато нужной информации...

      что подразумевает сначала купить ребёнку комп

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

      поиметь Python, Lua и Lisp ... начать преподавать фуллстек. Может быть начинать обучение с этим ... А увидев результат ...

      К сожалению таким способом обучения заинтересуется только очень редкий необычный ребенок с особенностями умственного развития (в положительном смысле), который смог не подсесть на зависимость от листания видосиков в ТикТоке и т.п. Детям (да и взрослым, чо уж!) нужен видимый интерес в результате своих трудов, поэтому написание мода для майнкрафта выдает порцию дофамина, вплоть до вау-эффекта.

      Вот кстати, зачем "школа", в которой работает авторка сей статьи, обучает писать моды для Майнкрафта на Питоне, когда "родной" язык Майнкрафта - Java!? Предполагаю что реальная причина проста: "Питон" раскручен на слух и служит для привлечения... Только вот его нарочитая "простота" потом играет злую шутку с обучившимися (не буду развивать эту тему, пусть останется просто моим мнением).


  1. Qlavrt
    18.09.2024 20:12

    / Или лучше погружение в написание кода с помощью другого языка, скажем, Scratch?

    Так Scratch вообще-то не про написание кода! Там некуда погружаться. После осознания обучающимися, что такое алгоритм, понимания циклов, событий, переменных и т.п. придется переходиться на какой-то "язык" :)