이 글은 Sandrop 시리즈의 5번째 기록입니다. (총 23개)

오늘 한 일

  • 레벨 도안을 8×8 뭉툭한 도형 → 32×32 세밀 도형 + 진짜 이모지로 전환
    • 이유: 도안이 8×8이라 하트·다이아 수준의 뭉툭한 그림뿐이었다. “픽셀아트를 완성한다”는 게임인데 완성해도 볼 게 없어서 게임 같지가 않았다
    • 절차 도형 10종을 수식 기반 32×32로 다시 만들어 셰이딩·하이라이트로 도형당 3~5색 (캔버스 64×64는 그대로 두고, 그림의 실질 해상도만 참고 게임 수준으로)
    • 이모지 양자화 파이프라인(quantize.py) 신설 — Noto 이모지(오픈소스, Apache 2.0)를 색 양자화해 도안 56종 확보. 도안 풀 66종(절차 10 + 이모지 56)으로 50레벨 전부 다른 그림
      • 이유: 손으로 도형을 계속 그릴 순 없다. 이미지에서 도안을 뽑는 파이프라인이 있어야 출시 분량이 나온다 (§5 계획)
  • 도안 품질이 난이도에도 영향 — 색 레이어가 촘촘해지니 easy/normal 클리어율이 목표 밴드에 실제로 들어오기 시작
  • 작은 색이 화면에 안 보이던 문제 수정 — 바스켓당 최소 모래량(110그레인) 보장
    • 이유: 픽셀 적은 색이 잘게 쪼개져 붓혀도 티가 안 났다
  • 모래 알갱이에 줄무늬가 지던 버그 수정
    • 이유: 밝기 지터가 8px 주기로 명암 경사(줄무늬)를 만들고 있었다. 해시 하위 비트가 순환하던 게 원인 — 혼합 해시로 무작위화
  • 난이도 기준 봇을 소폭 상향(가끔 실수 확률 0.35→0.30) + 벽 예산을 전 티어에서 늘림
  • 레벨 목록에서 방금 깬 레벨의 클리어 표시가 안 뜨던 버그 수정
    • 이유: “다음 레벨”로 넘어가면(pushReplacement 체인) 목록 갱신 시점을 놓쳤다. 나가는 순간(pop)에 갱신하도록 고침 (구현은 TIL 3)

막힌 부분

  • 이모지마다 난이도가 제각각이라 티어에 못 맞췄다 — 같은 티어 자리에 넣어도 어떤 이모지냐에 따라 봇 클리어율이 0%(나선 사탕처럼 색이 복잡하게 얽힌 것)에서 94%(단색 얼굴)까지 널뛰었다. 도안 자체가 난이도를 상당 부분 결정해버린다
    • 해결: 도안의 “색 레이어 교차도”(도형 열마다 수직으로 색이 몇 번 바뀌는지)로 내재 난이도를 점수화해 티어 버킷에 배정하고, 측정 클리어율이 목표 밴드에서 크게 벗어난 도안은 버리고 다시 뽑게 함 (양자화·점수·배정 구현은 TIL “모래게임 Sandrop TIL 3”)

다음에 할 일

  • 레벨 선택 화면 레벨 블럭 UI 개선
  • 이모지 큐레이션 확대 (현재 Noto 56종 — 출시 200레벨엔 도안 추가 소싱 필요)
  • 로프·물음표 기믹 엔진 반영

Series: Sandrop


Suggested Posts