image
Иллюстрация opensource.com

Часть исходного кода игры Minecraft: Java Edition была легально опубликована на GitHub под свободной лицензией корпорацией Microsoft.

Код был открыт под лицензией MIT и представляет собой Java-библиотеки Brigadier и DataFixerUpper. Они позволяют разбирать, отправлять и обрабатывать пользовательские команды, а также обрабатывать данные для новых версий игры.

Раньше основным способом увидеть этот код для энтузиастов была «декомпиляция» — конвертация байт-кода обратно в человеко-читаемый код на Java. Многим хватало и этого, но, конечно, «исходные тексты», полученные таким путем, были несколько труднее для восприятия чем оригинальные исходники.

В дальнейшем планируется «освобождение» других универсальных подсистем Minecraft, которые могут оказаться полезными для разработки других игр и упрощения труда мод-мейкеров. Вероятно, на следующем этапе будут открыты исходные тексты полностью переписанного движка рендеринга Blaze3D, планируемого для релиза в Minecraft версии 1.14.

Brigadier

image

Brigadier представляет собой инструмент для парсинга и диспетчеризации команд. По словам разработчиков, библиотека использует данные пользовательского ввода в Minecraft, и превращает их в функцию, которую игра будет выполнять. С точки зрения пользователя компонент выглядит как стандартная консоль с подсветкой синтаксиса команд и автодополнением ввода.

DataFixerUpper

image

DataFixerUpper включает инструменты для инкрементальной сборки, слияния и оптимизации операций преобразования данных, необходимые для переноса существующих игровых данных в новые версии Minecraft.

Комментарии (55)


  1. Cheater
    08.10.2018 16:23
    +1

    Краткое содержание: мы открыли крохотный кусок Minecraft (два внутренних инструмента под Java edition для крайне узкой категории пользователей) под свободной лицензией. Может быть откроем другие куски, но это не точно. Microsoft loves open source, оставайтесь с нами.


    1. DoctorMoriarty
      08.10.2018 17:00
      +13

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


      1. Keyten
        08.10.2018 18:02
        -8

        Да нет, дело в том, что открытие кода тут не ради опенсорса, а чтобы сделать модмейкерам удобнее, иными словами, с прямой выгодой для майкрософт, а не ради заявленного Microsoft loves open source.


        1. dartraiden
          08.10.2018 19:04
          +5

          с прямой выгодой для майкрософт
          То есть, ситуация win-win. Но всё равно есть недовольные.

          Любовь любовью, но главная цель Microsoft — извлечение прибыли просто по определению (иначе, она была бы некоммерческой организацией).


          1. Keyten
            08.10.2018 19:48
            -4

            Вероятно, потому что ситуация не win-win. Опенсорс-коммьюнити не получает с этого примерно ничего, а Microsoft кучу коммерческой выгоды.

            Замечательно для Ms? Замечательно. Мне не мешает? Не мешает. Правильно называть это «Microsoft loves open source»? Нет, неправильно. Впрочем, я вряд ли об этом скажу лучше, чем
            habr.com/post/425685/#comment_19206659 и
            habr.com/post/425685/#comment_19206919.


            1. Yuuri
              08.10.2018 22:46
              +2

              Как игрок, очень много залипавший в Minecraft еще с альфы (а это конец 2010), особенно с индустриальными мод-паками, возьму ответственность заявить, что решение Microsoft пусть и маленький шаг для опенсорса, но огромный – для моддинг-сообщества. Закрытость (и прямо скажем, кривость) игры давно была головной болью для моддеров, вынужденных изобретать плохо совместимые костыли; а об открытии какого-то API хоть и ходили слухи еще при Mojang, но воз был там вот до нынешнего момента.


              1. Softer
                09.10.2018 01:22

                Абсолютно соглашусь с точки зрения модо-/плагина-дела. Меня вот еще что интересует — а как же история с DMCA+Bukkit? Где «loves open source»?


      1. Nexon
        08.10.2018 21:40

        Вообще-то да, это ожидалось еще несколько лет назад, еще до анонса Modding API, который так и не вышел.
        С одной стороны, Notch и Jeb всегда были за модеров, а с другой, они мечтали об особняке в калифорнии.


    1. daggert
      08.10.2018 17:17
      +12

      Не открывают — сволочи против опенсурса.
      Открывают мало — сволочи мало любят опенсурс.
      Откроют полностью — Да кому нужны исходники этой старой игры?

      Я вам напомню что игра была разработана фирмой mojang, которая и не собиралась открывать ее исходный код, затягивала с нововведениями и была очень грустна в оптимизации. Откроют — будет хорошо. Не откроют — у вас кусок мяса отняли? Вы и сообщество что-то потеряли? Или опенсурс что-то приобрел от открытия хотя-бы части подкапотной логики? Может злые майки закрыли код какой-либо лицензией запрещающей его использование? Подумайте о том, что теперь молодой программист может зайти на гитхаб, глянуть в код и не го*кодить свой велосипед. Шаг здравый. Почему он выглядит как маленький шажок — не вы ни я не знаем.

      PS: В исходной новости упоминается btw не «может быть откроем» а «The Java team will be opening up more libraries soon», что, насколько мне изменяет память, означает однозначность.


      1. Cheater
        08.10.2018 17:52
        -6

        Мне ни жарко ни холодно от открытия или не открытия исходников этой игры.


        Но я против лицемерия. МС на каждом углу пиарит это loves open source, причём в качестве примеров часто приводят объедки с барского стола вроде этого, либо вложения в open source с прямой выгодой (hyper-v). Открыть две с половиной либы не стоит вообще ничего (равно как ничего не стоит написать в бложек "мы собираемся открыть XXX"). Зато какой инфоповод. "Код для молодых разработчиков" это вообще смешно, примеров хорошего кода сотни по всему интернету, а парсеров и преобразователей данных вообще пруд пруди.


        Да, я предвзято отношусь к заявлениям МС об открытии кода и это совершенно нормально. К другой компании мб относился бы более нейтрально, но в адрес МС, извините, применяю презумпцию виновности, тк она себя дискредитировала. Открытие куска игры — вероятно, PR-ход, пока не МС не подтвердят обратное (например не откроют всю игру под свободной лицензией и разрешат коммерческое использование).


        1. DoctorMoriarty
          08.10.2018 17:59
          +2

          На самом деле "loves open source" никак не противоречит с "вложения в open source с прямой выгодой". Open source как самоцель было бы некой псевдорелигией. А вот open source как средство — это очень даже практично. Кстати, вы случайно «free soft» в изводе от адептов GNU/FOSS с «open source» не путаете ли? К слову — приверженцем «free» Microsoft никогда и не была, и было бы очень странно, если бы вдруг объявила о таковой приверженности, так что дискредитации-то никакой и нет.

          не откроют всю игру под свободной лицензией

          — ни разу не несут такого морального обязательства, т.к. публичной оферты на тему «непременно целиком весь продукт откроем!» не было, а заявления «loves open source» такой офертой считаться не могут.


          1. rkfg
            08.10.2018 19:20
            -1

            Ну вообще-то


            заявления «loves open source»

            как раз и являются «моральным обязательством». Не юридическим, разумеется, но моральным — вполне. Поэтому лицемерие тут очевидно. Любовь — это именно бескорыстное такое стремление, чтобы отдавать и не требовать взамен, но у них что-то не очень действия согласуются со словами. Отдают не особо нужный кусочек или нечто сугубо по расчёту. Как по мне, это ни фига любовью назвать нельзя. Претензии же чисто к риторике, а не к тому, что они что-то там обещают или нарушают.


            1. DoctorMoriarty
              08.10.2018 19:57
              +2

              Любовь — это именно бескорыстное такое стремление, чтобы отдавать и не требовать взамен

              Хм. Задумался, что тогда может означать «Мы любим пиццу!»…


              1. rkfg
                08.10.2018 19:59

                Может значить, что они любят её есть или готовить. В случае с MS, в принципе, оба варианта тоже подходят, но как-то для корпорации странно пиариться на том, что они потребляют, а не производят.


            1. Am0ralist
              08.10.2018 20:19
              +1

              Любовь — это именно бескорыстное такое стремление, чтобы отдавать и не требовать взамен

              Я люблю женщин, значит обязан всем подряд что-то отдавать бескорыстно? Например, продаваемые мной батоны? Или может обязан жениться на всех подряд не получая ничего взамен?
              Я люблю математику, физику, ютуб. То есть теперь я не могу, оказывается, их любить, если не отдаю им что-то бескорыстно?
              Вы как-то присваиваете словам сугубо свои смыслы и из этого строите какие-то выводы, причем требуя, чтоб вест мир поступал согласно вашему мнению на мораль.


              1. rkfg
                08.10.2018 20:39
                -3

                Ну так вы не транснациональная корпорация, с вас и спрос другой. Quod licet, что называется. Одно дело рассказывать о своих увлечениях в кругу друзей, другое — делать громкие заявления на весь мир, которые идут вразрез со всей предыдущей историей (очень проприетарной, в случае MS). Это уже тянет на coming out, но увы, по факту чуда особо не произошло. И прошу, давайте без ad hominem.


                1. Am0ralist
                  08.10.2018 20:45
                  +1

                  Еще раз, вы вложили в понятие какой-то свой смысл и утверждаете, что именно он верный. С чего бы?
                  И вообще-то МС уже давно открывает то одно, то другое в опенсорс. К вопросу про историю МС.
                  А заявление о любви не означает брак и занятие любовью только с опенсурсом, далеко от этого. Они полюбили опенсурс и то одно, то другое стали туда выкладывать, вместо того, что бы закрывать и прятать.
                  Или тогда нужно требовать, что б все корпорации, которые пишут в опенсорс — открыли все свои коммерческие продукты под опенсуросм и с разрешением на коммерческое использование. А иначе они — лицемеры, которые используют опенсурс для своей выгоды.


                  1. rkfg
                    08.10.2018 20:54
                    -2

                    Да никто ничего не требует, никто ничего не утверждает, что вы прицепились? Я лишь высказываю своё мнение. Я не могу ничего требовать от MS, потому что кто я такой, чтобы. Просто на мой взгляд такие громкие заявление как любовь к опенсорсу и линуксу, которые вроде как делают MS добренькой и пушистой, на деле «несколько» не соответствуют духу этого посыла (хотя могут соответствовать букве). Мне это кажется лицемерным, если вам нет — ну хорошо, ничего от этого не изменится в любом случае.


                    По-моему, гугл и фейсбук сделали для FOSS в целом на порядки больше, причём, никак этим не бравируя. Они делают своё дело и выкладывают реально полезный и переиспользуемый код, который потом долго и счастливо живёт во многих других проектах. А MS всё делает с оглядкой, лишь бы своего не упустить да лишнего не отдать. Это мои лично оценочные суждения, не более, но они основаны хотя бы на истории странных лицензий, которые были в ходу на их опенсорсе поначалу. Хорошо, что это постепенно меняется, но у меня лично ощущение, что MS не до конца понимает смысл опенсорса и FOSS. Он не про «отдавать даром», а про «делать вместе». Если кусок кода не особо полезен или интересен, то он скорее попадает в первую категорию.


                    Можно резюмировать, что любовь бывает безответной, а вот над отношениями надо работать с обеих сторон.


                    1. DoctorMoriarty
                      08.10.2018 21:58
                      +2

                      1) FOSS != Open Source, это лишь подмножество.
                      2) Open Source != «добренький и пушистый», проприетарный и коммерческий != «злобненький и чешуйчатый», давайте всё же без левацкого новояза и огульного примешивания этических оценок на идеологической основе к формам разработки и собственности, ОК?


                      1. rkfg
                        08.10.2018 23:24

                        1) Безусловно, но раз лицензия MIT, то это уже FOSS.
                        2) Я не левак (скорее, центрист с правым уклоном), мне просто нравится FOSS. Не приравниваю проприетарщиков к злодеям, к MS достаточно было и есть претензий, не связанных с лицензией на их ПО. Мне кажется, такое движение в сторону опенсорса и линукса не может не быть пиар-акцией, только и всего.


                    1. KvanTTT
                      10.10.2018 01:54

                      гугл и фейсбук сделали для FOSS в целом на порядки больше, причём, никак этим не бравируя

                      Правда, на порядки, т.е. в 10, 100 раз больше? А подтвердить слова как-нибудь сможете? VSCode — 60К звезд, 8К форков; TypeScript — 40К звезд, 5.7К форков; .NET — 15К звезд, 4.3К форков. Этого недостаточно?


                      1. ExplosiveZ
                        10.10.2018 10:35

                        Мериться звёздами и форками как-то некрасиво.
                        Google: Protobuf, kubernetes, chromium, noto fonts, tensorflow, android, tesseract ocr.
                        Facebook: btrfs, cgroup2, react, react native, katran, pytorch
                        И это только то, о чём я знаю.


                        1. KvanTTT
                          10.10.2018 15:44

                          Ммм, ну тогда приведите объективный и осязаемый критерий, по которому можно меряться. Помимо звезд и форков, это успешные проекты, которыми пользуются многие разработчики. Так и я привел примеры небольшого количества проектов, а знаю я больше. И есть те, о которых не знаю.


              1. Murat1992
                09.10.2018 08:35

                Скорее, это как сказать «Я люблю спорт», но делать зарядку раз в неделю.

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


        1. dartraiden
          08.10.2018 19:11
          +1

          [sarcasm] Да и Rockstar тоже какие негодяи, могли бы открыть исходники GTA Online и разрешить коммерческое использование, а они вместо этого бабло рубят, уже аж миллиард долларов с микротранзакций получили.

          Не будет коммерческая компания рубить сук, на котором сидит. Как только их любовь к опенсорсу начнёт вредить доходам, сразу возникнут вопросы у акционеров.


        1. Am0ralist
          08.10.2018 20:12
          +1

          Лицемерите здесь вы.
          Они вполне могли данный код открыть исключительно для ознакомления. Или для использования в проектах с майнкрафтом исключительно. Скажете, нельзя подобные ограничения в лицензию код добавить?
          Они же выложили, как понимаю, в виде опенсурса.
          И мигом в тему набежали хейтеры, которые начинают требовать открывать всё подряд и в намного больших объемах, аргументируя, что без этого поступки типа лицемерные.
          Нет, это у вас лицемерие головного мозга, когда вы считаете, что кто-то вам или кому-то что-то должен на основании фразы про любовь к опенсурсу. А уж требования открывать в опенсурс всю игру и разрешать коммерческое использование — это просто уже опенсурсец головного мозга какой-то.


          1. Cheater
            08.10.2018 21:51

            Во-первых, не надо хамить.

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


            1. Solexid
              09.10.2018 07:08

              Не посмотрите. Судя по ващему поведению, вам глубоко плевать на опенсурс, вы просто ищите причину чтобы сказать — не очень то и надо, не очень то и хотелось.


              1. Cheater
                09.10.2018 12:59

                Мимо. Пользуюсь почти исключительно СПО, делаю пожертвования организациям, связанным с СПО, коммичу в открытые проекты.

                Насмотрелся уже на корпорации, выкладывающие в опенсорс говнокод на своих условиях по остаточному принципу.


        1. ftaru
          10.10.2018 12:42

          а мне лично нравится вот этот пассаж: «откроют всю игру под свободной лицензией и разрешат коммерческое использование» )) именно это нынче называется «предпринимательской жилкой»?)


      1. Jeditobe Автор
        08.10.2018 20:05

        не «может быть откроем» а «The Java team will be opening up more libraries soon»

        До тех пор, пока они реально это не сделают — это будет просто обещание. Кроме того, в моей интерпретации «может быть» относилось к тому, что может быть следующей библиотекой откроют Blaze3D, а может быть и не Blaze3D. Они думают.


      1. DrParanoia
        09.10.2018 15:23

        Скорее всего, просто приводят код в порядок. Мало каких костылей там осталось ещё со старых времён, вот и наводят марафет. Причешут остальной код и откроют на всеобщее обозрение.

        Как человек, который много играл/играет в майн под модами, эти «шажки» дают надежду на то, что когда-нибудь майн с модами не будет загружаться по 10 минут, конфликтовать с шейдерами и неоптимально использовать ресурсы системы…


  1. fatronix
    08.10.2018 17:50

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

    P.S. daggert, извиняюсь, промахнулся веткой.


    1. daggert
      08.10.2018 19:55
      +1

      Нотч много чего говорил, но сама mojang этого официально не заявляла. Кроме того Маркус, после определенного времени, уже явно устал от игры и ее разработки. Ну и плюсом мы не знаем почему исходники нельзя открыть в лоб. Мое мнение — много кода принадлежат разным людям, мб компаниям и со всеми надо согласовать, проще переписать и открыть так. По крайней мере будущий 3д рендерер они обещают открыть.


      1. ExplosiveZ
        08.10.2018 20:04

        Как я знаю, mojang и minecraft принадлежали только нотчу, никому более. Он мог делать с игрой всё, что пожелает.


        1. daggert
          08.10.2018 21:08

          Не совсем. После организации Mojang AB Маркус не был ее CEO. На начальных этапах — да, но как только продажи повалили (версия где ввели ад вроде) ему пришлось уже быть частью большой компании, идейным вдохновителем, программистом и еще много кем, но не CEO.

          PS: простите что не могу быстрей отвечать


          1. metalim
            09.10.2018 08:37

            Не "пришлось быть", а "Нотч с Джейкобом Порсером наняли Карла Маннеха руководить компанией, чтобы не возиться с управлением". За долю в компании. Нанятым позднее доля уже не досталась.


            1. daggert
              09.10.2018 09:53

              Вы абсолютно правы, я не так подобрал слово.


      1. metalim
        09.10.2018 08:20
        +1

        Открыть "в лоб" нельзя потому, что тогда то, что код Майнкрафта лютое г**но, какого свет не видывал, станет понятно всем, а не только модерам. Взять хотя бы их возню с генерацией эмеральда в прежних версиях. Плохая реклама "хорошего" продукта.


  1. APXEOLOG
    08.10.2018 18:59

    Я так понимаю эти модули к игре имеют отношение примерно никакое (парсер команд из чата и вообще какая-то тулза для миграции). Неужели открывать больше нечего?


    1. Jeditobe Автор
      08.10.2018 19:48
      +1

      Имеют, но вспомогательное.

      На очереди графический движок.


      1. DrParanoia
        09.10.2018 15:25

        Вот только огорчает то, что новый движок всё так же использует OpenGL…


        1. Softer
          09.10.2018 16:23

          А что тут плохого? Разве что Vulkan…


  1. Skar404
    09.10.2018 00:41

    Давно разрабатывал несколько небольшие моды и даже занимался изменением самого кода Minecraft и были декомпелмрованныи и деобфусцирлванные исходники Minecraft и не помню что были с этим проблемы. (И они кстати были даже с комментариями Нотча)


    Я не уверен но мне кажется а после покупки Majong большая часть модеров отказались от написания модов из-за усложнения в их написании. (Хотя думаю нужен комментарий от более опытные модеров)


    Но это хороша новость, меня всегда уделяло что Majong не поддерживало сообщество модеров и утилит для модификации Minecraft.


  1. scronheim
    09.10.2018 06:50

    а шутка про вариант ответа «это так себе, но «с паршивой овцы хоть шерсти блок»» уже была?


  1. DelphiCowboy
    09.10.2018 07:48

    То что Microsoft в своё время открыла исходники MechWarrior позволяет иметь в этой игре меха Unseen запрещённые копирастами.
    image


    1. Jeditobe Автор
      09.10.2018 10:28

      Для тех, кто был не в курсе, как и я, ссылка:
      ahum.club/unseen-battletech


  1. Madeas
    09.10.2018 10:46
    +1

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

    Всего понемногу и вперде в будущее) Хорошая игра, единственное что осталось из игр после 10+ лет ммо и что еще тянет мой ноут))


  1. roman901
    09.10.2018 11:09

    Учитывая, что возгласы «мы всё переписали!» были слышны от них начиная с 1.8 и по 1.13 (сейчас), у меня ОЧЕНЬ плохое предчувствие.

    Игра течёт. Да, они привели в порядок архитектуру внешне, но внутри там всё тот же ад, усложненный динамическими билдерами, NBT-парсерами и прочей шелухой, из-за которой игра потребляет-высвободжает около 200-300мб\с… А в мультиплеере еще хуже. Вот, к примеру, график потребления памяти практически ванильного (Spigot с парой плагинов) сервера на 1.13:
    image

    В итоге после 20-30 игроков серверу становится совсем плохо и TPS (количество тиков в секунду, должно быть 20, по 50мс на тик) стремится к 15, а после и к 10.

    Большие надежды подаёт Bedrock-версия, которая на C++, но моды… Они решили туда внести своё «изобретение» — Datapacks, это по сути JSON-файлики с описанием ресурсов. И команды, которые исполняются каждый тик. По сравнению с настоящими модами (IndustrialCraft, Botania, Forestry, Twilight Forest) — это просто медленная игрушка, не пригодная для реального использования, так, побаловаться разве.

    Им бы архитектора нанять, который бы сделал сервер наконец многопоточным (потому что пока приходится пилить всё самому, к сожалению, вбухивая кучу человекочасов на то, что по-идее должно быть по умолчанию), не таким раздутым и быстрым.


    1. ElegantBoomerang
      09.10.2018 12:58

      Поэтому на JVM живём всякими Optifine и другими оптизизирующими внутренности модами. Я б на месте Mojang уже предложил бы авторам этих модов контрактные деньги на внедрение в mainstream, все были в плюсе.


      1. Softer
        09.10.2018 13:10

        OF — это клиент, там проще — он не работает 24/7, а вот сервер…


        1. daggert
          09.10.2018 13:20

          да с клиентом тоже грусть-тоска-песков. У меня на i7 4770, 16GB RAM и GF780 игра умудрялась тормозить до уровня 10FPS в одиночной игре с 3-4 крипами на экране. В чем проблема я не знаю, когда играю в последнего хитмена таких глюков нет. Думаю что java и кривой код (:


          1. roman901
            09.10.2018 13:35

            Дело не в Java, дело в кривых руках создателей Minecraft (: (и дело не в Нотче, при нём такого не было)


  1. vladtsvs
    11.10.2018 10:55

    Уже существует полностью опенсорсный Minetest, с документированным Lua-апи, с открытым исходным кодом и куда менее требовательный к ресурсам компа.


    1. Garbus
      11.10.2018 19:49

      Да как то графика у него скудновата, и контента не завезли. Во всяком случае на текущий момент. Понятно что ожидать от некоммерческого проекта чудес сложно, но художественная часть так и просит добавки.
      P.S. Давненько поглядываю, но как то на невооруженный взгляд все редко шевелится.