Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 3.27 KB

engineering-notes.md

File metadata and controls

34 lines (25 loc) · 3.27 KB

만들면서 푼 문제와 설계 결정

개발하면서 실제로 막혔던 것과, 게임 규칙을 정할 때 한 판단을 모아둡니다. 프로젝트 소개는 README, 코드를 고치는 법은 DEVELOPMENT.md에 있습니다.


만들면서 푼 문제

웹과 네이티브를 같은 코드로 굴리면서 "한쪽에서 됐다고 다른 쪽도 된다고 볼 수 없다" 는 걸 반복해서 배웠습니다.

문제 원인 해결
폰에서만 캐릭터 화면이 죽음 transform 이 웹(SVG 속성)과 네이티브(RN 스타일 키)에서 다른 것을 가리킴 네이티브가 기대하는 배열 형태로 전달 (#19)
팀 전원이 폰으로 앱을 못 엶 프로젝트는 SDK 57, 스토어 Expo Go 는 SDK 54까지만 지원 SDK 57용 APK 직접 설치 (#11)
LAN IP 로 접속하면 화면이 안 뜸 crypto.randomUUID 는 보안 컨텍스트에서만 존재 (http://192.168.x.x 는 아님) getRandomValues 로 UUID 직접 조립
웹에서 버튼이 조용히 먹통 react-native-web 의 Alert 가 아무것도 안 하는 빈 함수 lib/dialog.ts 로 플랫폼 분기, 직접 호출 금지
앨범 사진이 서버를 끄면 사라짐 ComfyUI 결과 URL 은 서버가 켜져 있는 동안만 유효 URL 대신 결과를 받아서 보관 (웹 IndexedDB / 폰 파일)

설계에서 고민한 것

정한 것 왜
성장은 경험치로, 노화는 함께한 일수로 둘 다 경험치면 "열심히 돌봤더니 빨리 늙었다"가 되어 보상이 뒤집힙니다
돌봄마다 부작용을 붙임 하나만 반복해서는 세 스탯을 유지할 수 없게. 부작용은 버튼에 미리 표시합니다
실패를 죽음이 아니라 여행으로 방치하면 "심심해서 세상 구경을 나섰다"로. 떠나기 전 경고가 떠서 갑작스럽지 않게
돌봄에 걸리는 시간을 장면으로 연타 방지를 쿨다운으로 잠그는 대신 진행 바로 (밥을 먹는 중입니다...)

각 문제의 에러 로그와 조사 과정은 링크된 이슈에 원문이 있습니다. 서술형으로 길게 쓴 판본이 필요하면 커밋 0a59471 의 README 에 남아 있습니다.