{{{#!wiki style="display:inline-block; margin:-10px; vertical-align:bottom;" | <tablebordercolor=darkgreen> | 버전별 모드로더 · API | }}} | ||
{{{#!wiki style="min-height:calc(1.5em + 5px); margin:0 -10px -5px; word-break:keep-all;" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin:-6px -1px -11px;" | <colbgcolor=#eee,#2d2f34> 베타 | Risugami's ModLoader | |||
1.1 ~ 1.6 | 포지 | '''''' | |||
1.7 ~ 1.12 | |||||
1.13 | |||||
1.14 ~ 1.20.1 | 패브릭 | → | |||
1.20.2 ~ | ↓ | ||||
볼드 표시: 주요 모드로더 화살표: 분리된 모드로더 |
1. 개요
홈페이지포지 모음 링크
다양한 모드들의 호환과 다른 모드들을 쉽게 만들 수 있도록 만들어주는 비공식 모드 플랫폼.
2024년 10월 5일 기준 최신 지원 버전은 마인크래프트 자바 에디션 1.21.1이며, 포지의 최신버전은 52.0.16 이다.
1.8이 넘어간 지금은 모드 설치시 가장 우선적으로 설치한 후 게임 실행 확인→종료하는 게 기본이 되었다. 모드 충돌 방지 모드를 한번에 통합시킨 범용성, 또한 32x32 이상의 리소스팩을 쓰면 텍스처가 깨지는 현상을 보완해 주는 MC패쳐의 역할까지 맡고 있어 포지를 깔게 되면 MC패쳐가 필요 없어지게 되어 Modloader보다 더 많이 사용되는 모드. 마인크래프트 모드계의 85% 이상을 장악하고 있다. 포지와 호환되는 모드까지 합하면 90% 이상이다. 다만 1.14 이후 버전에서는 포지의 개발이 장기간 지연됨과 동시에 대체 플랫폼인 패브릭이 등장하여 인기를 끌게 되었고, 이후 포지가 각종 문제점 및 논란에 휩싸이면서 포지와 호환되는 모드의 수는 계속 줄어드는 추세이다.
그러나 오랜 시간 동안 축적된 포지의 방대한 개발 정보들과 패브릭의 API에서 커버되는 기능이 포지에 비해 적은 점[1] 등으로 인해 2023년 현재는 포지를 지원하는 모드의 수가 더 많은 편이다. 또한 모드계의 주요 인기 버전인 1.7.10과 1.12.2는 패브릭이 지원하지 않는다.
특히 1.5 이상 버전의 포지는 Modloader의 기능도 포함하게 되어 더욱 범용성이 늘었다.[2] 사실 이는 포지/FTB[3] 팀의 부도덕성을 알려주는 대목이기도 하는데, 아래 문제점 및 논란 항목 참고.
1.13 포지는 마인크래프트의 코드가 많이 바뀌어서 개발하는데 시간이 많이 걸렸으며, 2019년 2월 15일에 드디어 공개되었다.[4] 그러나 2019년 8월 기준으로 1.13 포지에는 베타라고 적혀있으며, 심각한 문제가 발생할 수도 있다는 경고문이 붙어있다. 안정적인 플레이를 원할 경우 버그 우려가 있는 25.0.219 대신 다른 버전을 사용하는 것이 권장된다. 같은 해 6월부터는 1.14 포지 위주로 개발이 진행되어 1.13 포지는 개발이 중단된 상태이다.
1.15부터는 Mojang에서 게임의 난독화 맵을 공개하였으며, 포지의 업데이트 속도 또한 다소 빨라지게 되었다.
2021년 포지의 오래된 버전[5]의 인스톨러가 작동되지 않는 해프닝이 있었다.
매우 많은 오래된 버전의 포지 인스톨러가 작동하지 않습니다
저희도 아니까 제발 이거때문에 토론 열지 마세요.
당신은 아래 나열된 버전을 사용 할 수 있으며, 이러한 인스톨러가 서버에 맞추어 업데이트 되었습니다:
1.5.2-7.8.1.738
1.6.4-9.11.1.1345
1.7.10-10.13.4.1614-1.7.10
1.8.9-11.15.1.2318-1.8.9
1.9.4-12.17.0.2317-1.9.4
1.10.2-12.18.3.2511
1.11.2-13.20.1.2588
나머지 오래된 버전들은 지원되는 버전이 아니기 때문에 우선순서가 아닙니다. 어찌되었던 나머지 버전들도 고쳐질 것입니다.
They other archived versions are not a priority because they are not for supported versions, however they will be fixed >eventually.
포지 공식 사이트 공지
저희도 아니까 제발 이거때문에 토론 열지 마세요.
당신은 아래 나열된 버전을 사용 할 수 있으며, 이러한 인스톨러가 서버에 맞추어 업데이트 되었습니다:
1.5.2-7.8.1.738
1.6.4-9.11.1.1345
1.7.10-10.13.4.1614-1.7.10
1.8.9-11.15.1.2318-1.8.9
1.9.4-12.17.0.2317-1.9.4
1.10.2-12.18.3.2511
1.11.2-13.20.1.2588
나머지 오래된 버전들은 지원되는 버전이 아니기 때문에 우선순서가 아닙니다. 어찌되었던 나머지 버전들도 고쳐질 것입니다.
They other archived versions are not a priority because they are not for supported versions, however they will be fixed >eventually.
포지 공식 사이트 공지
2. NeoForge
포지를 포크해 새로 시작한 프로젝트로 LexManos를 제외한 기존의 개발자 전원이 참여 중이다. 원래 팀의 CEO인 LexManos의 문제(강압적인 운영, 다른 모더들에 대한 욕설) 등에 질려 시작되었다고 한다. NeoForge의 상황 설명문(영어)3. FML Cycle
Forge Mod Loader(이하 FML)은 포지 API로 작성된 모드를 실제 마인크래프트에 올려 실행시킨다. 그러기 위해서 다음과 같은 로딩 작업을 시작한다. 1.13에서의 구조 변경 이후 이 과정은 모두 멀티스레드로 이루어지며, 따라서 구조 변경 이전인 1.12 이하 버전에 비해서 로딩 시간이 상당히 향상되었다.- Registry Events
RegistryEvent.Register<Type>
이벤트를 구독하여 레지스트리에 컨텐츠를 추가할 수 있다. 기존 PreInit에서 하던 일을 추가되는 컨텐츠의 종류에 따라서 나누어 놓은 느낌이다. 만약 아이템을 추가하고 싶다면 RegistryEvent.Register<Item>
을 구독하는 메소드를 만든 후 내부에서 event.getRegistry().register(new MyItem())
과 같은 방식으로 아이템을 추가할 수 있다.- Setup
- Sided Setup
FMLClientSetupEvent
가, 서버에서는 FMLDedicatedServerSetupEvent
가 호출된다. 주로 조작키 설정이라던가 그래픽적인 부분에 대한 조정같이 클라이언트에만 적용되는 설정들을 할 때 사용된다. 이외에도 클라이언트/서버를 나누어서 하고 싶은 설정이 있으면 이것을 사용하면 된다.- IMC(Inter-Mod Communication, 모드 간 통신) Enqueue
- IMC Process
변경 전인 1.12 이하 버전의 사이클은 아래 문단과 같다.
- [1.12.2 이하 버전]
- * Constructing
말 그대로 모드의 최초 로딩. 모드 ID 읽기가 끝난 뒤 실행되며 중요한 일은 하지 않는다.- Pre Initializing
- Initializing
- Post Initializing
- Load Finishing
- Texture Loading
이후 마인크래프트가 실행된다. 서버와 클라이언트가 약간씩 다르다. 서버 시작, 맵 로딩과 같은 과정들은
MinecraftForge.EVENT_BUS
에서 해당하는 이벤트를 구독하면 사용할 수 있다.[7] 자세한 것은 포지와 마인크래프트의 소스 코드를 뒤져 보면서 찾아볼 수 있다.4. 광물사전
광물 사전은 기본적으로 모드간의 아이템 호환성을 위해 존재하는 기능이다. 이름은 광물 사전(Ore Dictionary) 이지만, 광물 외의 아이템 또한 등록이 가능하다.광물사전 이름은 개발자가 원하는 대로 지정할 수 있지만, 보통 아이템 유형을 접두사로, 아이템의 재질이나 종류를 접미사로 한 형태를 가진다. 예를 들어, 써멀 익스펜션의 구리 주괴는 ingot(주괴) + Copper(구리) 로 등록되어 있으며, 인더스트리얼크래프트 2, 이머시브 엔지니어링 등 타 모드의 조합법에 활용 가능하다. 또한 대소문자를 구분하는 점에 유의해야 한다.
NEI, 메카니즘(Mekanism), 마인트위커 등의 모드를 사용하면 아이템의 광물사전 이름의 확인이 가능하다.
1.14부터는 바닐라에서 유사한 기능인 태그(Tag)를 지원함에 따라 삭제되었다. 아이템만 등록 가능하던 광물사전과 달리 블록[8]이나 액체[9]도 직접 등록이 가능하여 더욱 범용적이다. 모드간 호환을 위해서는 forge 이름공간에 아이템을 등록시켜야 한다. 예를 들어 구리 주괴는 forge:ingots/copper에 등록된다.
4.1. 광물사전 통합 기능
Thermal Foundation, 메카니즘, 매리컬쳐(Mariculture) 등의 모드의 아이템과 블록을 통해 광물사전에 같이 등록된 아이템끼리 변환시킬 수 있다.5. 플루이드 레지스트리
각종 액체 및 기체를 등록할 수 있는 시스템이다. 1.13 업데이트 전에는 이름공간이 없어 서로 다른 모드에서 같은 ID의 액체를 등록하면 먼저 등록한 모드의 것으로 추가되었다. 기본적으로는 바닐라의 액체인 물과 용암이 등록된다.1.13부터는 이름공간이 추가되어 같은 이름을 가진 액체더라도 추가하는 모드가 다르면 별개의 액체로 취급된다.[10] 모드간 호환을 위해서는 태그를 등록해야 한다.
6. 생물군계 사전
다양한 생물군계들을 유형에 따라 분류하기 위한 기능이다. 광석사전과 달리 모더가 임의의 분류를 추가하는 것은 불가하다. 일부 모드에서는 월드 생성 관련 컨피그 항목에서 바이옴 딕셔너리를 지원하여 구조물이나 광석, 나무 등의 생성을 특정 생물군계에서만, 또는 해당 분류의 생물군계를 제외하고 할지 결정할 수 있도록 하고 있다.- 온도 관련 분류
- HOT - 온도가 0.85 이상인 생물군계에 적용된다.
- COLD - 온도가 0.15 이하인 생물군계에 적용된다.
- 나무 밀도 관련 분류
- SPARSE - 나무가 있으나 청크당 생성 시도가 3회 미만으로 희박한 경우 적용된다.
- DENSE - 나무의 청크당 생성 시도가 10회 이상인 경우 적용된다.
- 습도 관련 분류
- WET - 강우량이 0.85 이상인 생물군계에 적용된다.
- DRY - 강우량이 0.15 이하인 생물군계에 적용된다.
- 생물군계 유형에 따른 분류
- SAVANNA
- JUNGLE
- CONIFEROUS
- MUSHROOM
- OCEAN
- RIVER
- MESA
- FOREST
- PLAINS
- MOUNTAIN
- HILLS
- SWAMP
- SANDY
- SNOWY
- BEACH
- 차원에 따른 분류
- NETHER
- END
- 기타 분류
- SPOOKY
- DEAD - 바닐라 생물군계에는 사용되지 않는다.
- LUSH - 바닐라 생물군계에는 사용되지 않는다.
- MAGICAL - 마법적인 생물군계에 붙는 분류로 바닐라 생물군계에는 사용되지 않는다.
- RARE - 드물게 나타나는 변종 생물군계에 사용되는 분류이다.
- WASTELAND - 황무지 생물군계에 붙는 분류로 바닐라 생물군계중에는 툰드라에만 적용된다.
- VOID - 완전한 평지 옵션에서 사용 가능한 공허 생물군계에만 붙는다.
7. 포지 에너지 (Forge Energy, FE)
1.10 포지에 추가된 기능으로 포지의 자체적인 에너지 api이다. 2019년 RF를 이용하던 모드 대부분은 포지 에너지로 갈아탔으며, RF 지원을 존치하는 모드에서도 RF와 1:1 비율로 교환 가능하다. 다만 내부적으로만 FE를 사용하고 실제 표기는 대부분 RF로 한다.[11] RF의 원조 모드인 Thermal Expansion도 이 에너지를 지원하며, 순수 RF만 지원하는 모드는 드물다.8. 통용 양동이 (Universal Bucket)
1.11 포지에 추가된 기능. 이전에는 별도의 양동이 아이템을 추가해야 모드 액체를 담고 있는 양동이를 구현 가능하였으나 이 기능이 생기며 보다 쉽게 액체 양동이를 추가할 수 있게 되었다. 통용 양동이에 기체 물질을 등록할 경우 뒤집힌 양동이에 내용물이 담긴 형태로 표시된다.1.13부터는 아이템 ID 개수 제한이 풀리면서 메타데이터나 NBT 등으로 구분되는 아이템의 사용을 자제하는 분위기로 바뀌었으므로 이 기능이 삭제되었으며, 액체 양동이를 별도의 아이템으로 추가시켜야 한다. 그러나 통용 양동이의 모델은 여전히 남아있기에 모드에서 이용 가능하다.
8.1. 오디오모드 (Audiomod)
링크모드에서 따로 효과음을 지원하게 해준다. 요구하는 모드를 사용하려면 설치를 권장. 1.6.2 이후 포지에 흡수.
9. 설치법
9.1. 기존 런처 설치법 ( ~ 1.5.2)
2014년 초부터 구조가 다른 런처가 배포되어 이 설치 방법은 막혔다. 따라서 이 내용은 참고용이다.이곳(2015년 8월 현재는 이 설치법을 쓸 수 있는 포지가 없다.)으로 들어가면 여러 가지 버전의 포지가 있는데 마인크래프트의 버전에 알맞는 버전의 포지를 다운받은 뒤, 다운 받은 포지의 압축을 푼다. 호환되는 버전을 알려주므로 자신의 마인크래프트 버전이 몇인지를 확인한 뒤에 알맞는 포지를 다운받으면 된다. 그리고 .minecraft\\bin 폴더 안에 있는 minecraft.jar 안에 있는 META-INF를 제거한 뒤, 방금 푼 포지 폴더 안 내용물을 minecraft.jar 안에 넣어 준다. 마인크래프트를 실행했을 때 하단 좌측에 포지 버전을 확인할 수 있는 글씨가 적혀있다면 정상적으로 포지를 설치한 것이다.
9.2. 신 런처 설치법 (1.5.2 ~ )
1.5.2 이상 버전부터는 간편 설치기를 배포한다. 간편 설치기 사용 방법은 jar 파일을 마우스 오른쪽 클릭, 프로그램에서 열기, Java(TM) Platform SE binary를 선택하면 된다. 이래도 실행되지 않을 경우 Jarfix 홈페이지에서 Jarfix 프로그램을 내려받아 한 번만 실행하면 문제가 발생한 코드가 수정되어 이후 큰 문제가 없을 경우 정상적으로 설치 파일을 실행할 수 있다.1.6.4부터는 Windows 전용 exe 파일도 배포한다. 2023년 12월 기준 배포 중단. Installer-Windows에서 다운받을 수 있다. 기존의 jar 아카이브 형식은 그냥 Installer에서 다운받을 수 있다. 운영체제에 관계없이 이용할 수 있다는 뜻이다. 두 개의 UI는 같다. 따라서 리눅스나 맥 사용자들은 반드시 이걸 받자.
신 런처(버전 바꾸기가 가능하고 각 버전 별로 미리 세팅해 둘 수 있는 런처)부터는 .minecraft 폴더 안에 mods 폴더를 만든 뒤, 모드를 집어 넣고 모드 버전(1.5.2, 1.7.2 등)에 맞는 포지로 설정 후 실행하면 바로 적용된다.
10. 모드 적용 방법
Forge가 정상적으로 실행/적용됐다면, .minecraft 폴더에 mods라는 폴더가 생긴다.[Windows찾는방법]
mods 폴더에 자신이 다운받은 모드 파일[13]을 압축을 풀지 않고 mods 폴더에 넣어준다.
Forge 버전을 실행한다.
정상적으로 적용됨을 확인한다.[14]
mods 폴더에 자신이 다운받은 모드 파일[13]을 압축을 풀지 않고 mods 폴더에 넣어준다.
Forge 버전을 실행한다.
정상적으로 적용됨을 확인한다.[14]
위의 내용은 Forge를 공식 사이트에서 적용한 것을 기준으로 작성되었다.
11. 논란 및 문제점
마인크래프트 자바 에디션 초기부터 현재까지 사용된 모드 플랫폼인 만큼 초창기부터 현재까지 논란이 꽤 있다.11.1. 모드로더 코드 무단 사용
이전에 모드로더라는 플랫폼이 있었는데, 포지 측에서 모드로더의 유용한 기능들을 눈여겨보고 자신들의 팀에 합류할 것을 권유했으나, 모드로더의 원 제작자는 이를 거절하자 포지 팀이 독단적으로 모드로더를 일일이 뜯어내어 포지의 코드에 무단으로 통합해버리고 모드로더 사용 시 튕기도록 코딩하여 당시 논란이 된 바 있다. 모드리스트에 ForgeModLoader라 써있는 것이 그 잔재이다.11.2. 구버전 지원 부재 및 LexManos 태도 문제
포지의 지원 정책상 무조건 최신 버전이 우선이며 구버전에 대한 지원은 뒷전으로 미루다 보니 자연스럽게 지원이 끊기는 일이 반복되어오고 있다.# 이렇다 보니 구버전 모드팩을 제작하고 테스트 중에 문제가 발생했을 때 이에 대해 버그 리포트를 해도 도움이 전혀 안되는 매크로 답변만을 고수하기로 악명높다.예시[15] 심지어 공식 포럼의 규정에는 "지속적으로 구버전에 대한 지원 게시물을 올릴 경우 포럼 규칙 위반으로 간주하여 차단당할 수 있다."# 라는 문구가 있다.마인크래프트는 모드를 위해 버전을 낮춰서 플레이한다는 말이 나올 정도로 특정 버전에서만 플레이가 가능한 모드가 즐비한데 이런 구버전에 대한 적대시하는 태도로 인하여 논란이 지속되고 있으며, Fabric API 프로젝트가 나오고 이 프로젝트는 포지와는 정 반대의 포지션으로 구 버전에 대한 지원을 지속해주고 있어 Fabric와 동시 개발하거나 아예 Fabric 전용으로 개발하는 모더들이 늘고 있다.
결국 이로 인해서 불만이 점점 쌓이다 폭발해 CEO를 제외한 대부분의 개발 인력들이 독립을 선언, 네오포지라는 API를 만들었다. # Neoforge의 창설 안내문에 따르면, 포지의 CEO인 LexManos(이하 Lex)는 최근 12년 내내 고작 Fabric 같은 다른 모드로더 이야기를 했다고 밴을 하거나, 다른 베테랑 모더들에게 욕설을 하는 일이 잦았다고 한다. 역시 네오 포지로 탈출한 cpw의 말에 따르면, 자신이 그 기간 내내 Lex와의 갈등으로 포지를 떠나려는 모더들에게 그 사람 하나 때문에 포지를 버리지 말라고 설득해야 했다고 한다.
1.21 부터 주요 대형 모드들이 포지 지원을 포기하고 네오포지로 옮길 것을 선언하면서# 포지의 몰락이 찾아왔다. 커스포지와 모드린스 둘다 포지 지원 모드의 수가 퀼트 API 수준으로 떨어졌다.[16]
[1] 예컨대 포지에서는 이벤트 처리기만 추가하면 바닐라에서 특정 동작 수행시 모드의 코드가 실행되게 만들 수 있으나, 패브릭에서는 Mixin으로 바닐라 코드에 모드의 코드를 직접 끼워넣어야 한다.[2] 참고로 위에 있는 모드들을 모아놓은 링크에선 모드들을 포지와 호환이 가능한가 불가능한가를 나누었다.[3] 포지 팀은 FTB 팀의 하위 팀이다.[4] 마인크래프트 코드도 많이 바뀐 김에 포지 자체도 오래된 코드들을 바닥부터 갈아엎는 작업을 거쳤다.[5] 1.12 이하 버전[6] 마인크래프트가 클라이언트와 서버로 나뉜다는 사실은 흔히 알고 있는데, 싱글플레이어 월드는 사실 한 컴퓨터에서 클라이언트와 서버를 모두 구동시킨 이후(!!!) 둘이 서로 통신하는 식으로 작동한다는 사실을 아는 사람은 많지 않다. 모드 코딩을 하다 보면 진짜 말 그대로 물리적으로 떨어진 클라이언트/서버에서만 작동해야 되는 코드가 있고, 논리적 서버에서 작동해야 하는 코드가 있는데, 물리적 서버는 논리적 서버를 포함하지만, 논리적 서버가 무조건 물리적 서버라고는 말할 수 없기 때문에 둘을 구별해서 코딩하는 것이 중요하다.[7] 사실 좀 더 정확하게 말하자면, 위의 FML 사이클이라고 표현된 과정들도 전부 Event 기반으로 작동하지만, 위의 과정들은 Registry Events를 제외하면 전부 모드의 이벤트 버스를 구독해야 한다는 차이점이 있다.[8] 광석사전에 블록을 등록하려면 블록의 아이템을 등록해야 한다.[9] 모드가 설치된 경우 한정. 바닐라에서는 블록과 아이템만 태그를 지원한다.[10] 예를 들어 물은 minecraft:water 인데, 만일 자신의 모드에서 물을 추가하면 modname:water가 되어 따로 추가된다.[11] 어차피 1대1 교환이 되고, RF api 코드를 원작자에게 허락받고 포지로 옮겨온것이라서 둘 다 똑같기 때문. 모드로더 개발자만 더 불쌍해졌다[Windows찾는방법] window+r을 눌러 나오는 Windows 검색 창에 %appdata%를 입력한다. Roaming 폴더에 들어가 .minecraft 폴더를 찾는다.[13] 보통 .jar, .zip 등 압축된 파일로 나온다.[14] 왼쪽 아래의 모드 갯수가 늘어나 있으면 정상적으로 적용된 것이다.[15] 해당 게시글에서는 크래시가 일어나 해결하는 방법에 대해 질문했는데, 답변에는 "구버전은 지원이 중단되었으며 신 버전을 이용해달라, 구버전에 대한 지원 요청을 하지 말아달라". 이라는 매크로 답변과 함께 곧바로 게시글을 잠금처리했다. 1.16이면 모드측에서는 아직 현역임에도 이런 취급을 당한 것이다.[16] 2024년 9웧 15일 커스포지 1.21 버전 검색 기준. 포지: 1168, 패브릭: 3122, 퀼트: 1017, 네오포지: 2307