모래게임 Sandrop 34
오늘 한 일
- v1.2.0 출시 — 진행 상황 클라우드 저장
- 며칠 쫓던 광고 닫기 버튼 문제와 화면 흔들림을 해결
- 동생이 지적한 도안 색 여섯 개를 원본대로 복구하고, 색이 뭉개지던 파이프라인을 고침
- 로그스톤 샵에 방침 정정과 제품 페이지 문구 교체를 요청하고 반영 확인
막힌 부분
범인이 어제 넣은 수정이었다
광고 닫기 버튼이 안 그려지는 문제를 며칠 쫓고 있었다. 어제 두 가지를 넣었는데 — 광고 중에 화면 영역을 얼리는 것과, 전면 광고에만 특정 신호를 빼는 것 — 오늘 보니 그 둘이 각각 새 증상을 만들고 있었다.
둘 다 되돌리니 네 번 연속으로 정상이었다.
고치려고 넣은 것이 새 증상을 만들면 원인 추적이 통째로 엉킨다. 원래 증상을 보고 있다고 생각했는데 실제로는 그 수정이 만든 부작용을 보고 있었던 거다.
- 한 번에 한 가지만 바꾼다. 두 개를 다른 변경과 섞어 넣어서 어느 것이 무엇을 깼는지 늦게 갈렸다
- 고치는 시도가 실패하면 되돌리고 다음으로 간다. 남겨 두면 다음 시도의 관측을 오염시킨다
대조군을 안 돌렸으면 엉뚱한 걸 범인으로 적을 뻔했다
중간에 화면 아래 배너를 의심했다. 배너를 끄고 광고를 띄웠더니 두 번 다 정상이었고, 로그에 있던 오류도 0건이 됐다. 증상과 로그가 같이 움직였으니 꽤 그럴듯했다.
그런데 배너를 다시 켠 상태로도 두 번 다 정상이었다. 가설이 죽었다.
- “끄니까 된다”는 절반이다. “켜니까 안 된다”까지 봐야 닫힌다
- 로그가 증상과 같이 움직이는 것처럼 보여도 대조군이 없으면 우연과 못 가른다
- “배너 없던 시절에도 이 증상이 있었다”는 걸 떠올린 게 큰 도움이 됐다. 그게 아니었으면 두 번 성공만 보고 배너를 걷어내고 잘못된 원인을 기록했을 것이다
화면이 흔들린 진짜 이유
게임 중에 그림이 미세하게 떨린다는 이야기가 있었다. 처음엔 광고 전환 때만 그런 줄 알았는데 평소에도 났다.
원인은 안전영역이 시스템 표시줄을 따라 움직이는 것이었다. 이 게임은 표시줄을 숨기고 화면을 다 쓰는데, 화면 가장자리를 건드리면 표시줄이 잠깐 나타난다. 그때마다 쓸 수 있는 영역이 변하고 판이 다시 계산된다. 손이 아래쪽 통을 자주 건드리니 계속 났다.
세 가지를 시도했고 각각 대가가 달랐다.
-
광고 중에만 고정 — 광고 전환은 잡히는데 게임 중은 그대로
-
표시줄이 차지하는 자리를 늘 비워 두기 — 안 흔들리지만 화면이 좁아짐
-
값을 고정하되 위쪽만 남기기 — 크기는 그대로면서 흔들림만 사라짐. 이걸로 확정
-
배치가 흔들리면 배치 코드를 보기 전에 “입력값이 흔들리는가”를 본다
-
처음엔 그 위를 배경색으로 덮어 가리려 했는데 부족했다. 덮어도 움직임 자체는 남는다
색이 뭉개지던 원인이 넷이었다
동생이 “게임에 들어간 색이 원본과 다르다”며 여섯 개를 짚어 왔다. 전수 조사하니 원인이 넷 겹쳐 있었다.
첫째, 배경이 흰색에 가까웠다. 안 채운 칸은 배경색으로 보이니 그림 색이 배경과 비슷하면 구별이 안 된다. 그래서 최소 거리를 강제하면서 흰 부분을 어둡게 눌렀다. 호랑이 흰 얼굴이 68% 밝기로 눌린 게 이것이다.
둘째, 면적이 작은 색은 지웠다. 색마다 통이 하나씩 생기니 몇 칸을 위해 통을 쓰지 않으려는 규칙인데, 호랑이 코와 떡볶이 파가 여기 걸렸다.
셋째, 비슷한 색끼리 합쳤다. 떡볶이 양념 두 색이 하나가 됐다.
넷째, 색을 줄이는 과정이 상한 안에서도 두 색을 평균으로 묶었다. 한복 치마 그림자와 태극기 빛 반사가 이렇게 사라졌다.
- 배경은 앱이 만드는 값이고 그림은 받은 데이터다. 못 맞추면 배경을 옮기는 게 맞다
- 동생 그림은 색이 한 칸씩 정확히 찍혀 있어서 색 줄이기 자체가 필요 없었다. 상한 이내면 건너뛰게 했다
두 단계가 서로를 덮고 있었다
배경을 지정하고 다시 넣었는데도 색이 그대로 뭉개졌다.
그림을 등록하는 단계와 배경을 적용하는 단계가 따로 있는데, 뒤 단계가 원본에서 다시 처리하면서 앞 단계의 결과를 통째로 덮고 있었다. 손그림용으로 만들어 둔 처리가 매번 날아간 거다.
- 같은 데이터를 두 단계가 각각 처리하면 뒤가 앞을 지운다. 어느 쪽이 최종인지 하나로 정한다
- 그런 구조는 각 단계만 보면 다 맞게 동작한다. 이어서 돌려야 드러난다
여섯 중 넷만 고치고 끝낼 뻔했다
동생이 보낸 목록이 여섯이었는데 넷만 처리하고 다음으로 넘어갔다. 목록을 다시 대조하다 “태극기 빛 반사 색은 원본에 있다”를 마저 잡았다.
- 받은 목록은 항목 수를 세고 다 처리했는지 대조한다. 하나씩 처리하다 보면 끝난 줄 안다
색이 늘면 난이도가 바뀐다
색을 살리니 통이 늘었다. 통이 늘면 그 판이 어려워진다.
여섯 판을 다시 만들어 목표 난이도와 대조했고 다섯이 맞았다. 하나는 못 맞췄다 — 그 그림이 화면을 꽉 채워서 벽을 놓을 자리가 없었고, 벽 예산을 늘려도 그대로였다.
- 예산을 늘려도 안 되면 배치 한계다. 숫자를 더 키우는 것은 의미가 없다
- 못 맞추는 것은 혼자 정하지 않고 확인받는다. 이번엔 “그대로 간다”로 정해졌다
다음에 할 일
- 며칠 지표 확인 — 클라우드 저장 연동률, 크래시·ANR, 광고 노출 수
- 도안 추가 검토 — 동생이 다음 묶음을 보내면
- 광고 제거 상품 — 리텐션이 쌓이면 판단
- 100탄씩 추가 배포