NeoForge 26 소개 — 무엇이 새로운가
NeoForge 26.1.2와 Minecraft 26.1.2의 4대 혁신(현대 렌더링 백엔드 추상화, 난독화 제거, JDK 25, 새 이벤트 시스템)을 소개하고 학습 로드맵을 안내합니다.
왜 NeoForge 26인가?
Minecraft가 연도 기반 버전 체계로 전환했습니다. 26.1.2는 2026년 첫 번째 주요 릴리즈의 두 번째 패치를 뜻합니다. 단순한 숫자 변경이 아닙니다. 이 버전은 모딩 생태계 전체를 뒤흔드는 네 가지 근본적인 변화를 담고 있습니다.
NeoForge 팀은 이 변화에 발맞춰 API를 전면 재설계했습니다. 기존 1.20.x나 1.21.x 경험이 있다면 익숙한 패턴도 있겠지만, 상당 부분이 새롭게 느껴질 겁니다. 이 코스는 그 새로운 세계를 처음부터 차근차근 안내합니다.
4대 변화
🎮 현대 렌더링 백엔드 추상화
Minecraft 26.1.2의 렌더링 스택이 현대화됐습니다. 렌더 백엔드는 OpenGL 기반이며, GPU/드라이버 환경에 따라 Vulkan을 선택적으로 활성화할 수 있습니다. F3 디버그 화면에 표시되는 OpenGL 버전은 GPU·드라이버·실행 환경에 따라 달라질 수 있으며, 본 코스 검증 환경(NVIDIA GeForce RTX 3070, 드라이버 595.79)에서는 OpenGL 3.3.0 NVIDIA 595.79로 표시됩니다.
모더 입장에서 이 변화가 중요한 이유는 두 가지입니다.
첫째, 커스텀 렌더러나 셰이더를 작성할 때 백엔드 독립적 추상화 API를 이해해야 합니다. NeoForge는 PoseStack, MultiBufferSource 같은 추상화 레이어를 제공하므로, 어느 백엔드에서든 동일한 코드가 동작합니다.
둘째, 직접 GL 호출(GL11.glRotate 등)은 비권장됩니다. 백엔드 업데이트나 교체 시 미정의 동작을 유발할 수 있습니다. 항상 NeoForge Rendering API를 사용하세요.
이 코스에서는: phase-4 이후 렌더링 챕터에서 NeoForge 추상화 기반 커스텀 렌더러를 다룹니다. phase-0~3에서는 렌더링 지식 없이도 아이템과 블록을 만들 수 있습니다.
🔓 난독화 제거
Mojang이 26.1.2부터 소스 코드 난독화를 공식 제거했습니다. 클래스명, 메서드명, 필드명이 모두 원본 그대로 배포됩니다.
이게 왜 중요한가? 이전까지 모더들은 a.b(), c.d 같은 난독화된 이름을 사람이 읽을 수 있는 이름으로 변환하는 매핑 파일이 필요했습니다. 매핑 업데이트가 늦어지면 모드 업데이트도 지연됐고, 매핑 간 충돌로 인한 버그도 잦았습니다.
이제 그런 문제가 사라집니다. BlockEntity, ItemStack, ServerPlayer 같은 이름을 Minecraft 소스에서 직접 볼 수 있습니다. IDE 자동완성도 훨씬 정확해집니다.
실습 영향: 이 코스의 모든 코드 예시는 난독화 없는 원본 이름을 사용합니다. 구글링할 때 나오는 구버전 튜토리얼의 이름과 다를 수 있으니 주의하세요.
☕ JDK 25 필수 요구
Minecraft 26.1.2는 JDK 25를 요구합니다. JDK 21 이하로는 실행되지 않습니다.
JDK 25의 주요 특징 중 모딩에 직접 영향을 주는 것들:
- 패턴 매칭 완성:
switch표현식에서 타입 패턴과 가드 조건을 자유롭게 조합할 수 있습니다. - 레코드 패턴: 복잡한 데이터 구조를 분해하는 코드가 훨씬 간결해집니다.
- 가상 스레드 안정화: 비동기 서버 로직 작성이 쉬워집니다.
NeoForge API 자체도 이 기능들을 적극 활용합니다. 이 코스의 예제 코드도 마찬가지입니다.
환경 설정: JDK 25 설치는 다음 챕터(01-environment)에서 다룹니다.
⚡ 새 이벤트/네트워킹 시스템
NeoForge 26의 이벤트 시스템이 전면 재설계됐습니다. 기존 @SubscribeEvent 어노테이션 방식은 유지되지만, 새로운 함수형 등록 API가 추가됐습니다.
네트워킹도 마찬가지입니다. 패킷 등록과 처리 방식이 타입 안전한 방향으로 바뀌었고, 클라이언트-서버 간 통신 코드가 훨씬 명확해졌습니다.
이 변화들은 phase-4(이벤트)와 phase-5(고급 API)에서 자세히 다룹니다.
학습 로드맵
이 코스는 7개 phase로 구성됩니다. 각 phase는 이전 phase를 기반으로 쌓아 올립니다.
| Phase | 주제 | 핵심 내용 |
|---|---|---|
| phase-0 | 환경 설정 | JDK 25, IntelliJ, NeoForge MDK 세팅 |
| phase-1 | 핵심 개념 | 모드 구조, 레지스트리, 리소스 팩 |
| phase-2 | 아이템 | 커스텀 아이템, 도구, 음식, 마법 부여 |
| phase-3 | 블록 | 커스텀 블록, BlockEntity, 인벤토리 |
| phase-4 | 이벤트 | 이벤트 버스, 네트워킹, 커맨드 |
| phase-5 | 고급 API | 렌더링, 데이터팩, 월드젠 |
| phase-6 | 마스터 캡스톤 | 4개 실전 프로젝트 |
대상 독자와 선수 지식
이 코스는 Java를 어느 정도 아는 사람을 대상으로 합니다. 정확히는:
필요한 것
- Java 기초 문법 (클래스, 인터페이스, 제네릭, 람다)
- 객체지향 개념 이해 (상속, 다형성, 캡슐화)
- IDE 사용 경험 (IntelliJ 권장)
있으면 좋은 것
- Minecraft 플레이 경험 (아이템, 블록, 엔티티 개념 이해)
- Gradle 빌드 시스템 기초
- Git 기본 사용법
없어도 되는 것
- 이전 버전 NeoForge/Forge 경험 (오히려 없는 게 나을 수도 있습니다)
- Kotlin, Scala 등 JVM 언어 경험
- 그래픽스 프로그래밍 지식 (phase-5 전까지는)
Java를 처음 배우는 단계라면 이 코스보다 Java 기초 학습을 먼저 권장합니다.
phase-6 마스터 캡스톤 미리보기
phase-5까지 마치면 네 가지 실전 프로젝트 중 하나를 선택해 완성합니다. 각 프로젝트는 독립적이며, 관심 분야에 따라 골라서 진행할 수 있습니다.
🔨 도구 모드 (Tools Mod)
새로운 광물, 합금, 도구 세트를 추가하는 모드. 아이템 시스템과 레시피 시스템을 깊이 다룹니다. 소스: examplemod-master-projects/tools/
🌌 차원 모드 (Dimension Mod)
완전히 새로운 차원을 추가하는 모드. 월드젠, 바이옴, 구조물 생성을 다룹니다. 소스: examplemod-master-projects/dimension/
⚙️ 기계 모드 (Machine Mod)
에너지와 아이템을 처리하는 기계 블록 모드. BlockEntity, 커스텀 GUI, 네트워킹을 집중적으로 다룹니다. 소스: examplemod-master-projects/machine/
🏆 종합 캡스톤 (Capstone)
위 세 가지 요소를 모두 통합한 미니 모드팩 수준의 프로젝트. 소스: examplemod-master-projects/capstone/
다음 챕터에서는 개발 환경을 직접 설정합니다. JDK 25 설치부터 첫 번째 빌드 성공까지 단계별로 진행합니다.