OreoOsDelicious cd858ce02b60435e9fd55d8d3f734e74
게임버전 | 1.21.x |
---|---|
모드로더 | 포지 |
안녕하십니까 여러분들! o8o1o5 입니다.
오늘부터 제가 모드 개발 강좌를 포스팅 해 보려고 합니다.
Mcreator 나 Skript 강의가 아니에요!
Minecraft 1.21.1 NeoForge 환경에서 개발할건데요,
Forge 가 아니라 NeoForge 인 이유는 간단합니다.
1.21 이후에는 많은 모드 개발자분들이 Forge 에서 NeoForge 로 넘어가고 있기 때문입니다.
실제로 많은 모드들이 1.21 에서는 Forge 보다 NeoForge 를 더 많이 지원하고 있습니다!
서론이 길었습니다. 바로 본론으로 들어가봅시다.
마인크래프트 모드를 개발하기 위해서는 크게 두 가지가 필요합니다.
Java 21 버전과 IntelliJ IDEA 인데요,
Minecraft Java Edition 은 당연하게도 Java 로 개발되었으니 모드 개발도 Java 로 합니다.
IntelliJ IDEA 는 Java 를 개발할 수 있는 환경을 제공해주는 프로그램입니다.
VSCode 나 메모장(?) 처럼 본인이 원래 쓰시던 IDE 가 있다면 그걸 쓰셔도 됩니다만
이 포스트에서는 IntelliJ IDEA 를 사용하겠으니 Java 개발에 관심을 두고 계시다면
이번 기회에 한 번 설치해보시는 것도 괜찮을 듯 합니다.
- Java 21
구글 검색창에 "Adoptium Temurin Java 21" 이라고 쳐주시거나, 자바 21 버전 다운로드하기 링크로 들어가주세요.
이런 창이 뜨실텐데요, 여기서 운영체제에 맞게 JDK 21 - LTS 버전을 받아주시면 됩니다.
저는 Windows x64 (대부분이 여기에 해당) 를 사용 중이기 때문에, 이걸로 받아주도록 할게요.
.msi 와 .zip 중 아무거나 받아주셔도 상관은 없습니다만 저는 .msi 로 받았습니다.
- IntelliJ IDEA
구글 검색창에 "IntelliJ IDEA" 라고 쳐주시거나, IntelliJ IDEA 다운로드하기 링크로 들어가주세요.
이 창에서 조금 더 아래로 내려주셔서
부분을 찾아주세요. 위 쪽 흰 배경의 IntelliJ 는 Ultimate Edition, 아래 쪽 검은 배경의 IntelliJ 는 Community Edition 입니다.
저희는 결제를 하면서까지 유료 버전인 Ultimate Edition 을 사용할 필요가 없기 때문에, Community Edition 으로 받아주세요.
- NeoForge Modding Template
마지막으로 네오포지의 모드 개발 템플릿을 받아줄겁니다. 네오포지 모드 개발 템플릿 다운로드하기 링크로 들어가주세요.
이 깃허브 페이지에서, 오른쪽 위에 초록색 Code 버튼을 누르셔서 제일 아래에 있는 Zip 파일 다운로드를 눌러주세요.
(깃허브 계정이 없다면 가입해주세요! 깃허브는 아주 유명한 개발자 커뮤니티랍니다.)
이 템플릿은 네오포지에서 직접 준비해둔 일종의 스타팅 팩과 같아요. 개발을 조금 더 쉽게 만들어준답니다!
모두 다운로드 하셨나요?
모두 정상적으로 다운로드 되셨다면 IntelliJ IDEA 를 켜주세요.
이런 화면이 나오셨다면 성공입니다!
이제 오른쪽 위 두번째 Open 버튼을 눌러주세요.
그리고 아까 다운로드 받았던 NeoForge Modding Template 을 열어주세요. (압축 푸셔야 해요!)
켜고 나서 왼쪽 아래를 보시면, 망치 모양에 초록색 점이 있을 수 있어요.
그렇다면 아무것도 건들지 마시고, 망치 버튼을 눌러 "BUILD SUCESSFUL" 같은 메세지가 나올 때까지 기다려주세요.
저희가 다운로드 한 네오포지 템플렛에는 많은 요소들이 미리 세팅되어 있는데요,
그것들을 읽어들이고 실행할 수 있게 IntelliJ IDEA 가 처음으로 프로젝트를 열면 수행하는 작업입니다.
이 과정은 1~3분 정도 걸릴 수 있습니다.
빨간 글씨가 올라오더라도 너무 겁먹지 마세요!
BUILD 작업이 완료되셨나요? 그러면 이제 정말 개발을 시작할 차례입니다!
왼쪽, 프로젝트 구조에서 맨 위에 있는 MDK 어쩌고 파일을 쭉 펼쳐주세요.
펼쳐진 파일에서 src\main\java\com\example\examplemod 를 찾아 열어주세요.
그 안에 examplemod 라는 파일이 또 있다면, 성공입니다!
examplemod 라는 파일을 여셔서, 맨 첫 줄 (package 로 시작하는 그거 맞음) 에 커서를 올리고, F2 버튼을 눌러주세요.
이름을 바꾸는 단축키인데요, package 를 바꿈으로써
com\example\examplemod 라고 되어있던 패키지 구조를
저희가 설정한 대로 바꿔주는겁니다.
이런 창이 뜨실텐데요, com.example.examplemod 로 되어있는 파일 구조를
원하는 대로 바꿔주셔도 상관은 없겠습니다.
그러나 저희는 배우는 입장이기 때문에, 전통적인 Java 의 프로젝트 파일 구조 이름을 따라가보아요.
현재 패키지명 (파일 구조 이름) 은
com.example.examplemod
일 거에요.
여기서 com이란, 자신만의 도메인 주소를 의미해요.
com 을 적어도, net 을 적어도, de, dev, ft, asadfsdf 등 아무거나 적어도 돼요.
전통적으로 많이 쓰는 도메인명은 com 이나 net 이 있겠네요.
두번째 example 부분은, 자신의 개발자 명이나 닉네임을 적는 곳이에요.
저는 o8o1o5 니까, 중간에 example 부분을 o8o1o5 로 바꿀게요.
마지막으로 examplemod 라고 적힌 부분은, 프로젝트의 이름을 의미해요.
꼭 Minecraft Mod 가 아니더라도, 자신의 프로젝트 이름을 적는 곳이에요.
저희는 모드를 개발하고 있으니까, 자신만의 모드명을 소문자로 적어주도록 해요.
저는 tutorialmod 로 정했어요.
정리해보자면, Java 패키지명 (프로젝트의 파일 구조 이름) 을 정할 때는
도메인.이름.프로젝트명
으로 짓게 되겠네요.
변경하셨나요? Enter를 눌러 변경 사항을 적용하시면
파일 이름이 바뀌는 분도 계시고,
아니면 아예 새로운 파일 구조가 생성되신 분도 계실거에요.
어떻게 됐든, 정리하셔서 이런 파일 구조로 만들면 깔끔하겠죠?
이제 두 걸음 남았어요!
두 개 다 모드의 정보를 설정해주는 일인데요,
첫째로는 MODID 바꾸기 입니다!
여기 이 화면 (파일을 더블클릭하면 뜹니다)에서 42번 줄을 봐주세요!
public static final String MODID = "~";
다른 건 아실 필요 없어요! 따옴표 안에 있는 문자를 모드의 ID가 되었으면 싶은 문자로 바꾸어주시면 됩니다.
MODID 는 모드를 배포할 때나, 다른 사람이 내 MOD 와 호환성을 추가하고 싶을 때,
심지어는 마인크래프트 모드 런처가 모드를 로딩 할 때에 아주 중요한 역할을 합니다.
따라서 MODID 는 영어 소문자로 적어주세요!!!
한글로 적으시면 안 돼요!
정말 수고하셨어요! 마지막 한 걸음만이 남았습니다.
바로 Gradle.properties 파일을 설정해주는 일입니다.
아까 이 사진 기억하시나요? 여기에서 gradle.properties 를 찾아주세요.
gradle 은 우리의 프로젝트를 빌드해주는, 유연한 소프트웨어인데요!
gradle 이 없어서 build 를 하지 못한다면, 모드를 실행할 수 없게 됩니다.
gradle.properties 파일을 더블클릭해 열어주시면
29번째 줄부터 이런 내용이 있습니다.
31번 줄에 mod_id 에는 아까 적으셨던 MODID 와 같은 문자를 적으시면 됩니다.
33번 줄에 mod_name 에는 모드의 이름을 적으시면 됩니다.
41번 줄에 mod_group_id 에는 아까 F2 를 눌러 설정했던 패키지명을 적으시면 됩니다.
43번 줄에 mod_authors 에는 모드 개발자의 이름을 적으시면 됩니다.
대부분 패키지명의 중간에 들어가는 이름이겠죠?
쉼표를 통해 여러 이름을 적을수도 있습니다.
45번 줄에 mod_description 에는 모드의 설명을 적어주시면 됩니다.
축하드립니다! 모드 개발의 첫걸음을 완료하셨어요!
오른쪽 위에 이런 부분이 보이시나요?
Current File 이라고 된 부분을 눌러서, Client 로 바꾸어주세요.
만약 Client 가 뜨지 않으신다면, gradle 에서 빌드를 제대로 수행하지 못한거에요.
작은 코끼리 모양이 새로고침과 함께 있다면 그걸 눌러주세요!
Client 글자 위를 누르시면, Client 를 실행할 수 있게 돼요.
Current File 이라고 적힌 부분에 Client 라고 새로 적히게 됩니다.
오른쪽에 초록색 재생 버튼이 정상적으로 활성화 되셨다면, 눌러주세요!
이런 모양이 되면서,
귀여운 네오포지의 마스코트 여우 친구와 함께 마인크래프트가 켜지게 됩니다!
give 명령어를 통해서 템플릿에 미리 있던 코드를 통해
생성된 Example Item 과 Example Block 을 꺼내보실 수 있어요.
여러분들은 minecraft 커맨드에서 아이템을 지칭할 때,
아이템 앞에 minecraft: 를 붙여야 풀네임이라는 사실, 알고계셨나요?
예를 들어 다이아몬드 블록을 정석적으로 꺼내는 명령어는
/give o8o1o5 minecraft:diamond_block
과 같아요.
기본적으로 추가되어 있는 Example Item 과 Example Block 을 꺼내실 때에는,
/give Dev (모드의 ID):example_ item
과 같은 형식으로 써주셔야 한답니다!
example item 은 먹을 수 있고
example block 은 설치도 된답니다!
@s 나 @p 와 같이 저희가 평소 마인크래프트에서 사용할 수 있었던 선택자 외에도
Dev 라는 선택자가 추가되었다는 걸 알 수 있으실겁니다.
이건 마인크래프트 네오포지 개발 환경이 자동으로 추가해 준 선택자에요.
개발자를 지칭하는 선택자인데요, 지금은 @s 와 같은 효과를 내겠네요!
어떠셨나요 여러분들! 잘 따라오셨나요? 너무 어렵진 않으셨나요?
만약 너무 어려우셨거나 오류를 해결하고 싶어 영상으로 이 강의를 보고싶으시다면,
o8o1o5의 모드 공방 유튜브 바로가기 를 통해 시청하실 수 있습니다!
더 많은 모드 개발 소식과 정보를 받아보시고 싶다면,
한마포 댓글 // 유튜브 좋아요 & 구독 많이 눌러주세요!
(아직 두 명 밖에 없어요! 세 번째 구독자가 되어보세요! )
긴 글 읽어주셔서 감사합니다!
노을넴
13 일 전핫스왑을 통한 일반 클래스와 믹스인 클래스 리로드 시 JetBrains Runtime을 사용하면 더 효과적인 것이에욘
o8o1o5
13 일 전호호 핫스왑이 편하긴 하죠..
댓글을 이해 못하신 분들을 위해!! :
코드를 고치고 다시 실행 안 하고 바로 적용하려고 할 때,
JetBrains에서 만든 특별한 Java 런타임을 쓰면 일반 클래스뿐만 아니라 믹스인 클래스까지 더 잘 바뀌어요!
라는 뜻이겠네요~