Как написать свой первый мод для Minetest

Моды (сокращение от модификации или модули) — создаваемые пользователями модификации в игре, способные изменять геймплей.

Некоторые крупные моды могут добавлять контент в игру, но небольшие моды могут добавлять опции настроек, или оптимизировать скорость, геймплей, графику .

Структура Модов

Общим местом для установки модов является $path_user/mods/. Это minetest-install-directory/mods/ в GNU/ с RUN_IN_PLACE=TRUE и в официальной , а также ~/.minetest/mods/ — в установленных глобально версиях Minetest.

Каждый мод будет иметь свою собственную папку. Обычно установка мода означает копирование кода мода в эту папку. Вот так, например, будет выглядеть структура папок с двумя модами mod_1 и mod_2:

├── worlds
│    mods/
│    ├── mod_1/
│    │   ├── depends.txt
│    │   ├── init.
│    │   ├── mod.conf
│    │   ├── functions.
│    │   ├── README.txt
│    │   ├── textures/
│    │   │   ├── top.png
│    │   │   └── ...
│    │   ├── sounds/
│    │   │   ├── sound files
│    │   │   └── ... 
│    │   └── models/
│    │       ├── mod.x
│    │       └── ...
│    └── mod_2
│    │   ├── depends.txt
│    │   ├── init.
│    │   ├── mod.conf
│    │   ├── functions.
│    │   ├── README.txt
│    │   ├── textures/
│    │   │   ├── top.png
│    │   │   └── ...
│    │   ├── sounds/
│    │   │   ├── sound files
│    │   │   └── ... 
│    │   └── models/
│    │       ├── mod.x
│    │       └── ...
│
├── client
│
├── minetest.conf
│
│

Как видите, у mod_1 есть несколько папок и файлов.

  1. init.lua — это единственный ОБЯЗАТЕЛЬНЫЙ файл. Он запустится, как только игра загрузится.
  2. mod.conf — Не обязательно, но хорошо если он есть. Это конфигурационный файл мода.
  3. depens.txt — Для совместимости с версиями 0.4.x, вы должны упомянуть другие моды, от которых зависит ваш мод. Это просто список. Для новых версий этот список является частью файла mod.conf
  4. functions.lua — Функции
  5. textures — Папка текстур с изображениями — если вы хотите, чтобы изображения были частью вашей
  6. models — папка моделей
  7. sounds — папка со звуковыми файлами

Ваш первый мод

Прежде чем начать писать свой первый мод, пожалуйста, знайте, что все моды написаны на скриптовом языке Lua. Его очень легко изучить и начать программировать. Если вы уже умеете программировать, то можете начать с этого 15-минутного урока.

Итак, давайте приступим к написанию нашего первого мода, который добавит в игру новый тип блока.

Мы создадим новый мод под названием «thej», поэтому начнем с создания папки с названием «thej» в папке «mods», то есть для это папка ~ /.minetest/mods/thej, а затем создадим файл mod.conf для определения конфигурации нашего мода. В этом файле содержится имя мода, описание и зависимости. Наш модуль зависит только от мода default. Таким образом, содержимое файла mod.conf будет выглядеть так:

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

Здесь, как вы можете видеть, мы определяем объект для мода thej с именем squares. Затем мы определяем изображения для плиток. Вот и все, блок готов к использованию.

minetest_block.png

minetest_block.png

Но подождите, мы использовали только minetest_block.png в нашем наборе плиток. Блок имеет шесть сторон, и, следовательно, нужно определить шесть изображений для каждой из сторон (порядок показан ниже).

Для простоты мы использовали одно и то же изображение для всех сторон. В этом примере изображение создавалось с помощью онлайн-инструмента piskelapp. Сначала была создана пиксельная графика 16 × 16, а затем экспортировали её в изображение размером 100px X 100px формата png. Затем этот файл был помещён в папку textures. На данный момент структура папок выглядит следующим образом:

$:~/.minetest/mods/thej$ tree
.
├── init.lua
├── mod.conf
└── textures
    └── minetest_block.png

Теперь наш мод готов к использованию. Конечно, вы можете сделать намного больше, но данная статья — это всего лишь введение с практическими рекомендациями.

Как включите и начать использовать ваш мод

Поскольку ваш мод уже находится в ~ /.minetest/mods, вам не нужно ничего делать для его загрузки. Так что запустите minteset и затем перейдите в настройки мира, в котором вы собираетесь включить мод.

Выберите мир и нажмите «Настроить»
Выберите мир и нажмите «Настроить»
Включить ваш мод - thej
Включить ваш мод — thej

Теперь начните игру:

В поиске инвентаря напишите thej и добавьте найденный блок
В поиске инвентаря напишите thej и добавьте найденный блок
Начните использовать свой новый блок - постройте из-него что-нибудь
Начните использовать свой новый блок — постройте из-него что-нибудь
Привет из Minetest
Привет из Minetest!

Всё очень просто, не так ли?

Также вы можете воспользоваться онлайн инструментом-конструктором для создания простых модов для Minetest по этой ссылке.

Модификация модов

Большинство модов распространяется по лицензии MIT, следовательно при желании вы можете с лёгкостью вносить изменения в их код и создавать на их основе свои моды.

Вот ниже код скрипта на языке Lua, описывающего монстра stone_monster.lua из мода mobs_monster (этот мод добавляет в Minetest новых мобов-монстров).

Как видите, «поведение» этого монстра можно менять в широких пределах, внося небольшие корректировки в скрипт.

Возможно, вам также будет интересно это , которое даёт начальное представление о создании модов для Minetest:

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

По материалам: thejeshgn.com

Читайте также

 

Posted on 29.09.2019

Оставить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *