Minecraft по взрослому, ч. 1

Это первый пост из цикла разработки Minecraft по взрослому. Начать я бы хотел из далека, с исторической справки, так сказать.

Многие элементы и подходы в разработке для Minecraft пришли к текущему виду благодаря лицензионному соглашению. Если у нас, в СНГ, многие плевать хотели на эту лицензию, то в других странах это не так.

Лицензионное соглашение запрещает изменение любого кода, написанного Mojang, но разрешает надстройки над ним (модификации). Более того, в соглашении сказано, что такие надстройки являются собственностью пользователя.

Такое лицензионное соглашение привело к появлению интересных способов модификации кода Mojang, без её нарушения. Подробно об этих способах рассказывать не буду, это интересная тема, которая заслуживает отдельного внимания.

Так же была сформирована культура плагинной архитектуры. Если Вы когда-то играли в Minecraft с модами, то прекрасно понимаете о чем речь. Каждый мод - отдельный jar. На серверной стороне все аналогично, но если на клиентской части плагинную архитектуру реализуют загрузчики модов (Forge, Fabric и т.п.), то на сервере этим занимается ядро, которое так же является надстройкой над официальным сервером Mojang (но так не всегда).

То что в СНГ плевать хотели на лицензионное соглашение - я не просто так упомянул. Существуют проекты, имеющие свой лаунчер и модифицированные клиенты игры. Это прямое нарушение лицензии, но существовать таким проектам это не мешает. Кроме того, по лицензионному соглашению, публичные сервера должны проводить аутентификацию игроков через систему Mojang. Проще говоря, должны проверять наличие лицензионной версии игры. Как понимаете, в реалиях СНГ многие (почти все) нарушают это правило.

Но культуру разработки формируют зарубежные игроки, а они, как правило, строго придерживаются лицензионного соглашения. По этому даже в СНГ разработка построена вокруг неприкосновенности кода Mojang.