9월 15일 매치 시즈에는 두 가지 일을 같이 넣었습니다. 보석 색과 반짝임을 손보는 일과, 화면 그리는 비용을 줄이는 일입니다.
하나씩 보면 둘 다 멀쩡한 변경인데, 같은 자리를 건드린다는 걸 그때는 몰랐습니다. 보기 좋게 만드는 수정과 빠르게 만드는 수정이 겹치면 한쪽이 다른 쪽을 조용히 망가뜨립니다. 이번에 그 자리가 보석 주위 여백과 그림자였습니다.
투명한 부분도 그리는 범위에 들어갑니다
보석 하나를 그릴 때 실제 모양보다 큰 사각형을 쓰면 그 안의 투명한 자리까지 처리 대상이 됩니다. 보석 하나면 티가 안 나는데 보드가 꽉 차면 그 여백이 그만큼 반복됩니다. 그래서 사각형을 보석에 맞게 조였습니다.
여기까지는 생각대로 됐습니다. 그런데 본체 경계에 딱 맞추고 보니 바깥으로 번지는 그림자와 반짝임이 잘려 나갔습니다. 보석 아래 그림자가 네모나게 끊겨 보였습니다.
다음 수정에서 그림자가 닿는 데까지 포함하도록 여백을 다시 잡았습니다. 그려야 하는 최소 범위는 본체의 경계와 같지 않습니다. 당연한 말인데, 줄이는 일에 집중하고 있으면 줄이는 것만 보입니다.
성능과 모양을 서로 다른 기준으로 봅니다
그래서 확인 항목을 아예 둘로 갈라 두었습니다. 같이 보면 "빨라졌으니 됐다"로 넘어가게 됩니다.
| 확인 대상 | 볼 항목 |
|---|---|
| 보석 본체 | 가장자리와 면이 잘리지 않는가 |
| 그림자·반짝임 | 효과가 끝나는 지점까지 포함되는가 |
| 연쇄 중인 보드 | 효과가 겹칠 때 빈 사각형이나 잘린 선이 보이는가 |
| 실제 기기 | 프레임률과 발열이 같은 조건에서 달라지는가 |
세 번째 줄이 실제로 걸린 자리입니다. 보석 하나만 놓고 보면 멀쩡한데, 연쇄가 터져 효과가 겹치는 순간에만 잘린 선이 보였습니다. 정지 화면으로는 절대 안 잡힙니다.
그리는 영역을 줄이는 코드를 넣었다는 사실만으로 실제 폰이 빨라졌다고 말할 수는 없습니다. 같은 기기, 같은 판, 같은 효과 수, 같은 실행 시간에서 비교해야 합니다. 이 글에서는 새 성능 수치를 만들어 내놓지 않겠습니다. 재지 않았으니까요.
프레임 상한과 정적 화면도 분리했습니다
같은 날 프레임 상한을 60으로 두고, 잘 안 바뀌는 부분과 자주 바뀌는 부분을 나눠 그리게 했습니다. 설정에서 프레임률을 볼 수 있는 기능도 그때 붙였습니다.
상한은 쓸데없이 더 그리지 말자는 설정이지 모든 기기에서 60을 보장하는 기능이 아닙니다. 못 따라오는 기기는 그냥 못 따라옵니다.
숫자가 화면에 보인다고 검증이 끝난 것도 아닙니다. 연쇄가 없는 판과 효과가 쏟아지는 판을 나눠 보고, 켜자마자와 한참 한 뒤를 나눠 봐야 합니다. 순간 프레임률 하나로 발열이나 오래 돌렸을 때의 안정성까지 판단하면 안 됩니다. 실제로 폰에 올려 보면 데스크톱에서 안 보이던 것이 나오는데, 그쪽 이야기는 실기기에서만 나온 문제들에 따로 적었습니다.
도움말은 글씨를 키운 뒤 경계까지 확인합니다
도움말 글씨를 키우고 판 밖으로 나가지 않게 배치도 고쳤습니다. 폰에서 읽기 쉽게 만드는 일은 글자 크기만 올리면 끝나지 않습니다. 키우면 줄이 늘고, 줄이 늘면 아래가 잘립니다.
줄바꿈과 여백, 화면 끝에서의 잘림을 같이 봐야 합니다. 규칙을 설명하는 화면이 게임 화면보다 읽기 어려우면 처음 온 사람은 규칙을 알기 전에 나갑니다. 공들여 만든 규칙을 아무도 모르는 채로 끝납니다.
확인 근거는 02850c7, 92b6417, 5da22f9, a154947 의 코드 변경입니다. 이 글을 쓰면서 실기기 성능이나 스토어 최신 버전을 다시 확인하지는 않았습니다. 지금 어디서 받을 수 있고 테스트가 어디까지 왔는지는 매치 시즈 소개에 있습니다.