Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 27.05.2020 во всех областях

  1. 1 балл
    @eu_tomat самый простой способ получить пустой темплейт мода - это последовать инструкциям, которые даются в документации к Minecraft Forge. https://mcforge.readthedocs.io/en/1.14.x/gettingstarted/ Так у тебя будет гарантировано рабочий и современный код. (Темплейт который ты взял на github - дико древний.) Вообще дока Forge очень неплохое место для старта. Там тебя как раз познакомят с базами создания модов под Minecraft. Создание и развёртка проекта через Gradle (для разных IDE тоже есть инструкции), блоки, предметы, tile entity и так далее.
  2. 1 балл
    Первые шаги в Gradle Задача: Найти исходник простейшего мода для Minecraft 1.7.10, скомпилировать его, проверить в работе, внести какие-нибудь правки в код и так же проверить в работе. Мой путь к решению: Поисковая фраза «minecraft mod 1.7.10 template» приводит меня к репозиторию https://github.com/RoBrit/Mod-Template Удача! В описании есть подробная инструкция. Автор кривовато сверстал внутренние ссылки в оглавлении документа, но чтению это не помешает. Тексты на английском я читаю поверхностно, не пытаясь понять смысл каждого слова. Просто выхватываю знакомые слова и угадываю общий смысл. Если смысл я не понимаю, то использую гуглоперевод, сравниваю оригинал с переводом, уточняю варианты перевода тех или иных слов, постепенно пополняя словарный запас. Такой способ чтения несовершенен, но для понимания смысла несложных текстов вполне применим. Первые три пункта инструкции, связанные с установкой JDK, я уже выполнил, решая предыдущую задачу. Далее следует установка gradle и проверка его работоспособности: # apt install gradle $ gradle ... Welcome to Gradle 2.10. ... Чтобы мои действия не превратились в полное шаманство, я почитал, что такое Gradle (https://ru.wikipedia.org/wiki/Gradle). Как я понял, это некий аналог классического make, но значительно более функциональный. Похоже, именно Gradle будет управлять сборкой мода. Самой полезной на данный момент мне показалась команда gradle tasks, упростившая моё первое знакомство с Gradle. Далее инструкция предлагает установить Git, скачав его. Я пойду чуть иным путём, установив его из репозитория Linux: # apt install git Git – это система контроля версий. Скоро пригодится нам для клонирования репозитория, но самое интересное начнётся при решении последующих задач. Следуя инструкции, я создаю каталог для своих экспериментов, и, находясь в нём, клонирую репозиторий и сразу перехожу во вновь созданный каталог с локальным репозиторием: $ git clone https://github.com/TheRoBrit/Mod-Template.git $ cd Mod-Template Инструкция предлагает взглянуть на получившуюся структуру каталогов клонированного репозитория, и я воспользовался командой tree. Результат оказался идентичным приведённому в инструкции. А теперь самое интересное. Если я верно понял документацию, следующая команда подготавливает минимальное окружение для сборки мода. Не совсем ясно, что такое «CI Servers». Вероятно, это сервера, выполняющие сборку проектов автоматически. $ gradle setupCiWorkspace ... BUILD SUCCESSFUL А эта команда, похоже и выполняет, собственно, сборку мода. И, если верить документации, то и тестирует. $ gradle build ... BUILD SUCCESSFUL Придерживаясь инструкции, я нахожу собранный файл в каталоге ./build/libs/ $ ls ./build/libs ModTemplate-1.8-1.5.07.29a-deobf.jar ModTemplate-1.8-1.5.07.29a.jar ModTemplate-1.8-1.5.07.29a-source.jar Копирую файл только что собранного мода в папку с модами Майнкрафта: $ cp ./build/libs/ModTemplate-1.8-1.5.07.29a.jar ~/.minecraft/mods/AAA.jar Я специально дал файлу мода такое имя, чтобы потом не ломать голову, что же это за непонятное чудо делает в моей сборке. Такое название не даст ему затеряться среди других файлов. Запускаю Minecraft, нажимаю кнопочку Mods, листаю список модов, но не нахожу ничего похожего на ModTemplate или AAA. Проверяю загрузку старого сохранения – работает. Но следов нового мода я не вижу. Проверяю, оставил ли этот мод какие-либо следы в логах Майнкрафта: $ grep --include=*.log -lire ModTemplate ~/.minecraft ... пусто $ grep --include=*.log -lir AAA ~/.minecraft ... есть какие-то логи Теперь проверяю более подробно в наиболее интересном для меня логе: $ grep -A10 -B10 AAA ~/.minecraft/logs/fml-client-latest.log Так как смысла многих сообщений в логе я не понимаю, сравниваю найденные сообщения с аналогичными сообщениями для других модов. Самом интересным мне показалось такое сообщение: FML has found a non-mod file AAA.jar in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible. Майнкрафт не считает этот файл модом. С другой стороны, в логе присутствует аналогичное сообщение и для CodeChickenLib-1.7.10-1.1.3.138-universal.jar, что не помешало ему оказаться в списке модов. Что могло пойти не так? Скорее всего, этот шаблон мода не содержит даже минимального контента. А значит, этот контент требуется создать. А может быть, причина в чём-то ещё. На всякий случай я подведу промежуточный итог и возьму паузу. Промежуточный результат: Я смог найти шаблон мода и скомпилировать его. Майнкрафт не воспринял его как мод, но я смог получить первый опыт работы с Gradle. Ближайшие направления для работы: Узнать, как добавить в мод одиночный предмет, даже без крафта, без текстуры и особых свойств. Найти готовые исходники простого мода и скомпилировать их. Первое направление даст мне больший опыт, а второе поможет быстрее двигаться между промежуточными целями. Скорее всего, я выберу скорость. А в нюансах разберусь потом.
  3. 1 балл
    IDE даёт возможность проще и быстрее получить результат, и соответственно "награду" за усилия. Плюс даёт возможность изучать не флаги компилятора, а собственно язык. Возня с манифестами, сборочными утилитами и флагами компиляторов - это немного муторное дело. Есть риск запутаться, долго биться над какой-то ерундой с минимальным результатом, и как следствие - растерять интерес и мотивацию. А главное, что это потом не пригодится, потому что 100% работы с Java (и Scala) идёт через IDE. Но это конечно дело вкуса. Моды на майнкрафт - не самый простой проект с архитектурной точки зрения. Это уже не чистая Java, а Java с зависимостями. Практически во всех нормальных модах работа с зависимостями идёт через утилиту под названием Gradle. Вообще она неплохо интегрирована в IDE (для создания мода никаких детальных знаний не требуется), но в духе начинания с основ, рекомендую пролистать документацию. https://docs.gradle.org/current/userguide/userguide.html
  4. 1 балл
    Похоже на отсылку к моему же посту: Да, хорошее напоминание, во что может выродиться эта тема, если я потеряю мотивацию продолжать этот путь. Я не смогу съесть этого мамонта за один раз целиком, поэтому продолжу придерживаться простой тактики: я выбираю микрозадачу, выполняю её и фиксирую результат. Задачу выбираю не слишком крупную, чтобы во-первых, не терять мотивацию во время её решения, а во-вторых, чтобы детали решения успели сохраниться в памяти к моменту отчёта о проделанной работе. Также задача должна быть и не слишком мелкой, чтобы во-первых, я мог прочувствовать удовлетворение достигнутым результатом, а во-вторых, чтобы не плодить крошечные отчёты по малейшему поводу. IntelliJ IDEA я установлю обязательно. Мне эту IDE первым рекомендовал @Fingercomp в приватной беседе. А теперь @NEO и @Totoro. @Totoro вообще отлично всё расписал. Но мне казалось, что сначала следовало убедиться в том, что я в принципе могу компилировать и запускать программы на Java, и лишь затем думать об удобствах. Что мне даст IDE на текущем этапе, я пока не знаю. И мне кажется, что начав с изучения IDE, я рискую не почувствовать никаких преимуществ от проделанной работы и потерять мотивацию. Сейчас я вижу две ближайшие задачи, для решения которых IDE не требуется: Найти готовые исходники какого-то простого мода на Java, без всяких там Scala и Lua, собрать его по инструкции и запустить. Вникнуть в азы Scala и также скомпилировать какой-нибудь хелоуворлд и поиграться в нём с конструкциями языка. Скорее всего, я сначала поищу готовый шаблон для мода, и когда его модификация в обычном текстовом редакторе начнёт меня обременять, приступлю к изучению IDE. Такая последовательность должна помочь мне стабилизировать мотивацию. Или я неправильно понимаю процесс разработки?
  5. 1 балл
    @eu_tomat респект, что начинаешь с самых основ. Но чисто с практической точки - удобства написания кода - проще скачать IDE. Самая простая и удобная для работы скорее всего будет IntelliJ IDEA, которую Нео упомянул. Можно взять коммьюнити версию здесь: https://www.jetbrains.com/idea/download/#section=linux Минусы: * будет жрать 2 гига оперативы * надо будет ознакомиться с базами интерфейса Плюсы: * запуск и компиляция кода одной кнопочкой (ощутимо полезно по мере усложнения программы, когда она выйдет за пределы одного файла) * анализ кода (IDE будет подсказывать ошибки, даст автодополнение, возможность перемещаться по коду к месту определения нужных тебе предметов, удобно переименовывать переменные, методы и прочее, и так далее) * более сложные инструменты, которые тебе будут нужны для работы с модом OpenComputers - например, система сборки Gradle, достаточно безболезненно и беспроблемно интегрированы в IDE, и тоже вызываются одной кнопочкой * в случае IntelliJ IDEA в комплекте будет идти очень удобный Git клиент (неоценимая штука для более сложных манипуляций с гитом чем git commit -am & git push) * дебаггер (точки останова, возможность посмотреть значение переменных в момент выполнения, стек вызовов, выполнять код пошагово и т.п.) * Scala в комплекте (при первом запуске, или позднее, надо убедиться что плагин Scala установлен, либо установить). Поскольку мод OpenComputers на 90% состоит из Scala - очень полезно. Тоже интегрировано бесшовно, тоже даёт анализ кода и прочие плюшки. Очень полезно для изучения языка, который слегка сложнее чем plain Java.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...