AI 파트너인 '안티그래비티'와의 협업 과정과 기술적인 디테일이 잘 드러나도록 두 내용을 통합하여 정리해 드립니다. 블로그의 전문성과 개발자의 고민이 돋보이도록 구성했습니다.
[Unity/DevLog] AI '안티그래비티'와 함께 0부터 만드는 정통 SRPG - 2일차
: 전략의 핵심, 입체적 지형 시스템과 모바일 최적화 카메라
"전략의 깊이는 시스템의 디테일에서 결정된다."
안녕하세요! 구글 딥마인드의 최신 Agentic AI, **'안티그래비티(Antigravity)'**와 함께하는 SRPG 개발 2일차입니다. 어제 기초적인 전투 루프를 완성했다면, 오늘은 SRPG의 '전술적 재미'를 결정짓는 핵심 시스템들을 구축했습니다. 이제 캐릭터는 더 강력한 장비를 갖추고, 지형의 이점을 활용해 전장을 지배하게 됩니다.
1. 전략적 전장: 지형 및 장애물 시스템 🌲⛰️
단순히 평면에서 싸우는 것을 넘어, '어디서 싸우느냐'가 승패를 가르는 입체적인 전장을 구현했습니다.
- ScriptableObject 기반 지형 데이터: TerrainData를 통해 평지, 숲, 산, 요새 등 지형별 이동 비용(Move Cost), 방어/회피 보너스를 세밀하게 설정했습니다.
- 지능형 이동 알고리즘 (BFS): 유닛의 이동력이 충분하더라도 험난한 지형에서는 이동력을 더 많이 소모하게 하여 전략적인 경로 선택을 유도합니다.
- 지형 보너스 및 거점 효과:
- 숲에 숨은 적은 방어력과 회피율이 상승하도록 데미지 공식에 통합했습니다.
- 요새(Fortress) 타일에서는 매 턴 시작 시 HP가 10%씩 자동 회복되는 전술적 거점 기능을 추가했습니다.
- 자연스러운 맵 생성 (Perlin Noise): 펄린 노이즈 알고리즘을 도입하여 숲이나 산이 실제 지형처럼 자연스러운 군집을 이루며 배치되도록 했습니다.
2. 캐릭터 장비 및 아이템 시스템 통합 ⚔️🧪
단순한 수치 변경을 넘어 유연한 확장이 가능한 장비 엔진과 소모품 시스템을 구축했습니다.
- 실시간 동적 스탯 계산: 베이스 스탯을 직접 수정하지 않고, 장착된 무기/방어구 수치를 실시간 합산하여 최종 공격력과 방어력을 결정합니다. (GetTotalAttack, GetTotalDefense)
- 인벤토리 UI 연동: 상점에서 구매한 아이템이 인벤토리에 저장되고, 캐릭터 관리 창에서 자유롭게 장착/해제 가능한 인터페이스를 완성했습니다.
- 전투 중 아이템 사용: 소모품(물약 등) 사용 시 즉시 효과가 적용되며, 사용 직후 턴이 종료되는 SRPG 표준 룰을 적용했습니다.
3. 모바일 친화적인 '스마트 카메라' & UX 🎥📱
터치 환경과 앱 플레이어 모두에서 쾌적한 조작감을 제공하기 위해 카메라와 UI 로직을 대대적으로 개편했습니다.
- 배경 드래그 및 핀치 줌(Pinch-to-Zoom): 손가락 터치나 마우스 휠로 자유로운 이동과 확대/축소가 가능합니다. UI 터치 시 카메라가 움직이지 않도록 레이어 판정을 완벽하게 적용했습니다.
- Orthographic 줌 최적화: 쿼터뷰(직교) 카메라 특성에 맞춰 위치 밀림 현상을 잡고, 맵 크기에 따른 지능형 경계 제한 기능을 추가해 빈 공간 노출을 방지했습니다.
- 비주얼 디테일링:
- **더미 블록(Void)**을 배치해 전장이 공중에 떠 있는 듯한 입체감을 부여했습니다.
- 눈의 피로도를 줄여주는 다크 차콜(#1E1E24) 테마와 최적의 단차 비율(HeightStep = 0.3)을 찾아 적용했습니다.
🐛 버그 사냥 (Troubleshooting)
안티그래비티와 협업하며 발생한 주요 이슈들을 다음과 같이 해결했습니다.
| 문제점 | 원인 | 해결책 |
| 타입/명칭 충돌 | 유니티 내장 TerrainData와 커스텀 클래스 중복 | 별칭(Alias)을 사용하여 명칭 충돌 해결 |
| UI 잔상 문제 | 캐릭터 전환 시 기존 메뉴가 닫히지 않음 | 유닛 선택 해제 시 자동 클린업 로직 추가 |
| 지형 이동 오류 | 특정 지형에서 경로 계산이 끊기는 현상 | BFS 알고리즘 내 지형 비용(Cost) 가중치 로직 수정 |
📝 2일차 개발을 마치며
오늘은 장비와 지형이라는 SRPG의 양대 산맥을 완성했습니다. 시스템을 만드는 것만큼 중요한 것이 **'조작감'**과 **'시각적 안정성'**이라는 것을 다시 한번 느꼈습니다. 혼자였다면 복잡했을 펄린 노이즈 기반 맵 생성이나 지형 보너스 연동을 안티그래비티와의 페어 프로그래밍 덕분에 빠르게 돌파할 수 있었습니다.
다음 단계: 전투의 꽃이라 할 수 있는 스킬 시스템과 전장을 화려하게 채울 상태 이상(중독, 마비 등) 및 유닛 간 상성을 구현해 보겠습니다!
[개발 환경]
- Engine: Unity 2022.3 (URP)
- Language: C#
- Assisted by: Google Antigravity (AI Agent)
'AI > Unity' 카테고리의 다른 글
| tripo3d에서 FBX 추출 후 유니티에 적용하기. (0) | 2026.01.18 |
|---|---|
| AntiGravity를 이용한 SRPG만들기 5일차 (5) | 2026.01.13 |
| AntiGravity를 이용한 SRPG만들기 4일차 (1) | 2026.01.11 |
| AntiGravity를 이용한 SRPG만들기 3일차 (0) | 2026.01.10 |
| AntiGravity를 이용한 SRPG만들기 1일차 (0) | 2026.01.02 |