마인크래프트 자바에디션 26.1 "Tiny Takeover" - 기술적 업데이트 정리
마인크래프트가 2026년 3월 24일, 새로운 연도 기반 버전 관리 시스템이 적용된 26.1 "Tiny Takeover" (타이니 테이크오버) 업데이트를 정식 출시했습니다.
이 글의 작성에는 AI가 사용되었습니다.
1. 코어 시스템 및 엔진 업데이트
마인크래프트의 기반이 되는 실행 환경과 내부 렌더링 엔진이 대대적으로 개편되었습니다.
1.1 Java 런타임 및 메모리
- Java 25 요구: 이제 게임 실행을 위해 Java 25가 필수적입니다.
- 메모리 할당량 및 GC: 런처 기본 RAM 할당량이 4GB로 상향되었으며, 호환 기기에서 Generational ZGC를 기본 가비지 컬렉터로 채택하였습니다.
1.2 공식 난독화 해제
- 배포되는 마인크래프트의
jar파일이 난독화되지 않은 상태로 제공됩니다. 기존의 난독화 해제 과정이 제거되어 접근성이 향상되었습니다.
1.3 시스템 상태 알림
- 디스크 용량 경고: 월드 저장 중 디스크 용량이 부족할 경우 우측 상단에 알림이 표시됩니다.
1.4 입력기(IME) 후보창 인게임 렌더링
- 한국어 등 조합형 문자를 위한 IME 후보창이 게임 UI 내부에서 직접 렌더링됩니다. 창 모드나 전체 화면 모두에서 깔끔한 입력 환경을 제공합니다.
2. 월드 저장 구조 및 NBT 개편
월드 파일이 루트 폴더에 무분별하게 혼재되던 방식을 탈피하여, 네임스페이스(Namespace) 기반의 폴더 구조로 완전히 재조정되었습니다.
2.1 파일 및 폴더 경로 변경 상세
경로 변경 내역 전체 보기
| 데이터 유형 | 기존 경로 | 신규 경로 | 비고 |
|---|---|---|---|
| 오버월드 청크 | region/ |
dimensions/minecraft/overworld/region/ |
루트에서 차원 폴더 내부로 이동 |
| 네더 차원 | DIM-1/ |
dimensions/minecraft/the_nether/ |
차원 전체 데이터 이동 |
| 엔드 차원 | DIM1/ |
dimensions/minecraft/the_end/ |
|
| 플레이어 데이터 | playerdata/ |
players/data/ |
players/ 하위로 통합 관리 |
| 발전과제/통계 | advancements/, stats/ |
players/advancements/, players/stats/ |
|
| 지도 데이터 | data/map_*.dat |
data/minecraft/maps/*.dat |
파일명에서 map_ 접두사 제거 (예: 1.dat) |
| ID 카운트 | idcounts.dat |
last_id.dat |
명칭 직관성 강화 |
| 청크 티켓 | chunks.dat |
chunk_tickets.dat |
파일명 변경 |
| 구조물 데이터 | generated/namespace/structures/ |
generated/namespace/structure/ |
단수형으로 통일 |
2.2 level.dat NBT 구조 개편 및 데이터 분리
- 전방위적 데이터 파일 분리: 기존에
level.dat하나에 담겨있던 방대한 데이터들이 관리 편의를 위해 별도 파일로 분리되었습니다.- 엔드 드래곤 전투:
dimensions/minecraft/the_end/data/minecraft/ender_dragon_fight.dat - 떠돌이 상인 데이터:
data/minecraft/wandering_trader.dat - 날씨 데이터:
data/minecraft/weather.dat - 게임 규칙 (Gamerules):
data/minecraft/game_rules.dat - 월드 시계:
data/minecraft/world_clocks.dat
- 엔드 드래곤 전투:
singleplayer_uuid(String): 기존의Player컴파운드 태그가 삭제되고, 단일 플레이어의 UUID를 저장하는 문자열 태그로 대체되었습니다.- 난이도 (Difficulty): 정수형(0~3)에서 문자열(
"peaceful","easy","normal","hard")로 변경되었습니다. difficulty_settings(Compound): 난이도 잠금(locked) 상태 등이 이 컴파운드 내부에 저장됩니다.
3. 데이터 팩 개편 (Data Packs - v101.1)
데이터 팩 포맷 버전이 101.1로 업데이트되었습니다.
3.1 주민 거래 시스템 (Data-Driven Villager Trades)
주민(Villager)과 떠돌이 상인(Wandering Trader)의 거래가 완전히 데이터 팩으로 분리되었습니다.
villager_trade (개별 거래) JSON 사양 및 예시
거래의 기본 단위를 정의하며 data/<namespace>/villager_trade/ 경로에 저장됩니다.
wants(필수): 플레이어가 지불해야 할 첫 번째 아이템. (아이템 정보id,count,components포함 가능)additional_wants(선택): 플레이어가 지불해야 할 두 번째 아이템.gives(필수): 플레이어가 받을 아이템.given_item_modifiers(선택): 결과 아이템에 적용할 전리품 함수 (Loot Functions) 배열. (예: 인챈트 적용, 이름 변경 등)max_uses(필수): 거래 비활성화 전까지 가능한 최대 횟수.experience(필수): 거래 성사 시 주민이 얻는 경험치.price_multiplier(필수): 수요에 따른 가격 변동 계수 (Float).demand(선택): 초기 수요 값.merchant_predicate(선택): 이 거래를 제안할 수 있는 주민의 특정 조건(타입, 생물군계 등).
[예시] 30레벨 인챈트 책을 파는 커스텀 사서 거래
{
"wants": { "id": "minecraft:emerald", "count": 64 },
"additional_wants": { "id": "minecraft:book", "count": 1 },
"gives": { "id": "minecraft:enchanted_book", "count": 1 },
"given_item_modifiers": [
{
"function": "minecraft:enchant_with_levels",
"levels": 30,
"treasure": true
}
],
"max_uses": 3,
"experience": 20,
"price_multiplier": 0.2
}
trade_set (거래 풀 구성) JSON 사양 및 예시
주민이 특정 레벨 도달 시 제안할 거래들의 목록(Pool)을 정의합니다. data/<namespace>/trade_set/ 경로에 저장됩니다.
amount: 세트 내에서 무작위로 선택할 거래의 개수 (Number Provider 지원).trades: 선택 후보가 될 거래 ID 리스트, 단일 ID, 혹은 태그(#접두사).allow_duplicates(Boolean): 동일한 거래가 중복 등장할 수 있는지 여부.random_sequence: 시드 기반의 결정론적 난수 생성을 위한 식별자 ID.replace(Boolean): 기존 세트를 덮어쓸지 여부.
[예시] 초보 사서의 거래 세트 묶음
{
"amount": 2,
"trades": "#minecraft:librarian/level_1",
"allow_duplicates": false,
"random_sequence": "minecraft:trade_set/librarian/level_1",
"replace": false
}
3.2 시간 시스템 (World Clock & Timeline)
월드 내 시간의 흐름을 차원별로 독립적으로 관리하고, 특정 틱(Tick)마다 이벤트를 유도할 수 있는 새로운 시스템입니다.
world_clock 및 timeline JSON 사양
world_clock레지스트리 (data/<namespace>/world_clock/)- 시간을 추적하는 독립된 객체를 생성합니다. JSON 파일은
{}처럼 비어있어도 무방합니다. - 이후
dimension_typeJSON에서clock필드로 참조하여 해당 차원의 시계를 지정합니다.
- 시간을 추적하는 독립된 객체를 생성합니다. JSON 파일은
timeline레지스트리 (data/<namespace>/timeline/)clock: 연동할world_clock식별자.time_markers: 시간 마커 정의. 명령어에서/time set <마커>형태로 쓰입니다.ticks: 마커가 위치한 정확한 틱 수 (예: 6000).show_in_commands(Boolean): 자동완성 UI에 노출할지 여부.
[예시] 커스텀 타임라인 마커 정의
{
"clock": "minecraft:overworld",
"time_markers": {
"my_mod:witching_hour": {
"ticks": 18000,
"show_in_commands": true
}
}
}
3.3 환경 속성 시스템 (Environment Attributes)
게임 내 물리적, 시각적 상태를 데이터 팩의 전리품(Loot) 조건이나 발전과제에서 체크할 수 있게 되었습니다.
- 신규 술어 (Predicate):
minecraft:environment_attribute_checkattribute: 확인할 환경 속성.value: 일치해야 하는 정확한 값.
- 주요 환경 속성 ID:
minecraft:gameplay/is_day(Boolean)minecraft:gameplay/is_raining(Boolean)minecraft:gameplay/is_thundering(Boolean)minecraft:gameplay/sky_light_level(Integer, 0~15)minecraft:gameplay/block_light_level(Integer, 0~15)minecraft:visual/sky_color,fog_color(RGB Array)
환경 속성 활용 예시 보기
비가 올 때만 특정 행동이 가능하도록 제한하는 전리품 테이블 조건:
{
"condition": "minecraft:environment_attribute_check",
"attribute": "minecraft:gameplay/is_raining",
"value": true
}
숫자 범위를 확인할 때는 value_check와 숫자 공급자(number_provider)를 조합합니다:
{
"condition": "minecraft:value_check",
"value": {
"type": "minecraft:environment_attribute",
"attribute": "minecraft:gameplay/block_light_level"
},
"range": { "min": 8, "max": 15 }
}
3.4 데이터 기반 동물 변종 (Mob Sound Variants)
성체 동물의 울음소리와 행동 패턴이 고정되지 않고, 소리 변종을 통해 개체마다 달라집니다.
- 신규 레지스트리 경로:
data/<namespace>/cat_sound_variant/data/<namespace>/pig_sound_variant/data/<namespace>/cow_sound_variant/data/<namespace>/chicken_sound_variant/
- JSON 구조:
sounds객체 내에ambient,hurt,death등의 상황에 맞는 커스텀 사운드 이벤트를 맵핑합니다.
3.5 데이터 기반 특수 조합법 (Data-Driven Special Recipes)
기존에 하드코딩되어 수정이 불가능했던 특수 조합 로직들이 데이터 팩으로 개방되었습니다. 이제 재료와 결과 아이템을 자유롭게 커스텀할 수 있습니다.
minecraft:crafting_dye: 가죽 갑옷이나 도구의 색상을 혼합하여 염색하는 로직.minecraft:crafting_imbue: 잔류형 물약을 사용해 팁 화살(Tipped Arrow)을 만드는 로직.minecraft:crafting_special_bannerduplicate: 현수막 패턴을 복사하는 로직.minecraft:crafting_special_bookcloning: 서명된 책을 복사하는 로직 (복사본의 세대 제어 가능).minecraft:crafting_decorated_pot: 도자기 파편으로 장식된 도자기를 만드는 로직.- 기타: 폭죽 로켓, 폭죽 별, 지도 확장 및 복사 조합법 등이 모두 데이터화되었습니다.
3.6 추가 데이터 팩 변경 사항
- 발전과제 조건 확장:
player서브 술어에food필드가 추가되어 배고픔 수치(level)와 포만감(saturation)을 체크할 수 있습니다. - 전리품 함수:
minecraft:set_random_dyes(랜덤 염색 적용),minecraft:set_random_potion(랜덤 물약 효과 적용) 함수가 추가되었습니다.
4. 리소스 팩 및 시각 효과 (Resource Packs - v84)
리소스 팩 형식이 84로 업데이트되었으며, 모델링과 렌더링에 큰 변화가 생겼습니다.
4.1 조명 엔진 개편에 따른 셰이더(Shader) 변경
lightmap.fsh수정:- 더 이상
AmbientLightFactor유니폼을 사용하지 않고 제거되었습니다. BlockLightTint(vec3): 블록 광원의 틴트 색상을 전역적으로 제어하는 유니폼이 추가되었습니다.NightVisionColor(float): 야간 투시 효과의 강도 및 색상 맵핑을 보정하는 유니폼이 추가되었습니다.
- 더 이상
4.2 아기 몹 (Baby Mobs) 모델 오버홀
단순히 성인 모델의 크기(Scale)를 줄이던 방식에서 벗어나, 고유한 뼈대(Bone)와 UV 맵을 가집니다.
- 고유 모델링: 머리 비율이 크고 다리가 짧은 아기 전용 모델(
baby_cow.json,baby_wolf.json등)이 리소스 팩 모델 디렉토리에 대거 추가되었습니다. - 렌더링 예외: 아기 늑대, 아기 돼지, 아기 낙타 등 특정 아기 몹은 갑옷(Armor)이나 안장(Saddle) 텍스처를 렌더링하지 않습니다.
- 고유 사운드: 고음의 전용 아기 사운드가 추가되었습니다.
4.3 아이템 모델 변환 (Transformation) 지원
아이템 모델 JSON(minecraft:model, minecraft:special 등)에 transformation 필드가 추가되었습니다. (디스플레이의 transformation과 동일) 16개의 숫자로 이루어진 매트릭스(Matrix) 배열이나 평행 이동, 크기 조절, 회전 값을 직접 정의할 수 있습니다.
5. 데이터 구성 요소 변경 (Data Components)
NBT를 대체하는 아이템 데이터 구성 요소(Components)의 기능이 확장되었습니다.
minecraft:object: 텍스트 컴포넌트 내에 머리(Head) 등 오브젝트를 렌더링할 때, 서버 환경이나 클라이언트 한계로 렌더링이 실패할 경우 표시할fallback(String) 필드가 추가되었습니다.minecraft:provides_banner_patterns: 기존에는 태그만 허용했으나, 이제 단일 패턴 ID 혹은 패턴 ID의 리스트 형식도 허용합니다.minecraft:blocks_attacks/minecraft:damage_resistant: 피해 유형을 지정하는bypassed_by와types필드에서 태그 외에도 ID 리스트(Array)를 지원하여 정의가 직관적여졌습니다.minecraft:dyed_color연동: 아이템이#minecraft:dyeable태그를 가지고 있을 경우, 신규 전리품 함수인minecraft:set_dyed_color를 사용해 가죽 갑옷처럼 누적 방식으로 염료 색상을 추가할 수 있습니다.minecraft:additional_trade_cost(Integer): 주민 거래 시 특정 아이템의 요구 수량을 일시적으로 조작하는 컴포넌트입니다. 거래 생성 시에만 사용되고 이후 삭제됩니다.minecraft:dye(Enum): 아이템에 염료 색상 정보(16색)를 직접 부여합니다.
6. 명령어 및 게임플레이 로직 (Commands & Gameplay)
6.1 명령어 업데이트
/time [of <clock>] rate <rate>: 시각적인 낮과 밤의 흐름만 조절합니다. (0.0~1000.0)/time반환값 변경:/time set또는add명령어 성공 시, 기존에는 하루 중 시간(0~24000)을 반환했으나 이제 해당 클럭의 총 경과 틱(Total Elapsed Ticks)을 반환합니다.- 신규 명령어
/fetchprofile entity <대상>: 엔티티(플레이어, 마네킹 등)의 프로필 정보를 출력합니다. - 신규 명령어
/swing <대상> [hand]: 엔티티의 휘두르기 애니메이션을 강제 실행합니다.
6.2 게임플레이/아이템 변경점
- 황금 민들레 (Golden Dandelion): 민들레 1개 + 금 조각 8개로 조합.
- 성장 제어: 아기 몹에게 우클릭 시
AgeLocked(NBT 속성)가 1로 설정되어 성장이 영구적으로 정지하며, 다시 클릭 시 0으로 초기화되어 성장이 재개됩니다. (단, 아기 주민과 언데드 계열에게는 사용 불가) - 피글린 상호작용: 피글린은 황금 민들레에 매우 큰 관심을 보입니다. 바닥에 떨어져 있으면 주워서 수 초간 관찰하며, 이때 피글린은 공격성을 보이지 않습니다.
- 양봉 환경 개선: 황금 민들레 주변 2블록 이내에서 나무가 자랄 경우, 해당 나무에 벌집(Bee Nest)이 생성될 확률이 5% 추가됩니다.
- 성장 제어: 아기 몹에게 우클릭 시
- 이름표 (Name Tag) 조합: 종이 1개 + 금속 조각(철/금) 1개로 크래프팅이 가능해졌습니다. 이에 따라 고대 도시, 삼림 대저택 전리품에서 제거되었습니다.
- 석재 절단기 (Stonecutter) 확장: 이제 심층암류 블록을 직접 가공할 수 있습니다. 돌을 바로 조약돌로 바꿀 수 있습니다.
- 번들 (Bundle) 용량 개선:
bundle_contents컴포넌트의 무게 한계가 정수 최대치까지 확장되었습니다. - 트럼펫 소리 (Trumpet): 소리 블록을 구리 블록 위에 배치하면 트럼펫 소리가 납니다. 구리의 산화도뿐만 아니라 깎인 구리(Cut Copper) 등 블록의 가공 형태에 따라서도 미세한 음색(Timbre) 차이가 발생합니다.
7. 신규 태그 (Tags) 목록
7.1 블록 및 아이템 태그
#minecraft:prevents_nearby_leaf_decay(Block): 이 태그를 가진 블록 주변의 나뭇잎은 나무가 없어도 자연 소멸(Decay)하지 않습니다. 건축용 인공 기둥 등에 사용됩니다.#minecraft:baby_mob_interactable(Block): 아기 몹만 통과하거나 상호작용할 수 있는 전용 블록 태그입니다.#minecraft:baby_food(Item): 아기 몹의 성장을 촉진시키거나, 황금 민들레처럼 상태를 제어할 수 있는 아이템 그룹입니다.#minecraft:dyeable(Item):dyed_color컴포넌트를 통해 색을 입힐 수 있는 모든 장비 및 아이템 목록입니다.
7.2 엔티티 및 파티클 태그
#minecraft:baby_mobs(Entity): 전용 모델링과 로직을 적용받는 모든 아기 개체 목록.#minecraft:immune_to_aging(Entity): 황금 민들레의 효과를 받지 않는 몹들. (예: 아기 주민, 아기 좀비 계열 등)minecraft:pause_mob_growth(Particle): 성장이 멈출 때 아래로 떨어지는 파티클.minecraft:reset_mob_growth(Particle): 성장이 재개될 때 위로 솟아오르는 파티클.
작성 참고 자료:
- Minecraft Wiki - Java Edition 26.1 (Tiny Takeover) Release Notes
- Snapshot Data structures & Official Datapack references.
'마인크래프트 강좌 > 업데이트 정리' 카테고리의 다른 글
| 마인크래프트 JE 1.21.11 기술적 업데이트 정리 (0) | 2025.12.18 |
|---|---|
| 마인크래프트 JE 1.21.9 기술적 업데이트 정리 (0) | 2025.10.04 |
| 마인크래프트 JE 1.21.6 기술적 업데이트 정리 (1) | 2025.06.04 |
| 마인크래프트 1.21.5 기술적 업데이트 정리 (0) | 2025.03.25 |
| 마인크래프트 자바에디션 1.21.5 - Text 구성요소 업데이트 정리 (0) | 2025.03.25 |