림월드 , 렉 없는 게임 설계
게임 그외 잡담 2025. 10. 3. 17:07 |1️⃣ 데이터 중심 설계 (Data-Oriented Design)
- 게임 로직이 객체 단위가 아닌 데이터 단위로 처리됨.
- 예: 각 캐릭터(Colonist)의 상태를 객체로 만들고, 필요 없는 컴포넌트는 제거 → 메모리 낭비 최소화.
- **Unity의 ECS(Entity Component System)**와 비슷한 사고방식.
💡 결과: CPU 캐시 친화적, 연산 속도 빠름
2️⃣ 효율적인 업데이트 루프
- Unity는 기본적으로 **Update()**를 매 프레임마다 호출하지만, RimWorld는:
- 모든 오브젝트가 매 프레임 Update를 가지지 않음
- 이벤트 기반(Event-driven) 시스템 사용
- 예: 캐릭터 이동, AI 행동, 생산 활동 등은 상태 변화가 있을 때만 처리
💡 결과: 불필요한 계산 최소화 → FPS 안정
3️⃣ 타일 기반 & 제한 범위 계산
- 맵은 **타일 기반(grid-based)**으로 구성 → 탐색 범위, 시야 계산을 효율적으로 제한
- 모든 캐릭터가 전맵을 탐색하는 게 아니라, 필요한 영역만 연산
💡 결과: 연산량 급감 → 렉 거의 없음
4️⃣ 메모리 관리 & 가비지 최소화
- RimWorld는 C# 메모리 할당을 최소화하여 GC(Garbage Collector) 스파이크 방지
- 반복적으로 생성/삭제되는 객체를 **풀(Pool)**로 재사용
- 임시 리스트, 배열 등도 재사용
💡 결과: 튕김/프리징 거의 없음
5️⃣ AI & Pathfinding 최적화
- Pathfinding을 한 번에 전체 계산 X → 필요할 때만 계산
- A* 알고리즘 최적화, 이동 가능한 노드 캐싱
- 다수 캐릭터 이동 시, 병렬 처리 최소화, 순차 처리로 CPU 과부하 방지
💡 결과: 캐릭터 수 많아도 안정적
6️⃣ 로딩 & 렌더링 최적화
- Unity에서 일반적으로 UI, 렌더링, 애니메이션이 CPU/GPU 병목을 만들지만:
- RimWorld는 2D 타일/스프라이트 기반 → GPU 부담 적음
- 필요 없는 객체는 비활성화 → 렌더링 최적화
💡 결과: 팅김/프레임 드랍 거의 없음
7️⃣ 모드(Mod) 지원 + 안정성
- RimWorld는 Mod-friendly 구조지만, 핵심 시스템은 안전하게 격리
- Mod 때문에 성능 문제가 나더라도 기본 게임은 안정적
💡 결과: 팅김과 렉 최소화 유지
💡 요약:
RimWorld 렉 거의 없음, 튕김 없음의 핵심은
“데이터 중심 설계 + 이벤트 기반 로직 + 메모리 관리 최적화 + 타일 기반 계산 제한”
Unity라는 엔진 자체보다, 설계와 최적화 전략이 더 중요합니다.
+
최근엔 멀티스레드도 공식 지원했다 카더라
+
dubs analyzer performance 모드로
어떤 기능이 얼마나 틱 렉 먹는지 관찰 가능
호출 수가 많을수록 렉 걸림
여기서, 기본 기능 중에서,
상단 정착민 표시바에서 무기 항상 표기하기 = 렉 조금 유발
상단 정착민 표시바에서 무기 항상 소집시에만 표기하기 = 렉이 아주 살짝 있음
상단 정착민 표시바에서 무기 안 표기하기 = 렉 없고 쾌적함
반응형