Как создать квест-игру на Python в Minecraft — обучение Python для детей и начинающих
Рассказываем, как запрограммировать игру с уровнями в Minecraft с помощью языка Python.
Игровая вселенная Minecraft уже несколько лет используется в образовательных целях — а все благодаря элементам геймификации. Детям проще обучаться в виртуальном мире, в окружении любимых персонажей и в знакомой среде. Такие игровые детали позволяют удерживать внимание ребят и мотивируют их продолжать обучение. За какой бы предмет они ни взялись, будь то покорение иностранного языка, математики или физики, в «Майнкрафте» они будут ассоциироваться с чем-то увлекательным, а, главное, актуальным, ведь все теории можно будет рассмотреть на примере.
Помимо классических школьных предметов, в «Майнкрафте» дети могут также изучать программирование. Если подключить к платформе популярный язык программирования Python, то можно создавать различные объекты, используя текстовый код. Это отличная возможность познакомить детей с логикой программирования, не отрывая их от любимой игры.
В Minecraft можно не только проектировать постройки, но и разрабатывать собственные мини-игры. Онлайн-школа программирования для детей «Пиксель» делится бесплатным уроком по созданию игры-квеста в Minecraft с помощью языка Python.
В данной игре пользователю предстоит искать спрятавшиеся алмазные блоки, получая при этом очки опыта. Очки опыта нужны для повышения уровня. Повышать уровни можно бесконечно, при этом каждая ступень будет становится все сложнее и сложнее.
В конце материала мы добавим видеоинструкцию — если вам удобнее воспринимать информацию в таком формате, можете сразу переходить к ролику. А также прикрепим полный скрипт для разработки игры.
У нас есть подробные инструкции по установке Minecraft и IDLE (редактор для Python) на ПК:
Если вы еще не знакомы с программированием в Minecraft, мы рекомендуем начать с коротких пошаговых уроков. Этот плейлист знакомит детей с основами кодинга и учит создавать базовые постройки с помощью Python: от простых стен и зданий до целой улицы с домами.
Создадим python-файл под названием quest. Импортируем четыре модуля: minecraft, block, time, random. В переменную mc поместим команду для проведений операций в игре.
Очки опыта будут храниться в переменной exp. Название переменной идет от английского слова experience, что означает опыт. Значение уровня поместим в переменную level. В качестве значения будет единица. Для повышения уровня требуется какой-то ориентир, на который программа будет опираться. Этим ориентиром послужит переменная up со значением 1000. Когда персонаж достигнет этого значения, уровень повысится.
Блок будет появляться рядом с персонажем. Радиус поиска будет составлять пять блоков — именно это число мы поместим в переменную radius. Игроку необходимо знать, сколько времени прошло от начала игры. Для этого мы создадим переменную allTime.
В чат выведем приветствие и правила игры: заработать как можно больше опыта, выделение минуты на поиск каждого блока, получение пятисот очков за каждый блок, задача — набрать 1000 очков для перехода на второй уровень. Если игрок не успел найти блок, то игра заканчивается.
Останавливаем программу на 10 секунд благодаря команде time.sleep(10). Этого должно хватить для прочтения правил. Если считаете, что нужно оставить больше времени на ожидание, то просто увеличьте число в скобках.
Определим функцию под названием quest. Здесь будем хранить основную логику игры. Командой global обозначим переменные level, exp, radius, allTime. Данная команда нужна для вызова переменных, которые находятся за пределами функции. Особенно важно помечать переменные командой global, когда мы хотим их изменить. Ниже определим позицию персонажа в переменную pos. В r1 и r2 поместим команды, которые делают генерацию случайных чисел в определенном промежутке. В нашем случае этим промежутком является радиус от отрицательного значения до положительного, то есть от -5 до 5.
В x и z поместим координаты персонажа, прибавленные к случайным числам. Таким образом мы получим случайное место на карте недалеко от персонажа. А в y поместим функцию mc.getHeight. С ее помощью блок будет создаваться на поверхности ландшафта: например, на траве, воде, дереве и на других элементах окружающей среды. В скобки поместим x и z, чтобы объяснить программе, на каком именно участке создавать блок.
Команда mc.setBlock создаст алмазный блок. Поместим в скобки x, y, z и команду алмазного блока. В timer поместим число 60. Как вы уже догадались, здесь будет храниться время, за которое персонаж должен найти блок. Переменная found отвечает за отчетность о нахождении блока. Пока поставим false, потому что блок изначально не найден.
Циклом while обозначим, что пока очков меньше предела для повышения и пока блок не найден (команда not играет роль отрицания), будет исполняться следующий код: запускаем функцию info (она у нас еще не написана, поэтому расскажем о ней позже), к общему времени allTime прибавляется единица, переменная hits хранит в себе команду для распознавания касаний по блоку, циклом for считываем эту переменную, далее в bp поместим позицию, где произошло это событие, добавляем условие: если клик произошел на месте созданного блока, то блок считается подобранным, в копилку опыта зачисляется 500 очков, в чат выводится информация об этом, переменная found сообщает наличием значения True, что блок найден, затем следует прекращение цикла посредством команды break.
Цикл while все это время делал паузу в одну секунду, чтобы работа таймера была корректной. Если время на поиск блока истекло, то об этом пишется в чат, блок исчезает, выводится статистика игры, уровень падает на значение 0 и команда break прекращает работу цикла.
Настало время написать функцию info. В ней тоже объявляем целый ряд глобальных переменных. Команду для считывания чата помещаем в переменную chat. Считываем ее циклом for. Для хранения сообщения из чата создадим переменную m. Добавим условие: если в чат пропишется команда info, то игрок увидит статистику своей игры на данный момент.
Объявим цикл while, работающий, пока уровень не будет равен нулю. А он равен нулю только тогда, когда игрок не успел найти блок за отведенное ему время. В цикл помещаем функцию quest для ее запуска. Без этого функция работать не будет. Добавим условие: если опыта будет больше, либо он будет равен нужному порогу, то повышается уровень, порог для следующего уровня и радиус поиска удваиваются и происходит вывод этой информации в чат.
Настало время проверить игру на деле.
Если вы хотите создать другую квестовую игру или получить навыки для усложнения квест-игры из этого урока, заглядывайте к нам на YouTube-канал. Мы регулярно публикуем ролики по разработке проектов внутри Майнкрафта: от построения небоскребов, космических ракет и лесов до программирования полноценных игр.
Custom Npcs: "Как сделать квест?"
![]()
Дальше делаем так Глобальные -> Задания -> Добавить -> лкм по созданному заданию -> кнопка Задания -> Добавить -> лкм по созданному окошку. Разберём его:
- Название — просто название, чтобы не запутаться
- Завершение текста — пишем туда что-то вроде «Ты сделал это! Держи награду. «
- Текст квеста — описание задания
- Награда — туда ставите то, что получит прошедший (можно оставить воздух)
- Тип — есть задания на вещи, убийства, диалоги, локации и т.д. в зависимости от типа игрок надо с кем-то поговорить, что-нибудь принести и т.д.
- Повторяется — да или нет — можно ли пройти задание несколько раз
- Продвинутые — отношения с фракциями после прохождения, команда после прохождения, автоматически дать следующее задание
Так разобрались! теперь пишем:
- «завершение диалога» — «Поздравляю! Сейчас достану награду.»
- «текст квеста» — «Melancholy попросил принести блок обсидиана. Обещает вкусную плюху. «
- «награда» — кидаем 5 алмазов
- «тип» — разумеется на вещь», «редактировать» — положим блок обсидиана. «выдать предмет» — отберут ли у нас предмет. О том что такое «Урон» и «NBT» я рассказывать не буду
- Всё. Задание готово!
Теперь надо это привязать. Выбираем «Задание» (диалог, про который мы на время забыли). нажимаем на «Выбрать квест». Выбираем наш квест.
Наслаждаемся работой.
PS
Осталось рассказать о предметах и о малозначительных вкладках. Стоит ли продолжать?
1
1 комментарий
Рекомендуемые комментарии
Полезные ресурсы
Голосование
Информация
О нас
Проект ComputerCraft.ru основан в 2014 году. Особенностью наших игровых серверов является обязательное наличие компьютерных и технических модов и аддонов. Когда мод ComputerCraft устарел и больше не отвечал техническим требованиям, ему на замену пришел современный и высокотехнологичный мод OpenComputers. Черепашек заменили роботы из мода Opencomputers.
ComputerCraft.ru — это площадка для игры в Minecraft и общения на форуме, стабильные серверы и возможность в легкой и игровой форме обучиться программированию на языке Lua и реализовать все свои самые смелые инженерные идеи и решения и поделиться ими с другими игроками. За все время существования проекта сменилось 10 игровых серверов, которые посетили более 9000 игроков. На сайте собрано множество интересных программ и библиотек, статей, гайдов, веселых историй и горячих обсуждений, выдвинуто множество идей автоматизации и способов программирования.
У нас играют и пишут программы как новички так и опытные программисты. А самые продвинутые участники нашего коллектива даже разрабатывают собственные авторские моды и аддоны, ресурспаки, репозитории, мощнейшие библиотеки и операционные системы.
Регистрируйтесь прямо сейчас и присоединяйтесь к нашему дружному коллективу фанатов игры Minecraft , компьютерных и инженерных модов!
Custom NPC — инструкция по моду, как делать квесты

И так наверное многие знаю такой замечательный мод как Custom NPC, но и половину вещей которые он может тоже не знают? Думаю я прав.В данном гайде я попытаюсь объяснить все что только возможно ( ну по крайне мере до тех пор пока я не тупану 😀 )
Это инструкция по моду Custom NPC
И так думаю мы организуем наш урок следующим образом:

2.Скачанный мод кидаем в папку mods которая находится по адресу
» %appdata%/.minecraft/mods »
Примечание!
1.Не надо разархивировать мод!
2.У вас должен быть установлен forge
На этом мы закончим установку и перейдем
к основному меню с гайдами.
Все гайды полностью написаны мною.


И так перейдя во вкладку Stats вы увидите вот такое вот меню:
1.Health: Отвечает за здоровье вашего НПС.
2.AttackRange: Отвечает за то с какого расстояния НПС будет бить вас.Если хотите сделать лучника более 15-20 вам будет достаточно.
3.Normal WalkingSpeed: Отвечает за то с какой скоростью будет двигаться ваш нпс.По умолчанию стоит 5.
4.Respawn of/on и его функции: Как вы поняли это отвечает за то будет ли ваш НПС спавниться после смерти.По умолчанию стоит «ON» что значит будет спавниться.Рядом написано «Time:20» , что отвечает за то, за какое время ваш НПС будет спавниттся ( время в секундах ).Также рядом есть строка «Show body when killed» , что обозначает «Показывать тело когда убито» .Вы можете изменить так, чтобы оно не показывалось.
5.Strenght: Сила удара.НПС с силой 5 будет отнимать 2.5 сердечка, соответственно 4 силы будет отнимать 2 сердечка.
6.AttackSpeed: Скорость атаки НПС.20 стандартное число ( 2 секунды вроде как )
7.Attack WalkingSpeed: Скорость атаки когда НПС в движении.
И так перейдя во вкладку Inventory вы увидите вот такое вот меню:

Думаю здесь все очень элементарно.Выглядит как обычный инвентарь игрока.Только вот с права вы можете увидеть ячейки.Вставляя в ячейку предмет вы можете настроить шанс его дропа ( выпадания ) если ваш НПС умрет.
1.MinXp -Минимальное количесто опыта которое может упасть с вашего НПС при смерти
2.MaxXp -Максимальное количество опыта которое может упасть с вашего НПС при смерти.
И так перейдя во вкладку Advanced вы увидите вот такое вот меню:

Advanced определяет роль и работу NPC, его фракцию и диалог.
Роли
1.Trader — торговец :Настраиваемый игроком. Возможно установить 36 обменов.
2.Follower — наёмник :Присоединяется к игроку, если он заплатит ему (плата и время действия контракта настраивается игроком). После окончания контракта или смерти, наёмник возвращается на место своего спавна.
3.Bank — банк: Работает по принципу сундука Края . Игроком настраивается кол-во слотов, цена покупки новых и апгрейда старых.
4.Transporter — транспортёр: Переносит игрока к другому транспортёру. Игроком настраивается, к какому другому транспортёру будет
отправляться игрок.
Работа
1.Bard — бард: Игроком настраивается музыка, которую будет играть бард (можно добавлять свои треки), каким инструментом будет играть бард (чисто декоративная настройка), тип игры (как проигрыватель или как фоновая музыка, расстояние в блоках включения и выключения воспроизведения музыки.
2.Healer — Целитель: Может лечить вас в определенное время.
3.Guard — стражник: Защищает определенную территорию.Можно настроить агро радиус, атаку мобов, животных.
4.Item giver — раздатчик предметов: Игроком настраивается время, через которое он будет выдавать предметы, как он будет их выдавать и предметы которые он будет выдавать.
Lines
Фразы, которые NPC говорит при определённых обстоятельствах. Есть 4 вида фраз:
World lines — воспроизводится, когда игрок рядом.
Attack lines — воспроизводится, когда NPC атакует.
Interact lines — воспроизводится, когда игрок контактирует с NPC.
Killed lines — воспроизводится, когда NPC умирает.
Factions
Каждому NPC можно назначить фракцию. Фракции можно добавить и изменить в разделе «Global».
Dialogs NPC можно назначить определённый диалог. Диалоги можно добавить и изменить в разделе «Global».
И так перейдя во вкладку Global вы увидите вот такое вот меню:

Раздел Global служит общими настройками для NPC в целом. В этом разделе можно
создавать/удалять/редактировать:
Диалоги с игроком
Фракции
Точки телепортации транспортёра.
Банки
Квесты
Рецепты станка, добавляемого модом.
Можно создать свой рецепт.
И так надеюсь вы прочитали прошлые гайды ( хотя здесь они не понадобятся ).Наконец мы приступим к созданию
своего диалога и подключение его к НПС.И так перейдем в вкладку «Global» и нажмем на кнопку «Dialogs».Нам откроется такое вот окошечко.

Нажмите на текст Vilager 1 раз и ниже нажмите кнопку Remove.Это удалит стандартный диалог который нам не нужен.Потом нажмите на кнопку Add и введите название основной папки где будет храниться ваш диалог.Чтобы было легче определяться я пишу такое же название как и имя моба.Потом проведите туже операцию что и с Vileger только на default.И так опять жмите кнопку Add и перед вами откроется окошко.
1.В поле Text :Вы пишите то что будет говорить ваш нпс.Давайте напишем вот что:Привет меня зовут «Имя НПС», а как тебя зовут?
2.Title: Сюда впишите ваше название начала диалога,советую вписать слово «НАЧАЛО».Я обычно использую ветви.То есть Начало и от него разветвления на разные ответы.И так наш диалог готов, но вот как-то не красиво он будет без ответов а?
1. Перейдите во вкладку Dialog Option
2. Каждой реплике в диалоге можно назначить 6 различных ответов.Давайте сделаем 3 ответа.
1 ответ будет такой:Привет.Расскажи о себе.
2 ответ будет такой:*Уйти*
3 ответ будет такой:*Торговать*
3. Должно получится ПРИМЕРНО так. ( Я вставил скрин одного из своих диалогов он
отличается от того что я написал выше.)
4. И так теперь вы можете поговорить с ним, но вот беда, когда мы жмем на кнопку «Привет.Расскажи о себе.» у нас закрывается окно диалога.Все потому что у нас не настроен дальнейший переход на диалоги.То есть ничего не будет происходить пока мы не укажем переход на второй диалог.Делается это просто.Зайдите опять в ваш диалог где есть «Начало» и Добавьте новую ветку:Например назавем её «О НПС».Дальше вписываете свой текст и возврашаетесь обратно.Переходим во вкладку «Начало» и идем в Dialog option.Там ишим наш ответ:»Привет.Расскажи о себе.» и прям под ним кнопочку Select Option.Жмем на неё и выбираем там слово «О НПС», и жмем Select.Все.Теперь при диалоге с НПС когда нажмете на ваш разговорчик он перейдет к следующей вкладке.
5. При нажатии на кнопку *Торговать* ничего не происходит? Давайте исправим.
Зайдите в основном меню во вкладку «Advanced» и в панельке Role выбирети Trader.Это сделает нашего НПС торговцем.Дальше проделываем все тоже самое что и с назначением диалога, до момента где надо ставить текст.Чтобы при нажатии на слово *Торговать* открылось меню торговли в настройках ответа вам нужно поставить не Dialog Option а Role Option, что активирует роль.
1. Как вы знаете в Custom NPC встроено 3 фракции:Нейтралы,Друзья,Агрессоры.Но также Custom NPC имеет такую функцию, как создать свою собственную фракцию для НПС.Давайте не будем медлить и уже приступим к созданию?
2. Перейдите во вкладку Global и нажмите там на кнопку Factions.Перед вами откроется вот такое вот окно:

Нажмите на кнопочку «ADD» и у вас появиться, то что показано на скрине выше.То есть кнопкой «ADD» вы добавляете новую фракцию.
Давайте разберем здесь все более подробно:
2.1 Name:Имя вашей фракции
2.2 Color:Цвет отличающий вашу фракцию от остальных, а также каким цветом будет отображен ник вашего НПС над его головой.
2.3 Can be attacked by player/ Can’t be attacked by player:Здесь все придельно просто.Может или не Может быть атакован игроком
2.4 Dont’t attack players/ Attack players:Может или же не может атаковать игрока.Проше говоря будет ли ваш НПС агрессивным или же наоборот дружелюбным.
2.5 Dont’t help eachother/Help eachother:Устанавливает то,
что если будет стоять 2 НПС этой фракции, то если на одного из НПС напали будет ли ему помогать своя расса или же тупо стоять и смотреть. ( Думаю вы поняли )
2.6 Hostile faction:Устанавливает враждебные фракции.
1. Барды могут играть песни.
2. Бард начнет играть, когда вы подходите к нему в определенном диапазоне.
3. Бард перестанет играть если вы уйдете от заданного диапазона.
4. Бард может играть на скрипке,банджо,гитаре и что-то еще 😀
5. В настройках роли вы можете установить будет ли он играть в фоновом режиме или же играть на определенный диапазон.
6. Если вы поставите так чтобы бард играл в фоновом режиме, то музыка будет играть не зависимо от того как вы отдалитесь от НПС.Пока она не кончится будет играть.
Как сделать квест в майнкрафте без модов — Сайт о Игре Minecraft
Как сделать квест в майнкрафте без модов — Советы и Инструкции

Создание квеста в Minecraft без модов может быть довольно просто, если вы следуете некоторым простым шагам. Вот подробная инструкция по созданию квеста в Minecraft без использования модов:
Шаг 1: Создание мира и установка правил
1. Запустите Minecraft и создайте новый мир. Выберите «Одиночная игра», а затем нажмите кнопку «Создать новый мир».
2. Настройте мир, чтобы задать правила. Можно настроить режим выживания или творчества, день или ночь, сложность и т. д.
Шаг 2: Создание квеста
1. Начните создание квеста, выбрав одно задание, которое игрок должен выполнить.
2. Напишите задание в книге и переименуйте ее в название задания.
3. Создайте инструкцию по выполнению задания. Это может быть как подробное описание, так и набор картинок, которые показывают, что нужно сделать.
4. Спрятайте книгу в мире. Можно спрятать книгу в сундуке, на стойке для оружия или просто бросить на землю.
Шаг 3: Продолжение квеста
1. Когда игрок находит книгу с заданием, он должен выполнить его.
2. После выполнения задания он должен вернуться к точке начала и найти следующую книгу с заданием.
3. Продолжайте добавлять новые задания, пока не закончатся.
Некоторые дополнительные советы:
— Используйте командный блок, чтобы сделать больше возможностей для квестов. Например, можно создать командный блок, который выдаст игроку подсказку, когда он соберет определенное количество предметов.
— Используйте заранее созданные структуры в мире, чтобы добавить больше разнообразия в квесты. Например, можно сделать задание, которое проходит в заброшенном замке.
— Не забывайте сохранять мир во время создания квестов, чтобы не потерять все проделанные изменения.