게임 개발 · 기술 동향미로의 개발노트
카테고리

LAST37N · 수원 생존 샌드박스

Unity 수원 TPS 최초 프로토타입 · UI·NPC·캠프·경계 터렛 실행 검증

개발 기록 · 블로그 공개

원본 기록 상태 완료

서버 권위 생존·수색·거래·PostGIS 저장·실제 수원 공간·Windows/Web 상호운용에 새 UI와 캠프 시설을 적용하고 실제 실행·100명 부하를 검증했습니다.

실제 새 배낭 UI
실제 새 배낭 UI

작업 결과

초기 프로토타입 구현과 필수 실행 검증을 마쳤습니다. 새 UI·물자 소품·역할별 NPC·의료 시설·서버 시간 기반 경계 터렛이 Windows와 Web 게임에 적용됐습니다. 상용 완성 게임이나 후속 전투 기능 완료를 뜻하지 않습니다.

적용 내용

Unity6000.0.83f1 TPS 클라이언트, Node24/TypeScript 서버, PostgreSQL17.11/PostGIS3.6.2를 로컬에서 실행합니다. 서버가 위치·생존·물자·거래를 결정하고 DB가 상태와 요청 영수증을 원자적으로 저장합니다. 세션 재접속·월드 격리·주변 채팅·100명 접속 제한을 구현했습니다.

실제 수원 OSM 경계와 건물37,308개·도로15,722개·물가/접근 제한96개·다리610개 구간을 사용합니다. 지도 라이브러리와 게임 규칙을 분리하고 시작점·장애물·상호작용 거리를 검증합니다. 도시 지형은 평면이며 미등록 높이32,673개 건물은 임시9m입니다.

생존 수치·물품 아이콘·한글 이름·무게·사용 조작을 정리했습니다. 실제 Web 게임 캡처입니다.

구매/판매 가격·재고·보유량·교환권과 활성 상태를 표시하며 서버 결과만 반영합니다.

Blender 원본과 FBX를 보존한 물자·시설·경계 장치입니다. 터렛은 회전·같은 월드의 접속 민간인 감지만 수행합니다. 발사·피해는 후속 전투 범위이며 server/config/turrets.json에 비활성 정책을 분리했습니다. 지원하지 않는 전투 활성화는 시작 시 거부합니다.

경비병·상인·의무병·생존자의 외형·대사·시설·기능을 구분했습니다. 시설은 허구이며 실제 피난 정보가 아닙니다.

편집 가능한 캐릭터/캠프 .blend, SVG 아이콘과 Unity 에셋을 보존했습니다. source local commit: 96c2c4bf8a2b84be86c15336cd0466802459e78d (원격 프로젝트 저장소는 설정되어 있지 않아 로컬 보존입니다). README와 아키텍처, 로컬 시작·저장 후 종료·재시작 도구를 실제 상태에 맞췄습니다.

검증

최종 서버/DB 검사37개 pass·0 fail·0 skip, TypeScript 검사 통과. 실제 PostGIS 거리 검증·트랜잭션 강제 실패 롤백·중복 동시 요청·캐시 퇴출 후 영수증·서버 프로세스 재시작을 검사했습니다.

Windows5개 기능 시나리오 통과. 최종 실제 Web18개 검사와 Windows 상호운용5개 검사가 통과했습니다. 이동·휴식·수색·소비·배낭·지도·월드 선택·구매/판매·치료, 양방향 채팅·접근·서버 중단·같은 캐릭터/인벤토리 복구·offline 요청 한번처리를 확인했습니다. 최종 JS/Unity 엔진 오류0입니다. 실제 Windows 게임에서 터렛 모델·Yaw 축·약32.05도 회전·발사 비활성 정책과 의료/물자 모델 로딩도 별도로 통과했습니다.

개발 화면

실제 새 배낭 UI

실제 NPC 거래창

실제 경비병·모래주머니·터렛

실제 의무병·천막·야전 침대

출처

중앙 아카이브 원문

같은 카테고리의 글

개발 기록 아카이브 전체 보기 ↗