앞선 글에서는 품질 시스템을 활, 석궁, 갑옷까지 확장한 뒤 실제 게임에서 기능이 제대로 작동하지 않았던 첫 번째 원인을 확인했습니다.
구체화 담당에게 구현 결과를 다시 분석하도록 맡긴 결과, 기존 디버그 설정 함수의 선언이 빠지면서 스크립트 실행 자체를 막을 수 있는 문제가 발견됐습니다.
하지만 구현된 확장판 전체를 함께 점검하면서 수정해야 할 부분이 더 있다는 것도 확인했습니다.
이번에는 단순히 스크립트를 다시 실행시키는 것에서 끝나는 것이 아니라, 이전 버전에서 만들어둔 품질 아이템과 새로 추가된 확장 기능이 함께 사용될 때 문제가 생기지 않는지도 확인해야 했습니다.
그래서 구체화 담당이 정리한 수정 사항을 다시 인수인계 문서로 만들고, 이를 구현 담당에게 전달해 확장판을 재수정하기로 했습니다.
마인크래프트 BE 품질 시스템을 확장하는 과정에서 어떤 오류가 생겼을까?
앞선 글에서는 검과 작업 도구에만 적용하던 품질 시스템을 활, 석궁, 갑옷까지 확장하기 위해 어떤 규칙을 먼저 정했는지 정리했습니다.기존에 정상 작동하던 기능은 최대한 유지하면서 활과
buildtheidea.tistory.com
기존 아이템을 새 구조로 옮기는 과정에서도 문제가 있었다
이번 확장에서는 활과 석궁, 갑옷을 새롭게 지원하는 것뿐 아니라 다이아몬드 장비의 품질을 네더라이트 장비로 그대로 계승하는 기능도 추가했습니다.
이를 위해서는 이전보다 더 많은 정보를 아이템 내부에 저장해야 했습니다.
기존에는 공격력이나 이동 속도, 치명타처럼 실제 효과에 필요한 최종 수치를 중심으로 저장해도 기능을 작동시키는 데 큰 문제가 없었습니다.
하지만 장비의 품질을 다른 아이템으로 정확하게 이어주려면
품질 등급
선택된 특성
특성의 순서
특성의 단계
실제 적용 수치
까지 함께 유지할 필요가 있었습니다.
문제는 이전 버전에서 이미 만들어진 아이템에는 새롭게 추가한 데이터 구조가 없다는 점이었습니다.
그래서 기존 품질 아이템의 데이터를 새로운 구조로 옮기는 마이그레이션 과정이 필요했습니다.
정교와 극상 품질이 견고로 바뀔 수도 있었다
처음 구현된 마이그레이션 방식에서는 기존 아이템의 품질을 직접 읽는 대신, 아이템이 가진 특성 수치를 보고 품질을 추측하는 부분이 있었습니다.
특성이 모두 음수라면 조잡, 특성이 없다면 평범, 양수 특성이 있다면 견고처럼 구분하는 방식이었습니다.
하지만 이렇게 하면 견고 이상의 품질을 정확하게 나눌 수 없습니다.
정교와 극상 역시 양수 특성을 가지고 있기 때문입니다.
예를 들어 기존에 품질: 극상인 다이아몬드 검이 있더라도 새로운 내부 데이터에는 견고로 저장될 가능성이 있었습니다.
기존 Lore가 그대로 남아 있는 동안에는 겉으로 문제가 드러나지 않을 수도 있습니다.
하지만 이후 이 검을 네더라이트로 승급하면서 새로운 데이터를 기준으로 이름과 Lore를 다시 만든다면 원래 극상이었던 아이템이 견고로 바뀔 수 있습니다.
그래서 기존 품질은 수치로 추측하지 않기로 했습니다.
이미 아이템 Lore에 기록돼 있는 실제 품질을 직접 읽고, 그 정보를 새로운 데이터 구조에 그대로 옮기는 방식으로 수정했습니다.
기존 아이템을 새로운 기준으로 다시 판정하는 것이 아니라, 이미 가지고 있던 정보를 보존하는 쪽으로 방향을 정한 것입니다.
특성의 순서도 그대로 남겨야 했다
기존 품질 시스템에는 특성이 여러 개 붙었을 때 첫 번째로 선택된 특성을 아이템 이름의 대표 수식어로 사용한다는 규칙이 있었습니다.
예를 들어 어떤 다이아몬드 검의 특성이
치명타 확률 +8%
공격력 +4
순서로 붙었다면 첫 번째 특성을 기준으로 아이템의 대표 수식어가 결정됩니다.
그런데 마이그레이션 과정에서 기존 Lore의 순서를 무시하고 코드에 정의돼 있는 특성 순서대로 데이터를 다시 만들면 원래 순서가 달라질 수 있습니다.
기존에는 치명타 확률 → 공격력이었던 아이템이 공격력 → 치명타 확률 순서로 바뀔 수 있는 것입니다.
실제 능력치가 같더라도 첫 번째 특성이 달라지면 아이템 이름에 붙는 대표 수식어까지 바뀔 수 있습니다.
그래서 기존 아이템은 Lore에 표시돼 있던 특성 순서를 그대로 읽고, 기존 이름에 사용된 대표 수식어 역시 최대한 유지하도록 수정했습니다.
품질과 실제 수치뿐 아니라, 처음 결정됐던 특성의 순서도 아이템 정보의 일부로 보존하기로 한 것입니다.
실제 수치와 함께 특성 단계도 저장하기로 했다
구체화 과정에서는 특성의 stage 값이 새 데이터에 제대로 저장되지 않는 문제도 발견했습니다.
예를 들어 치명타 확률 +6%라는 값만 가지고 있어도 현재 전투 계산 자체는 가능합니다.
하지만 품질 시스템에서는 이 +6%가 몇 단계 특성에서 나온 값인지도 원본 정보의 일부였습니다.
그래서 새로 생성되는 품질 아이템부터는
특성 종류
특성 단계,
실제 적용 수치
를 함께 저장하도록 수정했습니다.
기존 버전에서 만들어진 아이템은 정확한 단계 원본이 남아 있지 않을 수도 있습니다.
이 경우에는 새로운 단계를 무작위로 다시 뽑지 않도록 했습니다.
기존 수치에서 정확하게 단계를 계산할 수 있다면 복원하고, 그렇지 못하다면 기존에 실제 적용되고 있던 수치를 우선 보존하는 방식입니다.
마이그레이션의 목적은 과거 아이템을 새롭게 만드는 것이 아니라 현재 상태를 가능한 한 그대로 새로운 구조에 옮기는 것이기 때문입니다.
기존 월드에 이미 있던 활과 갑옷도 처리해야 했다
확장판에서는 활, 석궁, 갑옷이 새롭게 품질 시스템의 대상이 됐습니다.
그런데 새 품질 생성이 아이템이 인벤토리에 들어오는 순간을 중심으로 작동한다면 문제가 생길 수 있습니다.
이전 버전의 월드에서 이미 활이나 다이아몬드 갑옷을 가지고 있던 플레이어라면, 업데이트 이후에도 해당 아이템은 새롭게 획득한 것이 아닙니다.
따라서 품질 생성 이벤트가 발생하지 않고 그대로 남을 가능성이 있었습니다.
그래서 확장판에서는 플레이어가 접속한 뒤 한 번 인벤토리와 장착 중인 갑옷을 확인하도록 보완했습니다.
실제 품질 데이터가 이미 존재하는 아이템은 그대로 유지하고,
새로운 지원 대상이지만 아직 품질 데이터가 없는 아이템에만 최초 한 번 품질을 생성하도록 했습니다.
기존 도구와 검은 이미 정상적인 품질을 가지고 있다면 다시 추첨하지 않고 필요한 데이터만 마이그레이션하도록 했습니다.
toolq:done 하나만 확인해서도 안 됐다
기존 버전에서는 아이템 처리가 끝났는지를 표시하기 위해 toolq:done이라는 값을 사용하고 있었습니다.
하지만 이전에는 활과 갑옷이 품질 시스템의 지원 대상이 아니었습니다.
그 과정에서 실제 품질은 없는데도 toolq:done 값만 기록된 아이템이 존재할 가능성이 있었습니다.
확장판에서 toolq:done = true 라는 이유만으로 품질 처리를 종료한다면 새롭게 지원하게 된 활과 갑옷도 품질을 받지 못할 수 있습니다.
그래서 새로운 버전에서는 이 값 하나만 보고 품질 적용 여부를 판단하지 않도록 했습니다.
실제 품질 정보가 존재하는지
새 데이터 버전이 있는지
구조화된 특성 데이터가 있는지
등을 함께 확인해 정말 품질 시스템이 적용된 아이템인지를 판단하도록 수정했습니다.
기존 구조에서는 충분했던 하나의 표시가 시스템의 범위가 넓어진 뒤에는 더 이상 완전한 기준이 될 수 없었던 것입니다.
모든 문제를 이번 수정에서 해결하려고 하지는 않았다
전체 코드를 확인하면서 이번 작업 범위 밖의 문제도 보였습니다.
현재 이동 속도와 방어력 일부는 마인크래프트의 신속, 구속, 저항 같은 효과를 활용하고 있었습니다.
이 방식에서는 품질 시스템과 무관하게 플레이어가 사용한 포션 효과와 충돌할 가능성이 있습니다.
하지만 이 문제를 해결하려면 이동 속도와 방어력 처리 방식을 크게 다시 설계해야 할 가능성이 있었습니다.
그래서 이번 수정에서는 이 문제까지 억지로 포함하지 않았습니다.
현재 구조의 제한사항으로 남겨두고, 이번에는 실제로 확인된 확장판의 오류와 기존 아이템 호환 문제를 해결하는 데 집중했습니다.
대신 전투 디버그는 기본적으로 꺼진 상태로 바꾸고, 갑옷의 이동 속도가 0.5% 단위를 사용하는 만큼 테스트 설정창에서도 0.5 단위로 값을 조절할 수 있도록 작은 부분까지 함께 정리했습니다.
수정 사항을 다시 구현 담당에게 전달했다
구체화 담당의 분석이 끝난 뒤에는 발견된 내용을 하나의 수정 인수인계 문서로 정리했습니다.
이번 수정의 핵심은 확장판 전체를 처음부터 다시 만드는 것이 아니었습니다.
이미 정상적으로 구현된 검과 작업 도구의 기능
활과 석궁의 품질 구조
화살의 전투 데이터 처리
갑옷 4부위의 능력치 합산
같은 부분은 유지했습니다.
대신
기존 디버그 함수 구조
기존 아이템 품질 마이그레이션
특성 순서와 대표 수식어 보존
특성 단계 저장
기존 월드의 신규 지원 장비 초기화
품질 적용 여부 판정
처럼 실제로 문제가 확인된 부분을 중심으로 수정하도록 했습니다.
이 수정 인수인계 문서를 구현 담당에게 다시 전달했고, 구현 담당은 해당 내용을 기준으로 확장판을 재수정했습니다.
재수정한 확장판을 다시 게임에서 확인했다
수정된 애드온을 받은 뒤에는 다시 마인크래프트 BE에 적용해 직접 테스트했습니다.
이번에는 단순히 스크립트가 정상적으로 로드되는지만 확인한 것이 아니었습니다.
- 새롭게 추가한 활과 석궁, 갑옷의 품질 기능이 실제로 작동하는지
- 기존 품질 아이템의 정보가 그대로 유지되는지
- 기존 장비가 업데이트 과정에서 다시 추첨되지 않는지
- 새로운 데이터 구조와 기존 아이템이 함께 사용될 수 있는지
- 확장하면서 추가한 기능들이 실제 게임에서도 의도한 결과를 내는지
다시 확인했습니다.


그 결과 이번에 수정 대상으로 잡았던 문제들이 해결됐고, 계획했던 확장 기능 역시 실제 게임에서 정상적으로 작동하는 것을 확인했습니다.
처음 확장판을 적용했을 때처럼 스크립트 실행 자체가 막히는 문제도 사라졌고, 기존 품질 아이템과 새 확장 시스템도 함께 사용할 수 있었습니다.
이번 품질 시스템 확장 단계는 여기서 마무리할 수 있었다
이번 작업의 목표는 품질 시스템 전체를 완성하는 것이 아니라, 기존 도구 중심의 구조를 활·석궁·갑옷까지 안정적으로 확장하는 것이었습니다.
이번 단계의 목표는 기존 도구 중심의 품질 시스템을 활과 석궁, 갑옷까지 넓히고, 기존 아이템과 새로운 데이터 구조가 함께 문제없이 작동하도록 만드는 것이었습니다.
처음 확장판을 구현했을 때는 단순한 함수 구조 오류 때문에 기능을 제대로 확인하기조차 어려웠습니다.
하지만 구체화 담당에게 구현 결과를 다시 분석하도록 맡기면서 실행 오류뿐 아니라 기존 품질의 마이그레이션, 특성 순서, 단계 정보, 기존 월드의 장비 처리 같은 문제까지 함께 찾을 수 있었습니다.
그 내용을 다시 구현 담당에게 전달해 수정한 뒤 실제 게임에서 확인하면서 이번에 계획했던 확장 범위는 정상적으로 작동하는 단계까지 도달했습니다.
특히 이번 과정에서는 새 기능을 추가하는 것만큼 기존 아이템의 정보를 그대로 유지하면서 시스템을 확장하는 것도 중요하다는 점을 확인할 수 있었습니다.
품질 시스템의 개발은 이후에도 계속 이어졌지만, 도구에서 시작한 구조를 활·석궁·갑옷까지 넓히기 위해 진행했던 이번 확장 작업은 여기서 정상적으로 마무리할 수 있었습니다.
'AI로 구현하기' 카테고리의 다른 글
| 마인크래프트 BE 품질 시스템에 장비 성장 기능을 추가하려면 무엇부터 정해야 할까? (0) | 2026.09.30 |
|---|---|
| 마인크래프트 BE 품질 시스템에 새로운 장비를 추가하려면 기존 구조를 어떻게 활용해야 할까? (0) | 2026.09.30 |
| 마인크래프트 BE 품질 시스템을 확장하는 과정에서 어떤 오류가 생겼을까? (0) | 2026.09.29 |
| 마인크래프트 BE 도구 품질 시스템을 다른 장비까지 확장하려면 무엇을 정해야 할까? (0) | 2026.09.28 |
| 마인크래프트 BE 도구 품질 시스템은 어떻게 원하는 조건으로 바로 테스트할 수 있을까? (0) | 2026.09.28 |