모래게임 Sandrop 1
이 글은 Sandrop 시리즈의 2번째 기록입니다. (총 23개)
오늘 한 일
- 프로젝트 셋업 — 빈 캔버스에 색 모래를 부어 픽셀아트를 완성하는 모바일 퍼즐(Sandrop) 레포 생성·작업 규칙 정리
- 다른 프로젝트의 공통 작업 규칙(작업 원칙 14개 + 보안 검사)을 Flutter + Flame + Python 스택에 맞게 이식
- 이유: Verify 기준을 스택에 맞춰야 함 —
dart analyze+ 규칙 엔진 단위 테스트 + Python 시뮬레이터 규칙 일치 검증
- 이유: Verify 기준을 스택에 맞춰야 함 —
- git 레포 초기화 + 리모트 연결 +
.gitignore(Flutter 빌드 산출물·서명 파일 제외)
- 다른 프로젝트의 공통 작업 규칙(작업 원칙 14개 + 보안 검사)을 Flutter + Flame + Python 스택에 맞게 이식
- 아이템 3종 확정 — 매그넷 · 셔플 · 되돌리기
- 강제 붓기를 되돌리기로 교체 (교체 이유는 아래 「막힌 부분」)
- 매그넷 — 레일이 꽉 차면 사용 불가, 로프로 묶였거나 물음표(?) 상태인 바스켓엔 사용 불가
- 셔플 — 색·기믹은 유지하고 위치만 재배열
- 되돌리기 — 아이템 1개 = 직전 올리기 1수 취소, 보유 개수만큼 연속. 이미 다 부어 사라진 바스켓의 수는 되돌릴 수 없음
- 이어하기 = 레일 비우기(사이드 버퍼)
- 레일의 대기 바스켓을 전부 사이드 버퍼로 빼 레일을 비우고, 도달 가능해지면 자동으로 붓게 함 (모래 보존)
- 설계 불변식 못박기 — 아이템·이어하기는 붓기 규칙(중력·도달)과 색별 총 모래량을 절대 바꾸지 않는다. 배치·순서·슬롯만 조작
- 재화 초기값 — 이어하기 900코인만 확정, 나머지(되돌리기·매그넷·셔플·하트 충전·클리어 보상)는 placeholder로
GameConfig에 배치하고 밸런싱 단계에서 조정
막힌 부분
- 강제 붓기 아이템이 중력 규칙과 충돌 — 도달 규칙을 무시하고 부으면 아래 칸이 빈 채로 위가 채워져 모래가 공중에 뜨고, 아래 빈칸은 다른 색이라 이 바스켓으로 대체할 수도 없다
- 해결: 코어 비주얼 메타포를 깨는 아이템이라 폐기하고, 붓기 규칙을 안 건드리고 직전 상태로만 복원하는 되돌리기로 교체
- 이어하기의 “대기 바스켓 제거”가 클리어를 불가능하게 만듦 — 100% 채우려면 색별 모래 총량이 픽셀 수와 정확히 맞아야 하는데, 바스켓을 없애면 그 색이 부족해져 영영 100%를 못 채운다
- 해결: “삭제”가 아니라 대기 바스켓을 사이드 버퍼로 옮겨 레일만 비우고, 도달 가능해지면 자동으로 붓게 함(모래 보존). “슬롯 +1” 안은 새 슬롯이 또 차면 교착이 안 풀려 제외
다음에 할 일
- M1 코어 프로토타입 — 순수 Dart 규칙 엔진(
lib/logic/) + 단위 테스트 + 하드코딩 레벨 3개 + 컬럼 단위 채움 + 낙하 파티클 오버레이. 재미 검증이 최우선
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