방문자

오늘
—
어제
—
누적
—

불러오는 중

게임 개발 · 기술 동향 · 팀 블로그MIRO
헤드라인

LAST37N · 수원 생존 샌드박스

수원 지도에서 거리로 내려가기

실제 TPS 게임 화면: 3인칭 생존자, 3D 거리, 수색 지점 및 E 키로 수색한 Found water 결과
실제 TPS 게임 화면: 3인칭 생존자, 3D 거리, 수색 지점 및 E 키로 수색한 Found water 결과

지도에서 거리로 시점을 옮겼습니다

LAST37N의 초기 화면은 지도를 중심으로 구성돼 있었습니다. 생존자가 물자를 찾고 거리를 걷는 감각을 확인하기 위해 Unity 6000.0.83f1의 3인칭 화면으로 전환했습니다. 가방을 멘 민간인과 건물·수색 물자, 한국어 HUD를 배치하고 지도는 M 키로 여는 보조 화면으로 남겼습니다.

이 단계의 도시는 수원 WGS84 좌표에 연결한 가상 블록아웃입니다. 실제 수원 건물의 형태를 재현한 결과가 아니며 캐릭터와 도시 미술도 기본 도형 기반 시제품입니다. 이후 작업에서 들어간 지리 데이터나 전투 기능을 이 초기 결과에 소급해 넣지 않았습니다.

실제 TPS 게임 화면: 3인칭 생존자, 3D 거리, 수색 지점 및 E 키로 수색한 Found water 결과

실제 I 키 배낭 화면: 수색 후 물 6개, 식량 2개, 크레딧 20 표시

이동 판정은 서버에 남겼습니다

WASD 방향을 서버로 보내면 서버가 초속 4.5m 이동, 대각선 정규화, 건물 충돌을 결정하도록 했습니다. 입력은 400ms 뒤 만료되며 클라이언트는 10Hz 상태를 보간합니다. 입력이 끊겨도 계속 움직이거나 대각선에서 더 빨라지지 않도록 이동 규칙을 한곳에서 처리하는 구성입니다.

다음은 원문에 기록된 역할 분담을 정리한 도표입니다. 실제 함수 전체나 세부 패킷 형식을 옮긴 코드는 아닙니다.

flowchart LR
 A["방향 입력"] --> B["서버 속도와 충돌 판정"]
 B --> C["10Hz 상태 전송"]
 C --> D["Unity 보간과 TPS 표현"]

이동 입력은 아이템 거래 영수증을 소모하지 않습니다. 자주 들어오는 방향 입력과 중복 처리를 막아야 하는 경제 명령을 같은 방식으로 다루지 않도록 구분했습니다. 추적 카메라와 우클릭 회전, 간단한 보행 모션, 건물 스트리밍도 연결했습니다.

화면에 보이는 결과와 테스트를 대조했습니다

서버 검사 9개에서는 이동 시간과 속도 제한, 대각선 이동, 입력 해제 후 정지, 건물 충돌을 확인했습니다. 수색의 중복·거리·쿨다운, NPC 거래와 치료, 중립 영역, 실제 WebSocket 연결과 서버 재시작 후 상태 복원도 검사했습니다.

Windows 빌드는 성공했고 실제 게임 창에 캐릭터·거리·HUD가 나타났습니다. E 키 수색으로 Found water가 표시되고 I 키 배낭에서 물 6개를 확인했습니다. 마지막 실행 로그에는 초기화 후 예외가 없었습니다. 셰이더 누락과 정지 상태 보간 문제도 초기 실행 과정에서 보완했습니다.

아직 실행하지 않은 입력은 남겨 뒀습니다

수동 이동 검사 직전 입력 조작이 중단돼 실제 WASD 이동, 우클릭 카메라, M 지도 전환까지 확인하지는 못했습니다. 서버 테스트를 통과했다는 사실과 실제 키보드·마우스로 조작한 결과는 별개로 기록했습니다. 단축키 소모품 사용과 동시 플레이 시각 검증도 이 시점에는 남아 있었습니다.

저장은 당시 단일 프로세스 JSON 방식이었고 PostgreSQL/PostGIS 연결과 Unity Web 빌드는 후속 단계였습니다. 실제 수원 지리 데이터와 100명 부하, 완성형 애니메이션·전투도 아직 포함되지 않았습니다. 이번 전환으로 확인한 것은 지도 위 정보가 TPS 거리와 상호작용 화면으로 이어지는 기본 경로입니다. 초기 시제품의 범위를 분명히 남겨야 뒤의 개선과도 정확하게 비교할 수 있습니다.

작업 근거

댓글

이 글에 대한 생각을 남겨 주세요.

댓글 삭제

헤드라인

같은 카테고리의 글

프로젝트 개발일지 전체 보기 ↗