윈드스웹트 아일랜드: Claude Code를 활용한 유니티 북대서양 섬 개발 20일 차 (작업 중, 2부)
Windswept Island: 20 days into a North Atlantic island in Unity with Claude Code (WIP, part 2)
핵심 요약
Claude Code를 활용해 노르웨이 로포텐 지형 데이터를 기반으로 절차적 생성 시스템을 구축하는 프로젝트입니다.
- 절차적 생성 시스템 — 지형, 식생, 야생동물 배치를 규칙 기반으로 자동화함
- Claude Code 활용 — 개발자가 방향을 잡고 Claude가 코드 작성 및 벤치마킹을 수행함
- 성능 최적화 — 상세한 렌더링에도 RTX 3090에서 60fps 이상을 유지함
- 지속적인 개선 — 나무, 지면, 날씨 시스템 등 시각적 디테일을 꾸준히 업데이트함

유니티로 차가운 북대서양 섬 하나 만드는 중이다. 파도 치는 해변에서 눈 덮인 정상까지 걸어 올라갈 수 있는 곳인데, 요즘 나오는 웬만한 게임들 옆에 갖다 놔도 안 꿀릴 정도로 만들 거다. 지형은 노르웨이 로포텐의 실제 고도 데이터를 가져와서 살짝 다듬었고, 4 × 5km 크기에 1,000m 높이의 봉우리가 있는 섬으로 만들었다.
이번 프로젝트의 더 큰 목표는 범용적인 절차적 생성 시스템을 만드는 건데, 이 섬은 그 테스트 베드라고 보면 된다.
지형 자체를 제외하면 수동으로 배치한 건 거의 없다. 바위, 이끼, 식물, 숲, 심지어 새들이 모이는 위치까지 전부 섬의 높이랑 물 데이터를 읽어서 규칙에 따라 배치되게 만들었으니, 다른 섬을 만들 때도 그대로 써먹을 수 있다.
다음 단계는 지형 자체를 생성하는 건데(침식, 빙하 계곡, 해안선, 식생 등), 지금 만든 이 실제 섬 데이터를 기준으로 삼아서 생성된 지형이 이 정도 퀄리티는 나오게 할 생각이다. 지금은 이 방식이 어디까지 통할지 테스트 중이다.
(현재) 제작 방식: 내가 방향 잡고 판단하고, 코드는 어느 정도 검수만 하면 Claude Code가 알아서 짠다. 나는 전체적인 비주얼 잡고, 접근 방식이랑 알고리즘 정하고, 레퍼런스 이미지 고르고, 바뀐 거 하나하나 눈으로 확인하고, 파라미터 조정하는 식이다. Claude는 코드랑 셰이더, 툴 짜고 지가 짠 거 테스트하고 벤치마크까지 돌린다.
10일 전 첫 영상 올린 이후로 바뀐 점:
- 나무: 소나무랑 자작나무를 자체 트리 제너레이터로 싹 갈아엎었다. 좀 더 현실적으로 만들었고, 이제 뿌리 부분이랑 줄기에서 뻗어 나오는 가지, 텍스처 이음새 블렌딩, 더 리얼한 나무껍질까지 구현했다.
- 지면: 이끼, 헤더(진달래과 식물), 덤불 같은 것들 싹 다 손봤다. 훨씬 자연스럽고 셰이딩도 잘 먹는다.
- 원거리: 덤불이랑 기타 디테일 LOD 개선했다. 드로우 디스카운트 늘리고, 단계별 전환도 부드럽게 만들었다. 모든 표면에 그림자 규칙을 하나로 통일해서 나무, 풀, 땅이 다 같이 어두워지게 맞췄다.
- 하늘: 구름 퀄리티 높여서 셰이딩이랑 모양 변화 더 자연스럽게 만들었고, 번개 치는 폭풍 날씨 타입도 새로 넣었다.
- 야생동물: 기본적인 야생동물 시스템 추가했다. 특정 구역에 동물들이 나타나는데, 갈매기, 기러기 떼, 바다오리 무리, 까마귀, 잠자리 같은 것들이 돌아다닌다.
워크플로우 좀 다듬고 나니까 Claude가 지가 짠 코드를 어떻게 검수하는지 보는 게 꽤 재밌다. 그냥 "내 눈엔 괜찮아 보이는데?" 하는 식으로는 놓치는 게 너무 많거든.
- 눈으로 확인하기 전에 노멀, 모션, 머티리얼, 라이팅 값을 렌더링해서 수치로 뽑아낸다. 지면 라이팅 문제 몇 개도 이런 식으로 잡아냈다. 맹점 같은 거 걸러내려고 장치도 여러 개 세팅해 뒀다.
- 변경 사항은 고정된 카메라 뷰에서 렌더링해서 전후 비교를 하고, 프레임 타임까지 측정해서 통과해야만 적용된다.
- 너무 무겁거나 그래픽 깨짐이 심한 실험적인 기능들은 일단 보류해 뒀다가 나중에 더 개발할지 결정한다.
- 일단 논문이나 출시된 게임 관련 자료들부터 싹 다 뒤져보고 구현한다. 프레임 타임 튀면 GPU 프로파일링 돌려서 원인 찾고. 연구 없이 그냥 막 만드는 건 거의 없다(그냥 버릴 에디터나 조정 인터페이스 같은 거 빼고).


