Иллюстрация opensource.com
Часть исходного кода игры Minecraft: Java Edition была легально опубликована на GitHub под свободной лицензией корпорацией Microsoft.
Код был открыт под лицензией MIT и представляет собой Java-библиотеки Brigadier и DataFixerUpper. Они позволяют разбирать, отправлять и обрабатывать пользовательские команды, а также обрабатывать данные для новых версий игры.
Раньше основным способом увидеть этот код для энтузиастов была «декомпиляция» — конвертация байт-кода обратно в человеко-читаемый код на Java. Многим хватало и этого, но, конечно, «исходные тексты», полученные таким путем, были несколько труднее для восприятия чем оригинальные исходники.
В дальнейшем планируется «освобождение» других универсальных подсистем Minecraft, которые могут оказаться полезными для разработки других игр и упрощения труда мод-мейкеров. Вероятно, на следующем этапе будут открыты исходные тексты полностью переписанного движка рендеринга Blaze3D, планируемого для релиза в Minecraft версии 1.14.
Brigadier
Brigadier представляет собой инструмент для парсинга и диспетчеризации команд. По словам разработчиков, библиотека использует данные пользовательского ввода в Minecraft, и превращает их в функцию, которую игра будет выполнять. С точки зрения пользователя компонент выглядит как стандартная консоль с подсветкой синтаксиса команд и автодополнением ввода.
DataFixerUpper
DataFixerUpper включает инструменты для инкрементальной сборки, слияния и оптимизации операций преобразования данных, необходимые для переноса существующих игровых данных в новые версии Minecraft.
Комментарии (55)
fatronix
08.10.2018 17:50Я вам напомню что игра была разработана фирмой mojang, которая и не собиралась открывать ее исходный код
Справедливости ради, Нотч собирался выпустить исходники, когда продажи начнут падать. Плюс ко всему исходники-таки выпустил Mojang, рассуждать о том, имели к этому отношение майки или нет — спекуляции.
P.S. daggert, извиняюсь, промахнулся веткой.daggert
08.10.2018 19:55+1Нотч много чего говорил, но сама mojang этого официально не заявляла. Кроме того Маркус, после определенного времени, уже явно устал от игры и ее разработки. Ну и плюсом мы не знаем почему исходники нельзя открыть в лоб. Мое мнение — много кода принадлежат разным людям, мб компаниям и со всеми надо согласовать, проще переписать и открыть так. По крайней мере будущий 3д рендерер они обещают открыть.
ExplosiveZ
08.10.2018 20:04Как я знаю, mojang и minecraft принадлежали только нотчу, никому более. Он мог делать с игрой всё, что пожелает.
daggert
08.10.2018 21:08Не совсем. После организации Mojang AB Маркус не был ее CEO. На начальных этапах — да, но как только продажи повалили (версия где ввели ад вроде) ему пришлось уже быть частью большой компании, идейным вдохновителем, программистом и еще много кем, но не CEO.
PS: простите что не могу быстрей отвечать
metalim
09.10.2018 08:20+1Открыть "в лоб" нельзя потому, что тогда то, что код Майнкрафта лютое г**но, какого свет не видывал, станет понятно всем, а не только модерам. Взять хотя бы их возню с генерацией эмеральда в прежних версиях. Плохая реклама "хорошего" продукта.
APXEOLOG
08.10.2018 18:59Я так понимаю эти модули к игре имеют отношение примерно никакое (парсер команд из чата и вообще какая-то тулза для миграции). Неужели открывать больше нечего?
Jeditobe Автор
08.10.2018 19:48+1Имеют, но вспомогательное.
На очереди графический движок.
Skar404
09.10.2018 00:41Давно разрабатывал несколько небольшие моды и даже занимался изменением самого кода Minecraft и были декомпелмрованныи и деобфусцирлванные исходники Minecraft и не помню что были с этим проблемы. (И они кстати были даже с комментариями Нотча)
Я не уверен но мне кажется а после покупки Majong большая часть модеров отказались от написания модов из-за усложнения в их написании. (Хотя думаю нужен комментарий от более опытные модеров)
Но это хороша новость, меня всегда уделяло что Majong не поддерживало сообщество модеров и утилит для модификации Minecraft.
scronheim
09.10.2018 06:50а шутка про вариант ответа «это так себе, но «с паршивой овцы хоть шерсти блок»» уже была?
DelphiCowboy
09.10.2018 07:48То что Microsoft в своё время открыла исходники MechWarrior позволяет иметь в этой игре меха Unseen запрещённые копирастами.
Jeditobe Автор
09.10.2018 10:28Для тех, кто был не в курсе, как и я, ссылка:
ahum.club/unseen-battletech
Madeas
09.10.2018 10:46+1Опенсорс:
для модмейкеров — это глоток свежей воды, открытие новых возможностей и свежих идей.
для фанатов игры — шанс увидеть еще больше новых штук, придуманных этими модмейкерами.
для мс — поиск талантливых программистов (а почему бы и нет).
для самого майнкрафта — тоже вполне интересный путь развития, новые идеи, новые решения.
для большинства игроков — это просто игра и способ общения.
для большинства людей — это вообще что-то старое и не интересное.
для разработчиков тех же пакетов текстур — новый геморрой, но и полет фантазии))
Всего понемногу и вперде в будущее) Хорошая игра, единственное что осталось из игр после 10+ лет ммо и что еще тянет мой ноут))
roman901
09.10.2018 11:09Учитывая, что возгласы «мы всё переписали!» были слышны от них начиная с 1.8 и по 1.13 (сейчас), у меня ОЧЕНЬ плохое предчувствие.
Игра течёт. Да, они привели в порядок архитектуру внешне, но внутри там всё тот же ад, усложненный динамическими билдерами, NBT-парсерами и прочей шелухой, из-за которой игра потребляет-высвободжает около 200-300мб\с… А в мультиплеере еще хуже. Вот, к примеру, график потребления памяти практически ванильного (Spigot с парой плагинов) сервера на 1.13:
В итоге после 20-30 игроков серверу становится совсем плохо и TPS (количество тиков в секунду, должно быть 20, по 50мс на тик) стремится к 15, а после и к 10.
Большие надежды подаёт Bedrock-версия, которая на C++, но моды… Они решили туда внести своё «изобретение» — Datapacks, это по сути JSON-файлики с описанием ресурсов. И команды, которые исполняются каждый тик. По сравнению с настоящими модами (IndustrialCraft, Botania, Forestry, Twilight Forest) — это просто медленная игрушка, не пригодная для реального использования, так, побаловаться разве.
Им бы архитектора нанять, который бы сделал сервер наконец многопоточным (потому что пока приходится пилить всё самому, к сожалению, вбухивая кучу человекочасов на то, что по-идее должно быть по умолчанию), не таким раздутым и быстрым.ElegantBoomerang
09.10.2018 12:58Поэтому на JVM живём всякими Optifine и другими оптизизирующими внутренности модами. Я б на месте Mojang уже предложил бы авторам этих модов контрактные деньги на внедрение в mainstream, все были в плюсе.
Softer
09.10.2018 13:10OF — это клиент, там проще — он не работает 24/7, а вот сервер…
daggert
09.10.2018 13:20да с клиентом тоже грусть-тоска-песков. У меня на i7 4770, 16GB RAM и GF780 игра умудрялась тормозить до уровня 10FPS в одиночной игре с 3-4 крипами на экране. В чем проблема я не знаю, когда играю в последнего хитмена таких глюков нет. Думаю что java и кривой код (:
roman901
09.10.2018 13:35Дело не в Java, дело в кривых руках создателей Minecraft (: (и дело не в Нотче, при нём такого не было)
vladtsvs
11.10.2018 10:55Уже существует полностью опенсорсный Minetest, с документированным Lua-апи, с открытым исходным кодом и куда менее требовательный к ресурсам компа.
Garbus
11.10.2018 19:49Да как то графика у него скудновата, и контента не завезли. Во всяком случае на текущий момент. Понятно что ожидать от некоммерческого проекта чудес сложно, но художественная часть так и просит добавки.
P.S. Давненько поглядываю, но как то на невооруженный взгляд все редко шевелится.
Cheater
Краткое содержание: мы открыли крохотный кусок Minecraft (два внутренних инструмента под Java edition для крайне узкой категории пользователей) под свободной лицензией. Может быть откроем другие куски, но это не точно. Microsoft loves open source, оставайтесь с нами.
DoctorMoriarty
Вы так это сказали, как будто в этом есть что-то плохое и как будто только открытие всего-всего было бы единственно правильным.
Keyten
Да нет, дело в том, что открытие кода тут не ради опенсорса, а чтобы сделать модмейкерам удобнее, иными словами, с прямой выгодой для майкрософт, а не ради заявленного Microsoft loves open source.
dartraiden
Любовь любовью, но главная цель Microsoft — извлечение прибыли просто по определению (иначе, она была бы некоммерческой организацией).
Keyten
Вероятно, потому что ситуация не win-win. Опенсорс-коммьюнити не получает с этого примерно ничего, а Microsoft кучу коммерческой выгоды.
Замечательно для Ms? Замечательно. Мне не мешает? Не мешает. Правильно называть это «Microsoft loves open source»? Нет, неправильно. Впрочем, я вряд ли об этом скажу лучше, чем
habr.com/post/425685/#comment_19206659 и
habr.com/post/425685/#comment_19206919.
Yuuri
Как игрок, очень много залипавший в Minecraft еще с альфы (а это конец 2010), особенно с индустриальными мод-паками, возьму ответственность заявить, что решение Microsoft пусть и маленький шаг для опенсорса, но огромный – для моддинг-сообщества. Закрытость (и прямо скажем, кривость) игры давно была головной болью для моддеров, вынужденных изобретать плохо совместимые костыли; а об открытии какого-то API хоть и ходили слухи еще при Mojang, но воз был там вот до нынешнего момента.
Softer
Абсолютно соглашусь с точки зрения модо-/плагина-дела. Меня вот еще что интересует — а как же история с DMCA+Bukkit? Где «loves open source»?
Nexon
Вообще-то да, это ожидалось еще несколько лет назад, еще до анонса Modding API, который так и не вышел.
С одной стороны, Notch и Jeb всегда были за модеров, а с другой, они мечтали об особняке в калифорнии.
daggert
Не открывают — сволочи против опенсурса.
Открывают мало — сволочи мало любят опенсурс.
Откроют полностью — Да кому нужны исходники этой старой игры?
Я вам напомню что игра была разработана фирмой mojang, которая и не собиралась открывать ее исходный код, затягивала с нововведениями и была очень грустна в оптимизации. Откроют — будет хорошо. Не откроют — у вас кусок мяса отняли? Вы и сообщество что-то потеряли? Или опенсурс что-то приобрел от открытия хотя-бы части подкапотной логики? Может злые майки закрыли код какой-либо лицензией запрещающей его использование? Подумайте о том, что теперь молодой программист может зайти на гитхаб, глянуть в код и не го*кодить свой велосипед. Шаг здравый. Почему он выглядит как маленький шажок — не вы ни я не знаем.
PS: В исходной новости упоминается btw не «может быть откроем» а «The Java team will be opening up more libraries soon», что, насколько мне изменяет память, означает однозначность.
Cheater
Мне ни жарко ни холодно от открытия или не открытия исходников этой игры.
Но я против лицемерия. МС на каждом углу пиарит это loves open source, причём в качестве примеров часто приводят объедки с барского стола вроде этого, либо вложения в open source с прямой выгодой (hyper-v). Открыть две с половиной либы не стоит вообще ничего (равно как ничего не стоит написать в бложек "мы собираемся открыть XXX"). Зато какой инфоповод. "Код для молодых разработчиков" это вообще смешно, примеров хорошего кода сотни по всему интернету, а парсеров и преобразователей данных вообще пруд пруди.
Да, я предвзято отношусь к заявлениям МС об открытии кода и это совершенно нормально. К другой компании мб относился бы более нейтрально, но в адрес МС, извините, применяю презумпцию виновности, тк она себя дискредитировала. Открытие куска игры — вероятно, PR-ход, пока не МС не подтвердят обратное (например не откроют всю игру под свободной лицензией и разрешат коммерческое использование).
DoctorMoriarty
На самом деле "loves open source" никак не противоречит с "вложения в open source с прямой выгодой". Open source как самоцель было бы некой псевдорелигией. А вот open source как средство — это очень даже практично. Кстати, вы случайно «free soft» в изводе от адептов GNU/FOSS с «open source» не путаете ли? К слову — приверженцем «free» Microsoft никогда и не была, и было бы очень странно, если бы вдруг объявила о таковой приверженности, так что дискредитации-то никакой и нет.
— ни разу не несут такого морального обязательства, т.к. публичной оферты на тему «непременно целиком весь продукт откроем!» не было, а заявления «loves open source» такой офертой считаться не могут.
rkfg
Ну вообще-то
как раз и являются «моральным обязательством». Не юридическим, разумеется, но моральным — вполне. Поэтому лицемерие тут очевидно. Любовь — это именно бескорыстное такое стремление, чтобы отдавать и не требовать взамен, но у них что-то не очень действия согласуются со словами. Отдают не особо нужный кусочек или нечто сугубо по расчёту. Как по мне, это ни фига любовью назвать нельзя. Претензии же чисто к риторике, а не к тому, что они что-то там обещают или нарушают.
DoctorMoriarty
Хм. Задумался, что тогда может означать «Мы любим пиццу!»…
rkfg
Может значить, что они любят её есть или готовить. В случае с MS, в принципе, оба варианта тоже подходят, но как-то для корпорации странно пиариться на том, что они потребляют, а не производят.
Am0ralist
Я люблю женщин, значит обязан всем подряд что-то отдавать бескорыстно? Например, продаваемые мной батоны? Или может обязан жениться на всех подряд не получая ничего взамен?
Я люблю математику, физику, ютуб. То есть теперь я не могу, оказывается, их любить, если не отдаю им что-то бескорыстно?
Вы как-то присваиваете словам сугубо свои смыслы и из этого строите какие-то выводы, причем требуя, чтоб вест мир поступал согласно вашему мнению на мораль.
rkfg
Ну так вы не транснациональная корпорация, с вас и спрос другой. Quod licet, что называется. Одно дело рассказывать о своих увлечениях в кругу друзей, другое — делать громкие заявления на весь мир, которые идут вразрез со всей предыдущей историей (очень проприетарной, в случае MS). Это уже тянет на coming out, но увы, по факту чуда особо не произошло. И прошу, давайте без ad hominem.
Am0ralist
Еще раз, вы вложили в понятие какой-то свой смысл и утверждаете, что именно он верный. С чего бы?
И вообще-то МС уже давно открывает то одно, то другое в опенсорс. К вопросу про историю МС.
А заявление о любви не означает брак и занятие любовью только с опенсурсом, далеко от этого. Они полюбили опенсурс и то одно, то другое стали туда выкладывать, вместо того, что бы закрывать и прятать.
Или тогда нужно требовать, что б все корпорации, которые пишут в опенсорс — открыли все свои коммерческие продукты под опенсуросм и с разрешением на коммерческое использование. А иначе они — лицемеры, которые используют опенсурс для своей выгоды.
rkfg
Да никто ничего не требует, никто ничего не утверждает, что вы прицепились? Я лишь высказываю своё мнение. Я не могу ничего требовать от MS, потому что кто я такой, чтобы. Просто на мой взгляд такие громкие заявление как любовь к опенсорсу и линуксу, которые вроде как делают MS добренькой и пушистой, на деле «несколько» не соответствуют духу этого посыла (хотя могут соответствовать букве). Мне это кажется лицемерным, если вам нет — ну хорошо, ничего от этого не изменится в любом случае.
По-моему, гугл и фейсбук сделали для FOSS в целом на порядки больше, причём, никак этим не бравируя. Они делают своё дело и выкладывают реально полезный и переиспользуемый код, который потом долго и счастливо живёт во многих других проектах. А MS всё делает с оглядкой, лишь бы своего не упустить да лишнего не отдать. Это мои лично оценочные суждения, не более, но они основаны хотя бы на истории странных лицензий, которые были в ходу на их опенсорсе поначалу. Хорошо, что это постепенно меняется, но у меня лично ощущение, что MS не до конца понимает смысл опенсорса и FOSS. Он не про «отдавать даром», а про «делать вместе». Если кусок кода не особо полезен или интересен, то он скорее попадает в первую категорию.
Можно резюмировать, что любовь бывает безответной, а вот над отношениями надо работать с обеих сторон.
DoctorMoriarty
1) FOSS != Open Source, это лишь подмножество.
2) Open Source != «добренький и пушистый», проприетарный и коммерческий != «злобненький и чешуйчатый», давайте всё же без левацкого новояза и огульного примешивания этических оценок на идеологической основе к формам разработки и собственности, ОК?
rkfg
1) Безусловно, но раз лицензия MIT, то это уже FOSS.
2) Я не левак (скорее, центрист с правым уклоном), мне просто нравится FOSS. Не приравниваю проприетарщиков к злодеям, к MS достаточно было и есть претензий, не связанных с лицензией на их ПО. Мне кажется, такое движение в сторону опенсорса и линукса не может не быть пиар-акцией, только и всего.
KvanTTT
Правда, на порядки, т.е. в 10, 100 раз больше? А подтвердить слова как-нибудь сможете? VSCode — 60К звезд, 8К форков; TypeScript — 40К звезд, 5.7К форков; .NET — 15К звезд, 4.3К форков. Этого недостаточно?
ExplosiveZ
Мериться звёздами и форками как-то некрасиво.
Google: Protobuf, kubernetes, chromium, noto fonts, tensorflow, android, tesseract ocr.
Facebook: btrfs, cgroup2, react, react native, katran, pytorch
И это только то, о чём я знаю.
KvanTTT
Ммм, ну тогда приведите объективный и осязаемый критерий, по которому можно меряться. Помимо звезд и форков, это успешные проекты, которыми пользуются многие разработчики. Так и я привел примеры небольшого количества проектов, а знаю я больше. И есть те, о которых не знаю.
Murat1992
Скорее, это как сказать «Я люблю спорт», но делать зарядку раз в неделю.
Возможно подразумевалось, что я люблю смотреть футбол или хоккей либо имелось ввиду «спорт» как игровой жанр, в который мне нравится играть.
Но все же, в таких ситуациях лучше уточнять.
dartraiden
[sarcasm] Да и Rockstar тоже какие негодяи, могли бы открыть исходники GTA Online и разрешить коммерческое использование, а они вместо этого бабло рубят, уже аж миллиард долларов с микротранзакций получили.
Не будет коммерческая компания рубить сук, на котором сидит. Как только их любовь к опенсорсу начнёт вредить доходам, сразу возникнут вопросы у акционеров.
Am0ralist
Лицемерите здесь вы.
Они вполне могли данный код открыть исключительно для ознакомления. Или для использования в проектах с майнкрафтом исключительно. Скажете, нельзя подобные ограничения в лицензию код добавить?
Они же выложили, как понимаю, в виде опенсурса.
И мигом в тему набежали хейтеры, которые начинают требовать открывать всё подряд и в намного больших объемах, аргументируя, что без этого поступки типа лицемерные.
Нет, это у вас лицемерие головного мозга, когда вы считаете, что кто-то вам или кому-то что-то должен на основании фразы про любовь к опенсурсу. А уж требования открывать в опенсурс всю игру и разрешать коммерческое использование — это просто уже опенсурсец головного мозга какой-то.
Cheater
Во-первых, не надо хамить.
Во-вторых, я от MS ничего не требовал, тем более «открывать всё подряд», а говорил в сослагательном наклонении: «откроют игру — посмотрим». «Не использовать несвободную лицензию для уже существующего небольшого куска кода» — такое же бесплатное действие, как и «выкладывать две малорелевантные утилиты».
Solexid
Не посмотрите. Судя по ващему поведению, вам глубоко плевать на опенсурс, вы просто ищите причину чтобы сказать — не очень то и надо, не очень то и хотелось.
Cheater
Мимо. Пользуюсь почти исключительно СПО, делаю пожертвования организациям, связанным с СПО, коммичу в открытые проекты.
Насмотрелся уже на корпорации, выкладывающие в опенсорс говнокод на своих условиях по остаточному принципу.
ftaru
а мне лично нравится вот этот пассаж: «откроют всю игру под свободной лицензией и разрешат коммерческое использование» )) именно это нынче называется «предпринимательской жилкой»?)
Jeditobe Автор
До тех пор, пока они реально это не сделают — это будет просто обещание. Кроме того, в моей интерпретации «может быть» относилось к тому, что может быть следующей библиотекой откроют Blaze3D, а может быть и не Blaze3D. Они думают.
DrParanoia
Скорее всего, просто приводят код в порядок. Мало каких костылей там осталось ещё со старых времён, вот и наводят марафет. Причешут остальной код и откроют на всеобщее обозрение.
Как человек, который много играл/играет в майн под модами, эти «шажки» дают надежду на то, что когда-нибудь майн с модами не будет загружаться по 10 минут, конфликтовать с шейдерами и неоптимально использовать ресурсы системы…