Часть кода игры Minecraft была передана в Open Source корпорацией Microsoft

    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.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    То, как Microsoft и приобретенные этой корпорацией компании делают вклад в Open Source…
    Поделиться публикацией
    Комментарии 59
      0
      Краткое содержание: мы открыли крохотный кусок Minecraft (два внутренних инструмента под Java edition для крайне узкой категории пользователей) под свободной лицензией. Может быть откроем другие куски, но это не точно. Microsoft loves open source, оставайтесь с нами.
        +23
        Вы так это сказали, как будто в этом есть что-то плохое и как будто только открытие всего-всего было бы единственно правильным.
          –11
          Да нет, дело в том, что открытие кода тут не ради опенсорса, а чтобы сделать модмейкерам удобнее, иными словами, с прямой выгодой для майкрософт, а не ради заявленного Microsoft loves open source.
            +11
            с прямой выгодой для майкрософт
            То есть, ситуация win-win. Но всё равно есть недовольные.

            Любовь любовью, но главная цель Microsoft — извлечение прибыли просто по определению (иначе, она была бы некоммерческой организацией).
              –4
              Вероятно, потому что ситуация не win-win. Опенсорс-коммьюнити не получает с этого примерно ничего, а Microsoft кучу коммерческой выгоды.

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

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

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

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

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

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

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

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


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


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

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

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

                  Ну вообще-то


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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

                                  0
                                  Мериться звёздами и форками как-то некрасиво.
                                  Google: Protobuf, kubernetes, chromium, noto fonts, tensorflow, android, tesseract ocr.
                                  Facebook: btrfs, cgroup2, react, react native, katran, pytorch
                                  И это только то, о чём я знаю.
                                    0
                                    Ммм, ну тогда приведите объективный и осязаемый критерий, по которому можно меряться. Помимо звезд и форков, это успешные проекты, которыми пользуются многие разработчики. Так и я привел примеры небольшого количества проектов, а знаю я больше. И есть те, о которых не знаю.
                            +1
                            Скорее, это как сказать «Я люблю спорт», но делать зарядку раз в неделю.

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

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

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

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

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

                                Насмотрелся уже на корпорации, выкладывающие в опенсорс говнокод на своих условиях по остаточному принципу.
                            0
                            а мне лично нравится вот этот пассаж: «откроют всю игру под свободной лицензией и разрешат коммерческое использование» )) именно это нынче называется «предпринимательской жилкой»?)
                            +1
                            не «может быть откроем» а «The Java team will be opening up more libraries soon»

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

                              Как человек, который много играл/играет в майн под модами, эти «шажки» дают надежду на то, что когда-нибудь майн с модами не будет загружаться по 10 минут, конфликтовать с шейдерами и неоптимально использовать ресурсы системы…
                          • НЛО прилетело и опубликовало эту надпись здесь
                              +1
                              Нотч много чего говорил, но сама mojang этого официально не заявляла. Кроме того Маркус, после определенного времени, уже явно устал от игры и ее разработки. Ну и плюсом мы не знаем почему исходники нельзя открыть в лоб. Мое мнение — много кода принадлежат разным людям, мб компаниям и со всеми надо согласовать, проще переписать и открыть так. По крайней мере будущий 3д рендерер они обещают открыть.
                                0
                                Как я знаю, mojang и minecraft принадлежали только нотчу, никому более. Он мог делать с игрой всё, что пожелает.
                                  0
                                  Не совсем. После организации Mojang AB Маркус не был ее CEO. На начальных этапах — да, но как только продажи повалили (версия где ввели ад вроде) ему пришлось уже быть частью большой компании, идейным вдохновителем, программистом и еще много кем, но не CEO.

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

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

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

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

                                0

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

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

                                  На очереди графический движок.
                                    0
                                    Вот только огорчает то, что новый движок всё так же использует OpenGL…
                                      0
                                      А что тут плохого? Разве что Vulkan…
                                  0

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


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


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

                                    +3
                                    а шутка про вариант ответа «это так себе, но «с паршивой овцы хоть шерсти блок»» уже была?
                                      0
                                      То что Microsoft в своё время открыла исходники MechWarrior позволяет иметь в этой игре меха Unseen запрещённые копирастами.
                                      image
                                      +2
                                      Опенсорс:
                                      для модмейкеров — это глоток свежей воды, открытие новых возможностей и свежих идей.
                                      для фанатов игры — шанс увидеть еще больше новых штук, придуманных этими модмейкерами.
                                      для мс — поиск талантливых программистов (а почему бы и нет).
                                      для самого майнкрафта — тоже вполне интересный путь развития, новые идеи, новые решения.
                                      для большинства игроков — это просто игра и способ общения.
                                      для большинства людей — это вообще что-то старое и не интересное.
                                      для разработчиков тех же пакетов текстур — новый геморрой, но и полет фантазии))

                                      Всего понемногу и вперде в будущее) Хорошая игра, единственное что осталось из игр после 10+ лет ммо и что еще тянет мой ноут))
                                        0
                                        Учитывая, что возгласы «мы всё переписали!» были слышны от них начиная с 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) — это просто медленная игрушка, не пригодная для реального использования, так, побаловаться разве.

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

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

                                            0
                                            OF — это клиент, там проще — он не работает 24/7, а вот сервер…
                                              0
                                              да с клиентом тоже грусть-тоска-песков. У меня на i7 4770, 16GB RAM и GF780 игра умудрялась тормозить до уровня 10FPS в одиночной игре с 3-4 крипами на экране. В чем проблема я не знаю, когда играю в последнего хитмена таких глюков нет. Думаю что java и кривой код (:
                                                0
                                                Дело не в Java, дело в кривых руках создателей Minecraft (: (и дело не в Нотче, при нём такого не было)
                                          0
                                          Уже существует полностью опенсорсный Minetest, с документированным Lua-апи, с открытым исходным кодом и куда менее требовательный к ресурсам компа.
                                            0
                                            Да как то графика у него скудновата, и контента не завезли. Во всяком случае на текущий момент. Понятно что ожидать от некоммерческого проекта чудес сложно, но художественная часть так и просит добавки.
                                            P.S. Давненько поглядываю, но как то на невооруженный взгляд все редко шевелится.
                                              0
                                              Согласен. Ну кроме некоммерческого проекта и чудес :)
                                                0
                                                Просто как-то выходит, что к популярному результату почти всегда находится покупатель. Или правообладатель игры послужившей идеей «прозревает» на конкурента.
                                                Тот же майнкрафт — отличное направление для разработчиков модов, но владельцы почему-то не пошли навстречу потенциальной аудитории.
                                                  0
                                                  Оригинальные владельцы, что не маловажно — не мешали. А вот после прихода мс внезапно закрыли на гитхабе bukkit и производные по DMCA.
                                              0
                                              Вот только он все равно умудряется подвисать, да и кому он нужен, если ничего не умеет толком.

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

                                            Самое читаемое