본문으로 건너뛰기
버전: v1.4.0

Poly 모드 로더 — 프로젝트 개요 및 로드맵

**Poly Mod Loader (Poly)**는 마인크래프트 Java Edition (최신 26.1, 26.1.1, 26.1.2, 26.2, 26.3, Java 25)을 위한 차세대 인게임 바이트코드 변환 엔진이자 멀티로더 통합 플랫폼입니다.


1. 프로젝트 개요​

외부에서 프로필을 분리 실행하는 일반 런처(Prism Launcher, CurseForge 등)와 달리, Poly는 게임 프로세스 내부에서 동작하는 모드로더 엔진입니다:

  • Fabric, Quilt, Forge, NeoForge 모드를 실행하고, Fabric·Quilt 모드를 Forge 모드나 NeoForge 모드와 한 게임에서 함께 실행할 수 있습니다. Forge 모드와 NeoForge 모드는 아직 한 게임에서 함께 실행하지 않습니다. Minecraft 26.3에서도 1.2.5부터 로더를 섞어 쓸 수 있습니다(아래 표).
  • 서로 다른 모드로더 간의 Mixin 패치 불일치를 시작 전에 바이트코드로 확인하고, 옮길 수 있는 주입은 옮기며, 맞지 않는 모드는 이유와 함께 뺍니다.
  • 플랫폼에 종속되지 않는 고유의 Native API와 선언적 바이트코드 변환기를 제공합니다.

2. 핵심 기술적 차별점​

+-----------------------------------------------------------------------------------+
| Poly Mod Loader |
+-----------------------------------------------------------------------------------+
| [ Native API ] [ Fabric Bridge ] [ Forge Bridge ] [ NeoForge Bridge ] |
| - System API - FabricLoader API - FML Virtualizer - FML 11 Layer Bridge |
| - Lifecycle API - QuiltLoader API - ModLauncher Shim - Shared Mixin Engine |
+-----------------------------------------------------------------------------------+
| Poly Transform Engine (ASM 9.11) |
| - Declarative Bytecode Transforms - Dynamic Host Patch Adjustments (ADR-0030) |
| - Unified Mixin 0.8.7 Service - Granular Conflict Pre-flight Assessment |
+-----------------------------------------------------------------------------------+
| Poly Transforming ClassLoader & JRE 25 |
+-----------------------------------------------------------------------------------+
| Minecraft: Java Edition (26.x) |
+-----------------------------------------------------------------------------------+

1) 단일 JVM 멀티로더 동시 구동​

별도의 에뮬레이션이나 프로세스 복제 없이, 단일 게임 클래스로더 상에서 Poly 모드가 Fabric·Quilt 모드, 그리고 Forge 모드나 NeoForge 모드(둘 중 하나)와 함께 실행됩니다. Forge와 NeoForge의 FML 서비스는 Poly가 관리하는 레이어 내부에서 동작하며, Fabric과 Quilt 모드는 통합 Mixin 파이프라인으로 구동됩니다.

2) 사전 호환성 진단 (POLY-COMPAT-224)​

Forge나 NeoForge가 바닐라 클래스를 패치했을 때 기존 Fabric Mixin이 충돌할 수 있습니다. Poly는 **호스트 패치 사전 검사(HostPatchCheck)**를 내장하여:

  • 부팅 전 모든 모드의 Mixin을 실제 패치된 바이트코드와 대조합니다.
  • 안전하게 변환 가능한 경우 파라미터 재배열, 호출 대체 등으로 실시간 적응(HostPatchAdjustments)시킵니다.
  • 호환이 불가능한 모드는 시작 전에 안전하게 격리하고 명확한 진단 코드(POLY-COMPAT-224)를 남겨 게임 크래시를 방지합니다.

3) 측정한 성능 부담​

  • 시작 시간, 틱 시간, 메모리: 측정한 시나리오에서 바닐라와의 차이는 측정 오차 범위 안입니다(성능). 측정 없이 개선을 주장하지 않습니다.
  • 그래픽 모드: 26.2에서 Sodium, Iris, Lithium을 포함한 인기 Fabric 모드가 클라이언트에서 함께 월드를 플레이합니다.
  • 다크 테마 로딩 오버레이: 세련된 #0E131F 커스텀 화면과 실시간 로더별 활성 모드 수 뱃지를 제공합니다.

3. 현재 릴리스 현황 (Release 1.4.0)​

구성 요소대상 / 범위상태참고 사항
지원 마인크래프트26.1, 26.1.1, 26.1.2, 26.2, 26.3안정(Stable)전 플랫폼 Java 25 필수.
Fabric 모드 지원Fabric Loader 0.19.5 API / Mixin 0.8.7검증됨26.2에서 인기 Fabric 모드 138개(Sodium, Iris, Lithium 등)가 클라이언트에서 함께 월드를 플레이하고, 100개가 실제 전용 서버를 시작합니다. 26.3(2026-10-27, 헤드리스): 게임 테스트 서버 98개 로드 / 73개 제외, 전용 서버 100 / 74.
Quilt 모드 지원Quilt Loader 0.31.x / quilt.mod.json검증됨26.1, 26.1.2, 26.2에서 Modrinth의 Quilt 전용 판 전부(26.2는 114개). 26.3(2026-10-27, 헤드리스): 전용 서버 112개 로드 / 34개 제외, Quilt 전용 판 91개 중 73개 로드, 실제 Quilt Loader와 91개 중 89개 같은 판정.
Forge 모드 지원MinecraftForge 62.0.9 ~ 66.1.0검증됨26.1, 26.1.2, 26.2에서 클라이언트, 전용 서버, 게임 테스트 서버. 26.3(2026-10-27, 헤드리스): 게임 테스트 서버 38개 중 30개, 전용 서버 41개 중 33개.
NeoForge 모드 지원NeoForge 26.1.0 ~ 26.3.0검증됨NeoForge 자신의 FML로 실행. 26.3(2026-10-27, 헤드리스): FML이 게임 테스트 서버에서 50개, 전용 서버에서 49개 로드. Forge 모드와 한 게임에서는 실행하지 않음(POLY-COMPAT-221).
Forge 옆 Fabric 모드26.2 묶음(corpusFabricForge)부분 지원(Partial)1.4.0 측정: 외래 모드 85개 로드, 81개 제외. POLY-COMPAT-224로 제외: Fabric API의 fabric-content-registries-v0(익사와 유체 점프는 Forge 호출로 연결할 수 없음) 및 Fabric 모드 3개(Architectury, Balm, Lithium). fabric-biome-api-v1은 나중에 실패하는 대신 POLY-COMPAT-112로 제외됩니다(링크 검사가 Forge의 패치된 게임을 읽어 Forge에 ClearableLazy가 있는 자리에 ChunkGenerator.featuresPerStep을 Supplier로 쓰는 것을 감지).
NeoForge 옆 Fabric 모드26.2 묶음(corpusFabricNeoForge)부분 지원(Partial)1.4.0 측정: 외래 모드 47개 로드, 69개 제외(1.3.0: 40 / 76). POLY-COMPAT-224로 빠지는 Fabric API 모듈은 3개(content-registries, data-generation, registry-sync)뿐입니다. 1.4.0부터 Poly Mod Loader는 NeoForge 26.2.0.93 훅 기반의 자체 fabric-block-api-v1 및 fabric-item-api-v1 빌드(Apache-2.0 하의 Sinytra Forgified Fabric API에서 적응된 "호스트 모듈")를 제공하여 원본 대신 사용하며, events-interaction, transfer, entity-events, resource-conditions, crash-report-info는 브리지를 통해 로드됩니다. NeoForge 26.3: 43 / 73, 7개 모듈 여전히 제외(26.3용 호스트 모듈 아직 없음). NeoForge 옆에 설치된 Forgified Fabric API는 더 이상 시작 시 게임을 멈추지 않습니다(중첩된 Fabric Loader 플러그인 제외).
26.3에서 로더 섞어 쓰기Fabric·Quilt + Forge 또는 NeoForge부분 지원(1.2.5)2026-10-28, 헤드리스 측정: 26.3 묶음의 혼합 로더 실행이 모두 통과합니다. Forge 옆 Fabric 80개 로드 / 86개 제외, Forge 옆 Quilt 95 / 86, NeoForge 옆 Fabric 40 / 76, NeoForge 옆 Quilt 83 / 96. 1.2.4에서는 이런 게임이 시작에서 멈췄습니다. 창 실행은 아직 하지 않았습니다.
NeoForge 주입점 검증화면, 컨테이너 메뉴, 데이터 어태치먼트검증 완료NeoForge 26.2.0.93 패치 클라이언트 및 바닐라 26.2 대상 정합성 검증 완료.
통합 설치 프로그램크로스 플랫폼 .jar완료 (1.2.4)Windows, macOS, Linux (Java 17+) 단일 파일 통합.
커스텀 로딩 UIPolyLoadingOverlay완료 (1.4.0)1.4.0부터 클라이언트에서 모든 로더가 게임 로딩 화면과 똑같이 생긴 하나의 초기 로딩 창(Mojang 배경, 로고, 진행 막대, Poly 큐브, 로더별 모드 수)을 공유합니다. Forge와 NeoForge는 더 이상 FML의 자체 초기 창을 열지 않습니다. macOS는 아직 지원하지 않으며 -Dpoly.earlyWindow=off로 끌 수 있습니다.
버그 리포트 연동공식 GitHub Issues 직통 라우팅완료오류 및 크래시 시 공식 이슈 트래커로 바로 연결.

4. 향후 로드맵 및 마일스톤​

마일스톤 A: 클라이언트 & NeoForge Fabric API 적응 (진행 중)​

  • 완료 (2026-10-27): NeoForge 주입점을 NeoForge의 패치된 클라이언트와 바닐라 클라이언트에 대조(NeoForgeInjectionPointsTest). 26.2에서 1.2.4로 Forge·NeoForge 옆 Fabric 모드를 측정: Forge 옆에서는 빠지는 Fabric API 모듈이 없지만 Fabric 모드 4개가 빠지고, NeoForge 옆에서는 Fabric API 모듈 10개가 빠집니다.
  • 완료 (1.2.5, 2026-10-28): 26.2에서 Forge 옆 Puzzles Lib의 Fabric 판이 다시 로드됩니다(88개 로드 / 78개 제외). 26.3에서 로더 섞어 쓰기가 됩니다(헤드리스).
  • 완료 (1.4.0, 2026-10-30): 26.2에서 NeoForge 옆 fabric-block-api-v1·fabric-item-api-v1 호스트 모듈 탑재 및 5개 모듈 브리지 연동(POLY-COMPAT-224는 3개만 남음), 외래 모드 47개 로드 / 69개 제외(26.3은 43 / 73), Forgified Fabric API 시작 중단 해결. Forge 옆은 26.2에서 외래 모드 85개 로드 / 81개 제외(fabric-content-registries-v0은 POLY-COMPAT-224, fabric-biome-api-v1은 POLY-COMPAT-112로 제외).
  • NeoForge 다음 호스트 모듈: fabric-registry-sync-v0, fabric-content-registries-v0, fabric-data-generation-api-v1, 이후 NeoForge 26.3.0.98.
  • fabric-screen-api-v1: GuiMixin:onExtractGui를 재타겟팅하여 NeoForge 클라이언트 UI 모드(ModMenu 등) 호환성 확보.
  • fabric-menu-api-v1 & fabric-data-attachment-api-v1: NeoForge의 메뉴 오픈 및 어태치먼트 확장과 연동.
  • 렌더링 및 모델 모듈: fabric-renderer-api-v1, fabric-rendering-v1, fabric-model-loading-api-v1 적응.

마일스톤 B: Minecraft 26.3 실세계 대규모 모드팩 코퍼스 검증​

  • 헤드리스, 로더 하나씩 (2026-10-27): 26.3 묶음(mod-corpus-26.3.json: Fabric 43개, Forge 42개, NeoForge 44개)과 Quilt 묶음(Quilt 전용 판 91개)이 로더 하나씩 헤드리스 서버·게임 테스트 실행을 통과했습니다. (Quilt 게임 테스트 서버 실행은 26.2 형식 데이터를 담은 PurpurPacks 데이터 팩 모드 5개를 빼면 통과합니다. 모드 쪽 문제입니다.)
  • 26.3에서 로더 섞어 쓰기: 1.2.5부터 헤드리스 실행에서 됩니다(1.2.4에서는 이런 게임이 모두 시작에서 멈췄습니다). Forge 옆에서는 Architectury, Balm, Lithium, Puzzles Lib과 Fabric API 모듈 3개가 아직 빠집니다. 26.3의 창(클라이언트) 실행은 아직 하지 않았습니다.
  • 26.3 변경사항(SDL 키보드 처리, 셰이더 #include, 데이터팩 오버레이 형식) 대응 강화.

마일스톤 C: 기술 벤치마크​

  • 독립 로더 대비 메모리, 틱레이트, 시작 속도 정밀 벤치마크 데이터 공개.

장기 계획: Forge on NeoForge​

  • NeoForge를 호스트로 두고 MinecraftForge 모드를 그 위에서 실행하는 9단계 브릿지 파이프라인 (F-N0 ~ F-N8).
커피 한 잔 후원하기