IT/마비노기 모바일

마비노기 모바일 최적화, 유니티 우리가 해결하자! (유니티 설정값 해부학)

세피디 2025. 5. 11.

유니티 최적화 실패? 마비노기 모바일이 알려준 수동 최적화의 세계

최근 가장 뜨겁게 떠오르고 있는 모바일 게임 중 하나는 바로 '마비노기 모바일'입니다. 원작의 감성과 시스템을 잘 녹여낸 이 게임은 수많은 유저들의 향수를 자극하며 빠르게 인기를 끌고 있습니다. 하지만 게임을 하다 보면 누구나 한 번쯤 겪게 되는 문제, 바로 프레임 드랍과 발열, 과도한 메모리 사용입니다. 이유는 명확합니다. '유니티의 최적화 실패'입니다.

유니티, 쉽지만 느리다?

유니티(Unity)는 배우기 쉽고 다양한 플랫폼을 지원하는 강력한 게임 엔진이지만, 그만큼 기본 설정만으로는 퍼포먼스를 제대로 끌어올리기 어렵다는 단점이 있습니다. 특히, 모바일 환경에서는 개발자가 직접 수동으로 최적화하지 않으면 각종 퍼포먼스 이슈가 발생하기 쉽습니다. 실제로 마비노기 모바일을 플레이하면서 잦은 프레임 저하, 배터리 과열, 램 사용량 폭증을 호소하는 유저들이 많습니다.

그 결과, 유저들 사이에서는 다양한 수동 최적화 방법과 프로그램이 공유되고 있습니다. 공홈 및 각종 커뮤니티를 통해 수많은 팁이 돌고 있으며, 아예 최적화 전용 앱과 사이트가 생기는 지경입니다.

직접 해보는 수동 최적화

이 문제에 대해 저도 이미 블로그에서 아래 포스트를 통해 소개한 바 있습니다:

👉 마비노기 모바일 최적화 프레임 드랍 해결 방법

 

마비노기 모바일 - 최적화, 프레임 드랍 해결

마비노기 모바일 최적화 방법 (유니티 엔진 최적화)파일 경로 : C:\Nexon\MabinogiMobile\MabinogiMobile_Data수정 파일: Boot.config1. 기존파일 백업, 복사해 놓던지 파일명 수정하여 보관 (ex. Boot.config -> Boot.conf

nearlyeverything.tistory.com

 

하지만 해당 글에서는 세세한 유니티 설정값 하나하나가 어떤 의미를 가지는지에 대한 설명은 부족했음을 인정합니다. 오늘 이 글에서는 유니티의 설정값이 게임 퍼포먼스에 어떤 영향을 주는지, 게임 오덕이자 전직 IT 개발자로서 조금 더 전문적으로 풀어보려 합니다.

설정값, 알고 건드리자

대부분의 유저는 "그냥 따라하면 되겠지"라는 생각으로 설정값을 수정하지만, 사실 각 항목은 게임 성능에 상당한 영향을 끼칩니다. 예를 들어 gfx-enable-gfx-jobs1로 설정하면 GPU 멀티스레딩이 가능해져 그래픽 처리 속도가 향상됩니다. shadow-distance 값을 줄이면 그림자의 표현 거리가 짧아지면서 퍼포먼스가 올라가고, texture-qualityhalf로 하면 텍스처 해상도가 낮아져 메모리 사용량이 줄어듭니다.

또한, use-incremental-gc 같은 설정은 가비지 컬렉션의 부하를 줄여서 렉을 줄이는 데 도움이 됩니다. 이러한 설정들은 단순히 프레임 수치를 높이는 데 그치지 않고, 장기적으로 발열 감소, 배터리 절약, 쾌적한 조작감을 유지하는 데 기여합니다.

# Unity 설정 주석 버전 (초보자용)

- `gfx-enable-gfx-jobs=1`  
  👉 그래픽 작업을 멀티스레드로 처리하여 성능을 향상시킵니다.

- `gfx-enable-native-gfx-jobs=1`  
  👉 Unity 엔진 내부의 그래픽 작업을 더욱 최적화된 방식으로 병렬 처리합니다.

- `max-chunks-per-shader=32`  
  👉 하나의 쉐이더가 동시에 처리할 수 있는 최대 데이터 블록 수를 제한합니다.

- `wait-for-native-debugger=0`  
  👉 디버깅 시 네이티브 디버거 연결을 기다리지 않습니다.

- `vr-enabled=0`  
  👉 VR(가상현실) 기능이 비활성화되어 있습니다.

- `hdr-display-enabled=1`  
  👉 고명암비(HDR) 디스플레이 지원이 켜져 있습니다.

- `job-worker-count=12`  
  👉 백그라운드 작업에 사용할 스레드 수를 12개로 설정합니다.

- `gc-max-time-slice=3`  
  👉 가비지 컬렉션이 프레임당 사용하는 최대 시간을 3ms로 제한합니다.

- `renderthread=1`  
  👉 렌더링 전용 스레드를 사용하여 메인 스레드와 분리합니다.

- `texture-quality=full`  
  👉 텍스처를 최고 품질로 표시합니다.

- `shadow-distance=200`  
  👉 그림자가 보이는 최대 거리를 200단위로 설정합니다.

- `shadow-cascades=4`  
  👉 그림자의 품질을 높이기 위한 분할 수가 4로 설정되어 있습니다.

- `particle-quality=3`  
  👉 파티클 이펙트 품질이 최고 수준입니다.

- `reflection-quality=2`  
  👉 반사 품질이 높은 수준으로 설정되어 있습니다.

- `anti-aliasing=2`  
  👉 2배 안티 앨리어싱으로 그래픽 테두리를 부드럽게 합니다.

- `use-static-batch=true`  
  👉 움직이지 않는 오브젝트를 묶어서 렌더링 최적화합니다.

- `use-dynamic-batch=true`  
  👉 움직이는 오브젝트도 최적화하여 처리합니다.

- `use-incremental-gc=true`  
  👉 점진적 가비지 컬렉션을 통해 프레임 드랍을 줄입니다.

- `dynamic-batching=true`  
  👉 다수의 작은 오브젝트를 묶어서 렌더링 성능을 높입니다.

- `use-compressed-mesh-data=1`  
  👉 메시 데이터를 압축하여 메모리 사용을 줄입니다.

- `use-compressed-texture-data=1`  
  👉 텍스처도 압축하여 용량을 절약합니다.

- `use-optimized-frame-pacing=1`  
  👉 프레임 속도를 일정하게 유지하여 부드러운 화면을 제공합니다.

- `use-fast-tier-swap=1`  
  👉 GPU 품질 단계 변경을 빠르게 처리합니다.

- `use-minimal-gc=1`  
  👉 최소한의 가비지 컬렉션만 수행합니다.

- `memorysetup-job-temp-allocator-block-size=134217728`  
  👉 잡 워커를 위한 임시 메모리 블록 크기를 약 128MB로 설정합니다.

- `use-optimized-mesh-data=1`  
  👉 메시 구조를 최적화하여 렌더링 성능을 향상시킵니다.

- `use-shader-cache=1`  
  👉 쉐이더 캐시를 활성화하여 재사용 및 로딩 속도를 개선합니다.

- `use-job-worker-for-mesh-data=1`  
  👉 메시 데이터를 처리하는 데 멀티스레드를 활용합니다.

- `optimize-mesh-data-jobs=1`  
  👉 메시 데이터를 병렬로 최적화합니다.

- `use-incremental-build-roi=1`  
  👉 점진적 빌드 최적화 기능을 활성화합니다.

- `use-shader-compiler-cache=1`  
  👉 쉐이더 컴파일 결과를 캐시에 저장하여 속도 향상.

- `use-async-compilation=1`  
  👉 쉐이더 및 스크립트의 컴파일을 비동기로 처리합니다.

- `use-multi-threaded-compilation=1`  
  👉 멀티스레드로 컴파일하여 빌드 시간을 단축합니다.

- `use-load-time-texture-compression=1`  
  👉 텍스처를 로드할 때 압축하여 메모리를 절약합니다.

- `use-background-job-worker=1`  
  👉 백그라운드 작업 처리를 위한 워커 스레드를 사용합니다.

- `use-job-graph-recording=1`  
  👉 작업 흐름 그래프 기록 기능을 활성화합니다.

- `use-optimized-window-mode=1`  
  👉 윈도우 모드에서의 렌더링 성능을 최적화합니다.

 

설정값 예시 비교

texture-quality=full → half  # 텍스처 해상도 낮춰 메모리 사용 최적화
shadow-distance=200 → 100   # 그림자 거리 줄여 렌더링 비용 감소
anti-aliasing=2             # 적당한 안티 앨리어싱 설정으로 품질과 성능 균형
use-compressed-mesh-data=1  # 메시 압축 사용하여 로딩 최적화
job-worker-count=12         # 스레드 수 조절로 멀티코어 활용 극대화

 

이런 세세한 튜닝은 결국 직접 조정해보고 FPS, 온도, 배터리 등의 변화를 비교해보는 것이 가장 좋습니다.
물론 초보가 하기에 무리가 있으며 하는 사람은 없을 겁니다. 위의 링크의 만들어 놓은 설정값으로 설정하되,
궁금한 설정값에 대해서 한 번씩 보는 것도 도움이 될 겁니다. 게임을 더 깊이 이해하고 더 나은 환경에서 즐길 수 있는 길이기도 하죠.

결론: 너도 할 수 있어, 진짜 오덕의 최적화

게임은 단순한 소비재가 아니라, 우리가 함께 다듬어가는 디지털 놀이터입니다. 마비노기 모바일의 유저라면, 수동 최적화는 더 이상 개발자의 영역이 아니라 우리의 취미 영역이기도 합니다. 위의 설정값과 원리를 이해하고 전문가라면 직접 적용해보세요. 쾌적한 마비노기 라이프가 바로 눈앞에 펼쳐질 것입니다.

그리고 혹시나 궁금한 점이 있다면, 댓글이나 블로그 방명록에 언제든 질문 주세요. 마비노기 세상의 진정한 오덕이 되고 싶은 분들을 언제나 환영합니다!

댓글

💲 추천 글