디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[정보] 보트 낙법이 특정 높이에서 안 되는 이유에 대해 연구해봄

ㅇㅇ(220.65) 2023.11.09 08:02:49
조회 15262 추천 90 댓글 15
														

쇼츠를 넘기다가 마크와 관련된 어떤 영상을 봤다


영상의 내용은 이렇다.


모두가 알다시피 보트는 추락 피해를 막아줘서 낙법으로 많이 쓰는데, 이상하게 49칸 높이에서 보트를 타고 떨어지면 추락 피해를 받고 죽는다.


하지만 플레이어가 탈 때만 그렇고, 몹이 탈 때는 아무런 문제가 없다.


보자마자 납득이 전혀 안갔는데, 그냥 보트에 탄 상태에선 추락 피해를 막아놓으면 될 것을


코드를 어떻게 짜놓았길래 특정 높이에서만 죽는거지? 라는 생각을 했다.


코드를 if (height == 49) {kill} 이따구로 짜는게 아닌 이상 특정 높이에서만 죽는다는 게 이해가 전혀 안 돼서 도대체 어떤 원리로 죽는건지 궁금증이 폭발하기 시작했고


직접 코드 분석과 구글링으로 원인을 찾아냈음.


문제의 코드는 이 부분이다




7cf3c028e2f206a26d81f6e44482746515


어려울 것 없음. 저 코드를 대충 풀어서 쓰면


1. 3칸을 초과하는 높이에서 추락할 때

2. 추락이 끝나고 보트가 땅에 닿은 상태면

3. 보트가 부숴지고 판자 3개와 막대기 2개를 드랍한다.


이걸 보면 '뭔 소리야? 보트가 추락하면 부숴진다고? 그럼 보트 낙법이 어떻게 되는데?' 라고 생각할 수도 있다


보트 낙법이 되는 이유는 2번에서 '추락이 끝난다'와 '땅에 닿는다'는 판정이 아주 이상하기 때문임


마크에서 추락이 끝난다는 것을 어떻게 판정하는지 알아보기 전에 마크의 물리법칙에 대한 이야기부터 하겠다


마크는 연산을 1틱(0.05초) 단위로 함. 즉 시간과 공간도 1초에 20번 업데이트 된다. 마크는 20프레임으로 돌아가는 세계라고 보면 됨.


즉, x=0에서 x+ 방향으로 2m/s 속도로 움직인다면, 1틱에 0.1블록을 움직이는 것이니 3.5와 3.6은 지나는데 3.55는 지나지 않는다. 마크는 이산적이기 때문이다.


(이러면 신속 255로 유리판을 못 뚫는게 이상할 수 있는데 충돌을 처리하는 코드도 따로 있는듯함)



7fef9e2cf5d518986abce8954185736bd5



보트가 추락할 때도 마찬가지인데 이 때 y좌표는 연속적으로 변하는 게 아니라 그림처럼 이산적으로 변한다.


여기서 문제가 발생하는데, '추락이 끝난다'가 보트가 완전히 땅에 닿았을 때가 아니라, 땅에 닿기 직전에 판정이 되기 때문이다.


7ef3c028e2f206a26d81f6e44188706a


10m 높이에서 떨어진다고 가정해 보자. 위에서 보듯이 보트의 가속도는 틱당 0.04인데, 이에 따라서 21틱이 되는 때에 9.24m, 22틱이 될 때 10.12m만큼 추락한다.


따라서 22틱째에 바닥에 닿고 추락이 멈춰야 하는데, 실제로는 21틱에 멈췄다고 판단해서 바닥과 보트 사이에 0.76m만큼 공간이 생기고, 이것 때문에 2번의 '땅에 닿는다'는 조건을 만족시키지 못해 보트가 부숴지지 않는 것이다.


하지만 여기서도 특이한 케이스가 있는데, 49m 높이에서 떨어지는 경우에는 48틱째에 47.04m, 49틱째에 정확히 49m로 떨어지는데


이 때는 49틱에서 멈췄다고 판단해서 보트도 부숴지고 플레이어도 뒤지는 것.


이렇게 추락하는 높이가 딱 정수로 떨어질 때 보트가 부숴지는 것인데, 49 외에도 12, 13, 51, 111, 114 등등이 있다. (25n^2 ± n) / 2 꼴을 만족하기만 하면 된다.


물론 저런 높이에서도 데미지를 안 받는 방법은 있다.



28a7d72fe39c3ba963f2c0bc12d42b70ed1783faf37afaf5b7acc4b5c85a1b8c5ac971eb8d6cb1


28a7d72fe39c3ba963f2c0bc12d42b70ed1783faf37af4baefe3aa8cc55f05925b1bdc8f82843f44bd110d




차이가 보이는가?



79f3da36e2f206a26d81f6e44785716b0b


그림처럼, 완전히 수직으로 추락하면 대미지를 안 받고, 추락하면서 x, z축으로 움직이고 있을 때만 대미지를 받는다. 즉 급하게 앞으로 가지 말고 천천히 움직여서 수직 방향으로만 떨어지면 안전한 것이다.


플레이어가 타면 죽고 몹이 타면 사는 이유도 이것 때문인데, 몹은 보트를 조종하는 능력이 없어서 앞으로 못가고 수직으로 떨어지기 때문에 그런거. 억지로 수평 방향으로 움직여주면 몹도 죽는다


그러면 오히려 보트낙법이 버그였고 추락하면 보트가 부숴지는 게 정상 아니야?


78f3c028e2f206a26d81f6e34582706b


그런것도 아님ㅋㅋㅋㅋㅋㅋㅋㅋ


보트가 낙뎀을 막는다고 올라온 버그 리포트에서 개발자는 '의도한 대로 작동됨' 이라고 처리했다


즉 보트낙법 자체가 개발자가 의도한거라 저 코드는 없어야 하는건데 아직도 과거의 잔재가 남아있어서 이런 문제가 발생한거임


따라서 말하자면 버그의 버그라고 할 수 있다


그러니까 모장은 빨리 일해라. 저건 거창한 수정도 필요 없고 코드만 날리면 해결인데

추천 비추천

90

고정닉 20

1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2861 설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
2862 AD 희귀 정령 획득 기회! <아스달 연대기> 출석 이벤트 운영자 24/05/23 - -
256664 일반 단열 [1] 현실에서는유동이였던내가이세계에서는고정갤로그로 이동합니다. 23.11.23 150 2
256663 일반 테라퍼마 원래 강이 이렇게 길어?? [5] ㅇㅇ(121.176) 23.11.23 164 0
256662 일반 단 타 열 어 줘 [2] ㅇㅇ(221.138) 23.11.23 124 2
256661 단타서 [완장 레이드 서버 장타 (단타)] #4 // 8시 30분 [1] ㅇㅇ(1.245) 23.11.23 159 1
256660 일반 atm9모드 원래 렉걸림? [1] ㅎㅎㅎ갤로그로 이동합니다. 23.11.23 211 0
256658 일반 여기 사다리 설치 안되는거 왜때문? [4] ㅇㅇ(49.163) 23.11.23 179 0
256657 일반 마크 마우스 질문좀 [2] ㅇㅇ(221.145) 23.11.23 134 0
256656 일반 스폰 청크 관련 추가 질문.. [5] ㅇㅇ(124.170) 23.11.23 133 0
256655 일반 테라퍼마하는데 [2] ㅇㅇ(211.244) 23.11.23 96 0
256654 일반 월드 생성하고 태어나는 스폰 장소는 청크로더 없어도 [6] ㅇㅇ(124.170) 23.11.23 149 0
256653 일반 서버에서 비활성화 된 래틀란티스 활성화하기 ㅇㅇ(121.161) 23.11.23 132 0
256652 일반 야생의 기준을 뭐라고 생각해? [7] ㅇㅇ(180.67) 23.11.23 236 0
256651 일반 스니즈서버 어케들어감? [8] ㅇㅇ(180.229) 23.11.23 139 0
256649 일반 마크 오래하는 애들아 [18] ㅇㅇ(49.163) 23.11.23 262 0
256648 질문 커스포지에서 모드 깔았는데 옵피타인 수동으로 찾아서 넣어줘야 하나요? [9] ㅇㅇ(219.255) 23.11.23 127 0
256647 질문 마이그레이션한 마이크로소프트 계정 잊어버렸으면 ㅈ된거냐 ㅇㅇ(58.127) 23.11.23 131 0
256646 질문 윈10 에디션에서 수직동기화 끄려면 어케해야함? ㅇㅇ(118.217) 23.11.23 60 0
256645 질문 윈10 버전 '개선된 입력 반응' << 이거 뭐임? [1] ㅇㅇ(118.217) 23.11.23 170 0
256644 장타서 장타야생서버 13일차 [5] ㅇㅇ(59.20) 23.11.23 888 13
256643 일반 아니 근데 앤더맨 3층쌓고때리면 안맞는거아님?? [2] ㅇㅇ(118.139) 23.11.23 119 0
256642 일반 다시ㄴ ㄴ 앤더맨에게 깝치지 않겟습니다 ㅇㅇ(118.139) 23.11.23 73 0
256641 질문 뉴비년 서버 해결좀 [1] ㅇㅇ(58.227) 23.11.23 156 0
256639 일반 블록 아이템 코드 없어진 뒤에는 맵 파일 어떻게 구성되는 거냐 [1] ㅇㅇ(220.121) 23.11.23 81 0
256638 일반 인벤세이브권 [3] ㅇㅇ(122.32) 23.11.23 342 0
256637 일반 chunky 몇블록 정도 로딩해둠? ㅇㅇ(1.235) 23.11.23 93 0
256636 일반 마크 스샷들 보관해두길 잘했다 [1] Fast갤로그로 이동합니다. 23.11.23 234 0
256635 질문 자바살려는데 자바도 ㅈ드락처럼 맵만들면 용량잡아먹냐? [4] ㅇㅇ(210.182) 23.11.23 127 0
256634 일반 지하에 저거 뭐냐? [3] ㅇㅇ(1.249) 23.11.23 213 1
256633 질문 오늘 갑자기 화면이 이러게 바꼈는데 해결법좀요 [5] ㅇㅇ(59.20) 23.11.23 122 0
256632 일반 커스포지 한글채팅 모드좀.... [1] ㅇㅇ(211.235) 23.11.23 198 0
256630 일반 님들 픽셀몬 메진 이제 전투중 아니면 못함? ㅇㅇ(14.42) 23.11.23 74 0
256629 질문 베드락)인벤칸 늘리는 모드 있음? ㅇㅇ(58.224) 23.11.23 102 0
256628 질문 블럭 투명버그 원인 아시는분 급함 [1] ㅇㅇ(125.128) 23.11.23 150 0
256626 일반 유리판 이음새 없애는 거 질문 [4] ㅇㅇ(61.78) 23.11.23 213 0
256625 질문 포탈 꼬임 질문좀 [2] ㅇㅇ(124.49) 23.11.23 112 0
256624 일반 석영이랑 같이 쓰면 좋은 건축재료가 뭘까 [6] ㅇㅇ(61.78) 23.11.23 143 0
256622 일반 마크 블럭 캐도 안먹어진다 [1] ㅇㅇ(211.109) 23.11.23 93 0
256621 일반 구리 전구 롤백 모드 나옴 ㅋㅋㅋ [1] ㅇㅇ(106.102) 23.11.23 206 0
256620 단타서 비밀시크릿히든펑 [3] ㅇㅇ(182.230) 23.11.23 197 2
256619 질문 서버 중도 모드 추가 실행 불가 [5] ㅇㅇ(58.78) 23.11.23 158 0
256618 모드 모드 장타 추천: 간단 스킬들 [2] Projecth갤로그로 이동합니다. 23.11.23 297 0
256617 모드 자작 모드팩 업데이트 [5] 하루살E갤로그로 이동합니다. 23.11.23 440 2
256616 연재 create 마을 구경하고 가라(3) [3] ㅇㅇ(112.157) 23.11.23 517 9
256615 일반 니들도 단타 많이해라 ㅇㅇ [9] ㅇㅇ(121.148) 23.11.23 1943 16
256614 일반 에센셜 모드 tpa 수락권한이 없다는데 어카노? [2] 슬픈짱구(220.72) 23.11.23 136 0
256613 질문 멀티 서버에서 몹팜 질문좀 [1] ㅇㅇ(122.37) 23.11.23 86 0
256611 일반 던크래프트 수선 어케먹나요 [2] ㅇㅇ(218.159) 23.11.23 205 0
256610 시드 이건 또 뭔 시드죠 [1] ㅇㅇ(58.228) 23.11.23 424 4
256609 일반 베드락 에디션은 모드 적용 어케 하나요? [4] ㅇㅇ(58.127) 23.11.23 145 0
256608 장타서 점점 기괴해지는 DeceasedCraft 좀비 아포칼립스 모드팩 닫음 [20] ㅇㅇ(1.253) 23.11.23 1035 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2