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

오늘 한 일

  • 모래 붓기를 “알알이 떨어져 쌓이는” 질감으로 바꾸기로 결정
    • 이유: 붓는 모래가 물 차오르듯 가로줄로 한 줄씩 쓸려 채워졌다. “색 모래를 붓는다”가 이 게임의 정체성인데 그 손맛이 죽어 있었다
    • 제약을 먼저 못박음: 채움 순서는 시뮬레이터·봇이 “클리어 가능한가”를 판정하는 규칙과 얽혀 있다(§3.2, Dart·Python 공통 fixtures). 순서를 바꾸면 난이도 판정이 흔들리니 규칙은 절대 안 건드린다
    • 그래서 방향을 “쌓이는 순서는 규칙대로, 화면에 보이는 타이밍만 흩뜨린다”로 잡고 지시 (구현 방법은 TIL “모래게임 Sandrop TIL 2” 참고)
  • 캔버스를 화면 정중앙으로
    • 이유: 그림이 오른쪽으로 살짝 치우쳐 보였다. 왼쪽 엘리베이터가 폭을 차지하는데 “엘리베이터 뺀 나머지의 중앙”에 놓다 보니 화면 중앙이 아니었던 것

막힌 부분

  • 규칙은 건드리지 않고 겉모습만 바꿔야 했다 — 가장 쉬운 해법(엔진 채움 순서를 랜덤)은 그 순서가 곧 클리어 판정 규칙이라, 손대면 Dart·Python 파리티와 봇 난이도 측정이 전부 어긋난다
    • 해결: “로직은 그대로, 시각 레이어만 따로 얹어 순서를 흩뜨린다”를 원칙으로 잡아 규칙 코드·테스트는 한 줄도 안 건드리고 연출만 바꿈. 무엇을 바꾸면 안 되는지를 먼저 정하는 게 절반이었다

다음에 할 일

  • 모래 연출을 Flame 파티클로 고도화 (지금은 순수 Flutter/CustomPaint)
  • 파이프 순환 통과, BFS 경로 걷기 연출 다듬기

Series: Sandrop


Suggested Posts