새로 오신 분들은 길라잡이를 꼭 읽어주세요.

문서의 정리·작성번역을 도와주시면 마인크래프트 위키에 큰 힘이 됩니다.

Mods/모드 만들기

Minecraft Wiki
이동: 둘러보기, 검색

제작은 자바를 다룰수있는 개발자들이라면 누구나 참여하고 시작할수있는 마인크래프트의 또다른 프로젝트다. 모드의 배포와 제작과정 필요한 도구들이 뭐가있는지를 알아보자. 모드제작을 위해서는 최소한 자바의 기본문법이라도 배워야한다.

모드제작의 기초[편집 | 원본 편집]

  • jdk를 먼저 설치하여 자바 런타임과 컴파일러를 갖춰야한다 자세한 설치법은 포털사이트를 이용해 알아봐야한다.
  • 이클립스 또는 넷빈즈를 설치하여 코딩을 할수있다. jdk가 컴파일러면 이들은 코딩툴이다 마인크래프트의 모드제작은 이클립스를 많이 권장하는 편이다
  • MCP(minecraft coding pack)을 설치하여 코딩을위한 기본라이브러리 그리고 소스를 지원받을수 있다. 하지만 마인크래프트의 소스를 무단으로 배포하는건 금지되있다.

일반모드[편집 | 원본 편집]

  • 포지, 오디오모드, 모드로더등에 의존하지않는 모드다.

이를 제작할경우 osx에서는 매직런처에 의존해야한다는걸 알아두자. 1.7.2의 경우 난독화된 필드를 자주쓰는건 외워야 하며 1.6.4의 경우 새로운 블록, 아이탬, 엔티티등을 추가하는게 약간 복잡한 편이다.

포지모드[편집 | 원본 편집]

  • 만약 포지모드를 만들경우 포지의 웹사이트에서 src를 다운받는다.
  • 1.6.4의 경우 instal.cmd를 실행하면 된다.osx의 경우 터미널로 cd 설치한경로 를 한다음 bash instal.sh를 실행해주면 된다.
  • 1.7.2의 경우 명령창을 실행시켜서 cd로 경로를 변경한후 gradlew.bat setupDevWorkspace를 해준다. 그리고 gradlew.bat eclips를 실행한다. osx의 경우 gradlew.bat를 입력하지말고 ./gradlew.sh를 입력해야한다. 1.7.2의 경우 클라이언트의 디컴파일된 소스가 없기때문에 jd_gui로 하나하나 열어봐야한다.
  • 그런다음 본격적으로 코딩을 한다. 이클립스를 mcp의 eclipse라는 파일로 워크스페이스를 지정해주면 코딩을 할수있다.코딩과 관련된건 자바의 기본적인 문법 이라도 알아둬야한다. 포털사이트에 검색해보면 각종 모드제작 튜토리얼을 보거나 읽어볼수 있으며 이들을 참고하면 도움이 된다.
  • 모드로더, 오디오모드등등의 모드제작법은 추가해 주시기 바랍니다.

배포[편집 | 원본 편집]

  • 명령창에 cd mcp가 설치되있는자리로 위치를 변경하고
  • 윈도우의 경우 recompile.bat를 실행한다.
  • osx의 경우 bash recompile.sh를 실행한다.
  • 그리고 컴파일된 class파일들을 압축하여 배포한다.

압축한 파일의 형식은 jar, zip이어야한다. 이때 패키지를 지키지 않고 그냥 class파일만 압축하여 배포하면 import경로가 흐트러지기 때문에 주의해야한다.

mcp없이 제작하기[편집 | 원본 편집]

만약 마인크래프트 모딩의 숙련된 모더라면 mcp 없이도 제작이 가능하다.워드패드 메모장등을 이용하여 순전히 자기의 머릿속으로 추축해가면서 모드제작을 하는것이다. 물론 포지가 없는 버전의 경우 포지에 의존할수 없다. 하지만 스냅샷, 포지가없는 버전까지 다룰수있는 장점이 있다.

[편집 | 원본 편집]

  • 1.7.2는 필드가 난독화 되있어서 연습용으로는 1.6.4를 많이 권장하는 편이다. 또한 그릇변수와 호출해야하는 함수가 많아질경우

렉도 심해지고 매모리도 그만큼 차지하기때문에 그러한점을 고려하여 가장 효율적인 코딩을 할수있도록 노력해야한다.

  • 일부 모드는 에드온제작이 가능하며

해당모드의 디컴파일된 파일들을 배포하는데 이를 이용하면 에드온 제작 또는 해당모드와 연동되는 모드제작이 가능해진다.

  • 마인크래프트의 모드제작은 main 함수를 넣지 않는다. 굳이 구별할 필요는 없으나

대부분의 마인크래프트의 클래스들은 헬퍼 클래스로서 작동되기 때문이다. 그렇기때문에 public static void main (string[] args)같은 메인함수는 사용할수 없다. 일부 독립적으로 작용하는 클래스를 만들어야할경우 예외적으로나 넣을수는 있다.

  • 디버깅을 이용하면 변경된 코드를 저장할시 그것이 바로 수행된다. 그렇기때문에 코딩을할때 참고하면 매우 편리하다.