이 글은 습관만들기 Pawbit 시리즈의 5번째 기록입니다. (총 9개)

오늘 한 일

  • DogCareLog DAO 및 강아지 상태 계산 로직 구현
  • 마을(VillageScreen) 및 숲속(ForestScreen) 구현
    • Gemini를 이용해 임의로 이미지 생성해서 마을과 숲속을 구현했다.
    • 버튼이나 npc, 말풍선 등의 위치/크기 조절 같은 UI 수정.
  • 퍼즐 게임 밸런스 설계 하기
    • 꾸준히 유지하기 위해 들어가는 비용(포인트 및 꿈 조각) 계산하여 어떻게 하면 지속 가능하게 유지할 수 있을지를 설계함.
    • 난이도 잠금(easy→normal→hard)
    • 정방형 그리드(3×3/5×5/7×7)로 변경
      • 이유: user가 어떤 난이도를 선택하더라도 퍼즐 조각이 정사각형으로 구현되게 하고 싶었음. 원판 제작 시 규격을 1:1비율로 획일화 하여 user가 어떤 난이도를 선택하더라도 대응 가능하도록 하여 원판 제작 비용 관리하고자 함.
  • 퍼즐 시스템 MVP 구현
    • 그림 선택 화면, 진행 화면, 완성 플로우.
  • 꿈 조각 잔고 버그 수정
    • 문제점: 퍼즐을 맞추고 나면 사용한 퍼즐 조각 수량 만큼 꿈 조각이 차감되어야 하는데 그대로 유지 됨.
    • 원인: Drift Stream이 반응하려면 customUpdateupdates: {puzzles}이 있어야하는데 없어서 watchPieceBalance가 변화를 감지 못함.
    • 해결: 완성된 퍼즐의 조각도 차감하도록 수정(customUpdate에 updates 명시).
  • DEV 메뉴 구현
    • 문제점: 개발 중인데 강아지 상태를 확인하기 위해서 실제로 최소 3일간 밥을 안먹여야 ‘아픔’ 상태 확인이 가능함.
    • 원인: 개발 상태에서 변수 값을 조절 할 방법이 없음.
    • 해결: DEV 메뉴 구현. 꿈조각 추가, Point 추가, status 관련 버튼 구현(배포 전 필수 삭제할 것)

막힌 부분

  • 퍼즐 이미지가 들어있는 서브 폴더는 명시적으로 선언해야 한다. 하위폴더에서 자동으로 찾아서 사용하는 기능 없음. 처음에 assets만 선언해서 하위 폴더에 있는 asset을 못찾음.
  • 퍼즐 구현 방식 GridView와 OverflowBox. 처음에 GridView가 사용되서 그림 조각이 아닌 똑같은 크기의 이미지가 9개 배치됨.
  • 게임 경제 설계. habit이 n개일 때 강아지 건강을 유지하려면 얼마의 자원이 필요한지 등을 계산해 퍼즐 보상 설정.

다음에 할 일

  • 완성 시 보상 지급 방식 개편
  • 퍼즐 드래그 배치 방식 고민하기
  • 퍼즐 그림 선택 화면 고도화
    • 앱 제공 이미지 목록 표시 (현재는 하드코딩)
    • 이미 완성한 그림은 선택 불가
    • 완성 날짜(completedAt) 표시
  • 체크인 화면 다중 뷰 모드
    • weekly: 행=습관, 열=요일 그리드
    • monthly: 달력, 날짜별 달성률 도넛 차트
    • yearly: 습관별 히트맵

Series: 습관만들기 Pawbit


Suggested Posts