모래게임 Sandrop 3
이 글은 Sandrop 시리즈의 4번째 기록입니다. (총 38개)
오늘 한 일
- 모래 붓기를 “알알이 떨어져 쌓이는” 질감으로 바꾸기로 결정
- 이유: 붓는 모래가 물 차오르듯 가로줄로 한 줄씩 쓸려 채워졌다. “색 모래를 붓는다”가 이 게임의 정체성인데 그 손맛이 죽어 있었다
- 제약을 먼저 못박음: 채움 순서는 시뮬레이터·봇이 “클리어 가능한가”를 판정하는 규칙과 얽혀 있다(§3.2, Dart·Python 공통 fixtures). 순서를 바꾸면 난이도 판정이 흔들리니 규칙은 절대 안 건드린다
- 그래서 방향을 “쌓이는 순서는 규칙대로, 화면에 보이는 타이밍만 흩뜨린다”로 잡고 지시 (구현 방법은 TIL “모래게임 Sandrop TIL 2” 참고)
- 캔버스를 화면 정중앙으로
- 이유: 그림이 오른쪽으로 살짝 치우쳐 보였다. 왼쪽 엘리베이터가 폭을 차지하는데 “엘리베이터 뺀 나머지의 중앙”에 놓다 보니 화면 중앙이 아니었던 것
막힌 부분
- 규칙은 건드리지 않고 겉모습만 바꿔야 했다 — 가장 쉬운 해법(엔진 채움 순서를 랜덤)은 그 순서가 곧 클리어 판정 규칙이라, 손대면 Dart·Python 파리티와 봇 난이도 측정이 전부 어긋난다
- 해결: “로직은 그대로, 시각 레이어만 따로 얹어 순서를 흩뜨린다”를 원칙으로 잡아 규칙 코드·테스트는 한 줄도 안 건드리고 연출만 바꿈. 무엇을 바꾸면 안 되는지를 먼저 정하는 게 절반이었다
다음에 할 일
- 모래 연출을 Flame 파티클로 고도화 (지금은 순수 Flutter/CustomPaint)
- 파이프 순환 통과, BFS 경로 걷기 연출 다듬기
Series: Sandrop
1 | 모래게임 Sandrop 0 2 | 모래게임 Sandrop 1 3 | 모래게임 Sandrop 2 4 | 모래게임 Sandrop 3 읽는 중 5 | 모래게임 Sandrop 4 6 | 모래게임 Sandrop 5 7 | 모래게임 Sandrop 6 8 | 모래게임 Sandrop 7 9 | 모래게임 Sandrop 8 10 | 모래게임 Sandrop 9 11 | 모래게임 Sandrop 10 12 | 모래게임 Sandrop 11 13 | 모래게임 Sandrop 12 14 | 모래게임 Sandrop 13 15 | 모래게임 Sandrop 14 16 | 모래게임 Sandrop 15 17 | 모래게임 Sandrop 16 18 | 모래게임 Sandrop 17 19 | 모래게임 Sandrop 18 20 | 모래게임 Sandrop 19 21 | 모래게임 Sandrop 20 22 | 모래게임 Sandrop 21 23 | 모래게임 Sandrop 22 24 | 모래게임 Sandrop 23 25 | 모래게임 Sandrop 24 26 | 모래게임 Sandrop 25 27 | 모래게임 Sandrop 26 28 | 모래게임 Sandrop 27 29 | 모래게임 Sandrop 28 30 | 모래게임 Sandrop 29 31 | 모래게임 Sandrop 30 32 | 모래게임 Sandrop 31 33 | 모래게임 Sandrop 32 34 | 모래게임 Sandrop 33 35 | 모래게임 Sandrop 34 36 | 모래게임 Sandrop 35 37 | 모래게임 Sandrop 36 38 | 모래게임 Sandrop 37