В данной статье я хотел бы проанализировать все, что на данный момент известно про Minecraft Script Engine (ранее упоминавшийся во многих ресурсах как Script API/Scripting API) и составить некое полноценное виденье того, что это и для чего может быть применено. Сразу оговорю, что данная статья написана 25.10.2018 и может содержать неактуальные на момент прочтения сведения. Также на данный момент у меня нет возможности запускать и тестировать приведенные ниже примеры, поскольку возможности доступны только в закрытой бете игры.

Итак, тщательно ознакомившись с документацией по Minecraft Script Engine (и даже переведя большую её часть) и примерами, я смог сложить для себя определенное мнение о данной платформе. Попробую описать это в срезе плюсов/минусов по сравнению с InnerCore/BlockLauncher.

Итак, несомненные преимущества:

  • Отсутствие необходимости устанавливать дополнительное программное обеспечение
  • Официальная поддержка от Mojang и, вероятно, частые обновления
  • Поддержка клиент-серверной архитектуры заложена в самом приложении, полное разделение клиентской и серверной логики
  • Используется уже известный нам язык программирования JavaScript и его формат хранения данных — JSON.
  • Возможность полноценной отладки с помощью отладчика JIT Debug (Visual Studio).
  • Для создания интерфейсов используется формат WEB-страниц (HTML5), что позволяет с легкостью создавать окна и достаточно просто с ними работать.
  • Возможна прямая работа с пакетами поведений, что несомненно является плюсом для тех, кто умеет с ними работать.
  • Сохранена архитектура пакетов поведений, многие функции принимают аргументы в том же формате, в котором они используются в JSON-файлах поведений.
  • Сами скрипты являются частью пакетов поведений, а значит, их можно упаковывать в архивы с пакетами ресурсов и картами.

Но, у каждой медали есть две стороны. К сожалению, на данном этапе недостатки для меня оказались намного существеннее. И тут пойдут примеры кода, в качестве доказательств.

Как работает графика Minecraft? Движок майнкрафта

Читайте также:  Что делает alt f4 в Майнкрафте

  • Файловая система. Несомненно лучше, чем один файл ModPE (что решается с помощью системы сборки NIDE), но далека от гибкости и мощности файловой системы InnerCore. Все скрипты Minecraft Script Engine являются независимыми исполняемыми файлами и коммуницируют только на уровне событий.
  • Архитектура. В ванильном варианте архитектура скрипта очень ограниченна контекстом вызова функций. Нужно либо объявлять все функции в пространстве имен системы (см. документацию), либо передавать во все функции, использующие API Script Engine’a, контекст их выполнения. Яркий пример:

var system = client.registerSystem(0,0); system.

initialize = function() { // Обратите внимание на поддержку стрелочных функций this.listenForEvent(«minecraft:client_entered_world», (eventData) => this.

playerJoin()); // Альтернативный вариант — передать контекст // в качестве параметра обычной функции this.listenForEvent(«minecraft:client_entered_world», (eventData) => playerJoin(this)); } // Функции приходится объявлять так system.playerJoin = function() { this.broadcastEvent(«minecraft:display_chat_event «, «Hello, world!»); } // Альтернативный вариант — передать контекст в качестве параметра function playerJoin(ctx){ ctx.broadcastEvent(«minecraft:display_chat_event «, «Hello, world!»); }

var system = client.registerSystem(0,0); system.initialize = function() < // Обратите внимание на поддержку стрелочных функций this.listenForEvent(«minecraft:client_entered_world», (eventData) =>this.playerJoin()); // Альтернативный вариант — передать контекст // в качестве параметра обычной функции this.listenForEvent(«minecraft:client_entered_world», (eventData) => playerJoin(this)); > // Функции приходится объявлять так system.playerJoin = function() < this.broadcastEvent(«minecraft:display_chat_event «, «Hello, world!»); >// Альтернативный вариант — передать контекст в качестве параметра function playerJoin(ctx)

  • Использование команд командного блока в качестве команд. Разбирая примеры, приведенные в документации, я часто наталкивался на подобные строки:

Вроде бы хорошо, в чем проблема? А их даже 2, а именно: читабельность (этот код сложно назвать интуитивно понятным) и скорость выполнения. Поскольку парсер команд — штука относительно медленная, вызывать подобные методы достаточно часто нельзя в принципе — слишком высокая нагрузка на клиент/сервер, так как команда будет передана из Minecraft Script Engine парсеру команд командного блока, а уже он её превратит в набор необходимых аргументов и вызовет нужные функции. Процесс, мягко говоря, медленный. Хотя, с другой стороны, гибкость этого метода все равно остается на высоте.

  • Повторюсь, но отсутствие читабельности кода. Для того, чтобы получить всех сущностей в мире, например, нужно выполнить следующий код:
Читайте также:  Программирование в minecraft отзывы

var view = this.registerView(); let entities = this.getEntitiesFromView(customView);

var view = this.registerView(); let entities = this.getEntitiesFromView(customView);

Согласитесь, не очень очевидно, о чем речь?)

  • Отсутствие доступа к внешнему миру. В отличии от Inner Core & BlockLauncher, разработчики Minecraft Script Engine ни за что не предоставят доступ к Java (безопасность для них прежде всего). Тем не менее, запуск чего-либо «в коробке» сразу урезает возможности АПИ в разы.
  • Наконец, полная недоделанность. Я все-таки отнесу это к минусам, хотя и понимаю, что большая часть функционала будет ждать нас впереди.

Моё личное мнение — не стоит возлагать больших надежд на Minecraft Script Engine. В корне неправильная архитектура и ограничения, связанные с безопасностью и скоростью работы, сделают это АПИ лишь очередным инструментом для создания карт либо отдельных модов, слабо интегрируемых друг с другом, следующей ступенью после пакетов поведений и текстур.

Что будет на самом деле — время покажет. Ваши предположения жду в комментариях)

Источник: mineprogramming.org

Подвинься, Unreal Engine 5. Minecraft получила безумно реалистичный набор текстур

На сайте NexusMod появилась модификация для Minecraft, благодаря которой некоторые блоки в игре получают невероятно реалистичные текстуры. Мод так и называется «Безумный Реализм». Insane Realism является духовным наследником мода RealismExtreme. Его задача — максимально изменить графику в Minecraft. Всего было переработано 72 блока.

Скачать модификацию можно по ссылке . К сожалению, данный мод несовместим с RTX версией Minecraft, поэтому упасть в обморок от совсем реалистичной графики все же не получится.

Источник: gameguru.ru

⚡️ Подписка Model Engine R3.1.6

Model Engine

Этот ресурс является премиальным и требует статус Подписка

ModelEngineBanner.png

Model Engine — плагин, который позволяет каждому создавать, казалось бы, модифицированные модели, не касаясь каких-либо конфигураций.

Читайте также:  Правила чата в Майнкрафте

Немного подробней:​

Model Engine — это плагин Minecraft, который преодолевает барьер моделирования сущностей и позволяет создавать модели, подобные модам, анимировать их и предоставлять полный контроль над их анимацией. Возможно, вы слышали о подключаемом модуле ModelAPI, подключаемом модуле моделирования, который требует от вас базовых знаний о модулях Java и кодирования. Модель двигателя, однако,
полностью убрали необходимость что-либо кодировать. Другими словами, вы можете создавать что угодно, не зная java!

Особенности плагина Model Engine:​

  • Безупречно работает с BlockBench. Не требует знаний о настройке, написании сценариев или кодировании.
  • Автоматическая генерация пакетов ресурсов. Просто принимай и играй.
  • Полный контроль анимации. Плавная анимация и переходы.
  • Пользовательский хитбокс. Удар, движение, столкновение — все в одном.
  • Повреждение оттенка. Отображение красных моделей при повреждении.
  • Никаких модов не требуется.
  • Поддержка MythicMobs.

Команды на плагин Model Engine:​

Есть всего несколько команд.

/meg reload — Перезагружает конфигурацию и модели.

/meg reload config — Перезагрузить только конфигурацию.

/meg reload models — регенерировать модели.

/meg trait — Интеграция с Citizens.

/meg disguise — Замаскировать себя под модель.

/meg undisguise — Снимите маску.

Права плагина Model Engine:​

modelengine.command.reload — Разрешите игрокам перезагрузить конфигурацию и модели.

modelengine.command.trait — Разрешить игрокам настраивать черту Citizens NPC.

modelengine.command.disguise — Позвольте игрокам замаскироваться под модель.

modelengine.command.undisguise — Позвольте игрокам снять маску.

Как установить плагин Model Engine?​

  1. Скачайте плагин.
  2. Возьмите скачанный файл и перенесите в папку plugins вашего сервера.
  3. Перезапустите сервер.
  4. Готово.

Автор McDev Скачивания 312 Просмотры 4,082 Первый выпуск 28 Июл 2021 Обновление 2 Апр 2023 Оценка 0.00 звёзд 0 оценок

Источник: forum-minecraft.ru