1. 개요
커스텀 맵을 제작하다보면 명령어를 쓰이게 될것이다. 유튜브 보고 배우거나 커뮤니티 질문에서 정보를 얻어오기도 한다. 하지만 대부분 최적화가 안되어있거나, (작동하지만) 더 나은 방법이 있는 명령어가 있다.2. 프로파일링
프로파일링란 속도를 개선하기 위해 실행되는 동안 특정 함수의 실행 시간 등을 추적하는 것을 말한다. 마인크래프트는 여러 가지 프로파일링 도구를 지원하며 일부 프로파일링 도구는 모드에 속한다.2.1. /debug
환경: 바닐라, 난이도: 쉬움, 중요도: 선택2.2. /perf 또는 F3+L
환경: 바닐라, 난이도: 보통, 중요도: 필수https://misode.github.io/report/ 이 사이트 권장.
3. 최적화
3.1. 대상 선택 인자
3.1.1. [nbt={}]
다른 선택자와 달리 심각한 성능 저하가 발생한다.execute if entity @s[scores={...}]
를 매 틱마다 10000번 실행하면 mspt가 꽤 상승했지만 게임이 지장을 줄 정도의 렉은 없다. 반면 execute if entity @s[nbt={...}]
를 매 틱마다 1000번 실행하면 TPS가 20에서 10으로 떨어진다.따라서
[nbt={}]
대체 문법을 사용하거나, 불가피하게 사용하더라도 한번 감지하고 해당 개체에 tag를 추가하는 등으로 최적화 할 수 있다.3.2. function(함수) 사용
데이터 팩 사용함으로서 대상 선택자를 줄여 최적화가 가능하다.명령 블록이라면
@e[tag=namu]
가 여러 개라 성능 저하가 발생하게 된다.effect give @e[tag=namu] nausea execute at @e[tag=namu] run setblock ~ ~1 ~ stone execute at @e[tag=namu] run setblock ~ ~2 ~ grass tp @e[tag=namu] ~ ~5 ~ ... |
execute as @e[tag=namu] at @s run function ... {{{#!wiki | effect give @s nausea setblock ~ ~1 ~ stone setblock ~ ~2 ~ grass tp @s ~ ~5 ~ ... | }}} |