2014-11-21 2 views
0

Я хочу сделать мою игру на Java отличной. Я думал о Lua, но мне не очень нравится эта идея. В принципе, я просто хочу сделать API для своей игры, который будет содержать некоторые методы, которые будут доступны для людей, создающих мод. После того, как я создаю мод, я хочу как-то скомпилировать его в файл jar. Самая сложная часть - загрузить файл (mod) в качестве мод. Я никогда не делал ничего подобного, но я создал несколько модов для игры Minecraft с использованием Minecraft Forge API, поэтому я знаю, что это возможно.Сделайте мою игру модной

+0

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

+0

Еще один миниатюрный кубический парень nah ... – RussianVodka

+0

Конечно. :) Но я не делаю игру Minecraft. :) Это просто пример. – Samuel

ответ

1

Я хочу сделать мою версию Java отличной.

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

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

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

Кроме того, создание кода с открытым исходным кодом делает его намного проще для кодеков мод для кодирования и отладки своих модов. Если они могут увидеть основной код, они могут выяснить, как им нужно писать свой код для взаимодействия с ним.

+0

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

+0

@Samuel - Это не решение. Но я думаю, что это ** часть ** решения. –

Смежные вопросы