본문 바로가기

게임

Arma3 최적화 팁 모음

 

FPS 게임 아르마3 최적화 관련 팁을 모아봤다.

 

주로 중저사양 PC에서 원활하게 돌아가도록 하기위해 이리저리 찾아보고 적용해서 테스트해본 것들이다.

그래픽은 중상옵션 위주다.

 

- 현재 PC 사양:

cpu: i5 3570k 4.2Ghz 오버

VGA: geforce 560ti / core clock-822Mhz

Memory: 16Gb / 2000Mhz 오버

HDD: Segate 1TB sata3 7200rpm

모니터: 17인치 LCD모니터 / 1280*1024 해상도

OS: 윈도우7 64bit 홈프리미엄k

 

Arma3는 비교적 고사양에 맞춰져있다. 하드웨어가 좋다면 따로 최적화 할 필요없이 그냥 상옵으로 맞춰놓고 하면 된다.

CPU나 그래픽카드 등을 업그레이드할 여유가 없다면 CPU와 그래픽카드, 메모리를 오버클럭하면 된다.

간단한 오버클럭으로도 효과를 볼 수 있다.

 

1. 메모리(램) 오버클럭

 

이 팁은 전에 한번 올렸는데 이 링크를 참고.

 

2. 그래픽 옵션 최적화

 

게임 메뉴의 그래픽 옵션 설정을 적당히 낮춰준다. 아래 링크 참고.

- 아르마3 그래픽 세팅

- ArmA 3 Performance Tweaks and Settings Guide

 

요즘에는 1280x1024 해상도에서 그래픽 일반옵션은 모두 최상, 가시거리는 전체 2200, 개체 1200, 그림자 100.

디스플레이 옵션에서 수직동기화(vsync)는 꺼두고, AA&PP옵션에서는 FSAA는 껐고, SSAO는 기본값인 낮음, 수중 빛 산란은 기본값인 활성, 나머지는 모두 최고값인 최상으로 설정헸다.

 

해상도가 높다면 그래픽옵션을 낮춰주면 된다.

그래픽옵션 설정할 때 유의해야할 것은 무작정 다 낮춰버린다고 프레임레이트(FPS)가 좋아지지 않는다는 점이다.

CPU와 GPU 작업이 서로 맞물려있어서 그림자 설정은 높게 잡아줘야 안버벅인다. 안티앨리어싱도 같은 경우인데 PC사양과 하드웨어에 맞는 설정 찾을려면 시간이 좀 걸린다.

 

테스트는 AI가 많아서 버벅이는 미션으로 해야된다. 오버클럭을 했다면 이벤트뷰어에 하드웨어 관련 오류가 뜨는지도 봐야된다.

그리고 문서 폴더 내의 Arma3.cfg 를 메모장으로 열어

GPU_MaxFramesAhead=1;

GPU_DetectedFramesAhead=1;

로 수정 후 저장했다. 위 값이 적당한 것 같다.

 

3. GimmeMoarFrames

** GimmeMoarFrames 항목은 적용하지 마세요.

arma3 버전 1.38 이후 BI 지원중단으로 프로젝트가 중단되었다고 합니다.

나중에 다시 프로젝트가 시작할 수도 있으므로 본문은 지우지 않겠습니다.

https://github.com/fred41/GimmeMoarFrames <-- 이 링크로 프로젝트가 다시 시작되었는지 확인할 수 있습니다.

이미 적용하신 분들은 수동으로 초기화시켜 주셔야 합니다.

제가 게을러 미처 확인하지 못했습니다. 사과드립니다.

 

초기화 방법:

 

1. 윈도우 버전이 프로 이상이라면 로컬그룹정책(그룹정책편집기/ gpedit.msc) 를 실행해서 제가 아래 올린 스샷 경로로 찾아가 「메모리에 페이지 잠금」에 등록돼있는 사용자 계정을 지워버리면 됩니다. 리부팅 필요.

윈도우 버전이 홈프리미엄 이하라면 그룹정책편집기가 없기 때문에 gpedit.msc 를 사용할 수 있게 해줘야합니다.

「윈도우7 홈프리미엄 그룹정책편집」이라고 검색하시면 많이 뜨는데 참조하셔서 하시면 됩니다.

gpedit.msc 는 작업표시줄 시작을 눌러 「프로그램 및 파일 검색」에서 gpedit.msc 라고 치시면 됩니다.

 

2. 그리고 arma3 의 시작옵션에서 -malloc=tbbmalloc 이라고 쓴 부분을 다시 지우고, Arma3 게임 폴더 내에 있는 dll 폴더에 넣어둔 tbbmalloc.dll 을 삭제하시면 됩니다.

 

3. 마지막으로 레지스트리 편집기를 실행시켜

HKEY_LOCAL_MACHINE>SOFTWARE>Microsoft>Windows NT>CurrentVersion>Image File Execution Options>arma3.exe

HKEY_LOCAL_MACHINE>SOFTWARE>Microsoft>Windows NT>CurrentVersion>Image File Execution Options>arma3server.exe

위 두 레지스트리값을 지우시면 됩니다.

 

fred41 이라는 분의 윈도우 레지스트리 설정(메모리와 관련)과 memory allocator 에 관한 팁이다. 이 팁은 다른 3d 게임에도 효과가 있는 것 같다. 아시는 분은 아실듯하다. 아래 링크로 가서 설명대로 차근차근 설정하면 된다. (보관용 파일을 다운로드받아 사용해도 된다)

(* 이 팁은 8g 이상의 메모리를 장착한 윈도우7 64bit 이상의 윈도우에만 적용된다. 메모리가 적거나 윈도우7 이하 버전의 시스템에서는 권장되지 않는다.)

- An improved custom memory allocator for arma

LPManager.rar
다운로드
tbbmalloc.rar
다운로드

- 우선 LPManager.exe 를 Arma3.exe 가 있는 폴더에 넣은 다음 반드시 "관리자권한"으로 실행한다. Privilege 버튼 옆에 있는 하얀색 박스에 자신의 사용자계정이름을 입력한다. 입력 후 Privilege 버튼을 누르고 나서 시스템을 재시작한다. 재시작 후 다시 LPManager.exe 를 관리자 권한으로 실행 해서 "LP ImageFileMapping Client"의 체크 박스에 체크를 한다. 이 체크박스는 arma3.exe의 GMF(GimmeMoarFrames) 레지스트리 설정 유무를 확인하기위한 것이다.

- 다운받은 tbbmalloc.dll 를 Arma 3 의 Dll 폴더에 넣는다.

- arma3 의 시작옵션에서 -malloc=tbbmalloc 을 추가한다. (그 외 시작옵션에서 -cpucount=4 -exthreads=7 -maxmem=8188 -maxvram=1023 을 따로 추가해주었더니 더 나아지는듯한 느낌이 든다.)

- Arma3 시작옵션 Startup Parameters 공식 문서 페이지

- 그리고 arma3 실행을 관리자 권한으로 해줘야 한다. 

LPManager 설정 창. 모두 성공하면 SeLockMemoryPrivilege 가 녹색 true 로 표시된다. 설정할 때도 확인할 때도 모두 '관리자권한'으로 실행해야 함. 

정상적으로 성공했다면 사용자권한할당의 "메모리에 페이지 잠금(Lock pages in memory)" 에 자신의 계정이름이 등록되어 있게된다. 그룹정책편집기를 실행해서 수동으로 설정할 수 있지만 윈도우7 홈프리미엄버전 이하에서는 그룹정책편집기를 제공하지 않아 LPManager 나 GMF.exe 를 사용하는 것임.

레지스트리에 정상적으로 등록된 상태 화면.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\arma3.exe] 를 수동으로 직접 만들어 UseLargePages 값을 설정할 수 있지만 LPManager 나 GMF를 이용하면 자동 적용된다

 

4. 윈도우 설정

 

- 가상메모리

 

메모리가 8g 이상이라면 가상메모리를 없애거나 최소한으로 줄였을 때 arma3 의 성능향상이 체감된다고 한다.

가상메모리를 완전히 없애는 것은 권장하지 않아서 윈도우 기본 최소값인 16mb 를 다른 파티션에 최소최대값 똑같이 설정했다. 16mb는 가능한 최소값인데 다른 윈도우 응용프로그램에 문제가 발생할 수도 있어서 512mb 로 설정하고 사용하는 경우가 많다고 한다.

 

- hdd 관련 설정

 

게임파일이 ssd 에 설치되어 있지 않다면 아래 설정으로 일반 하드디스크 성능을 끌어올릴 수 있다.

 

 

△ 장치관리자의 디스크드라이브 항목에서 자신의 하드디스크 장치의 속성에 들어가 『쓰기 캐싱 정책』을 사용하도록 체크하고 『장치에 대한 Windows 쓰기 캐시 버퍼 플러시 끄기』 에 체크하면 성능이 좋아진다.

 

- 레지스트리 트윅

*** 레지스트리를 수정할 때는 매우 조심하셔야 합니다. 꼭 수정하기 전에 기본값을 적어놓거나 백업해 놓으세요. 수정 후 윈도우를 재시작해야 적용됩니다.

 

HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>FileSystem>
NtfsDisable8dot3NameCreation

 

의 값을 1로 수정.

파일시스템이 NTFS 경우에는 예전 윈도우95/98/98Se/Me에서 사용되던 도스와의 파일 호환성을 유지하기 위한 8+3 문자 형식의 파일 이름의 제한을 위한 적용이 되어 있다. 하지만, 현시점에서 도스와의 호환성을 유지할 필요성이 없는 경우에는 파일명8자, 파일확장자3의 형식 제한을 이용할 필요성이 없다. 레지스트리 편집기를 통한 편집/수정 작업을 하면 데이터의 입출력 처리 속도가 향상 되음을 확인할 수 있다.

나중에 파일 검색이 안된다거나 프로그램 설치나 사용에 문제가 생기면 기본값으로 되돌리면 된다.

 

NtfsMemoryUsage

NTFS 파일 시스템을 사용하는 모든 윈도우 OS에서 적용 가능하다.

이 값은 NTFS에 할당되는 메모리 캐시 크기 제한을 늘려준다. 메모리 용량이 커진다고 해서 이 캐시 제한이 늘어나지 않기 때문에 이것을 늘려주는 역활을 한다고 한다. 다만 램 용량이 작은 경우 전체적인 시스템 성능 저하가 있을 수 있다.

NtfsMemoryUsage를 2로 해준다

- 튜닝값 1(적당량 할당) 혹은 2(많은량 할당). 디폴트값은 0.

HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>FileSystem

NtfsMemoryUsage = dword:00000000

의 값을 2로 수정.

 

HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>Session Manager>Memory Management

「LargeSystemCache」 의 값을 1로 수정.

이 설정 역시 디스크 캐시 크기에 관한 설정이다. 적정 램용량 내에서 최대한 많이 파일 캐시로 사용하는듯.

시스템 캐시를 RAM에 할당함으로써 커널 영역 또한 HDD의 페이지 파일이 아닌 입출력 속도가 빠른 RAM에 할당함으로써 RAM 용량은 더 많이 차지할 수 있지만 시스템의 성능을 더 향상시킬 수 있습니다. 4GB 미만은 0 (10진수)으로 설정하여 비활성화를, 그 이상은 1 (10진수)로 설정하여 활성화하는 것이 좋습니다.

 

xp에 있던 「메모리사용계획」 설정인데 vista 이후부터는 레지스트리에서만 바꿀 수 있게끔 되어있다.

arma3 의 경우 메모리사용계획을 LargeSystemCache 로 설정하니까 게임화면이 더 부드러워지는 것 같다. 램용량이 적으면 어떨지는 모르겠다. 램용량이 작으면 자칫 Application에 할당할 메모리가 모자라게될 수 있으니 주의하라고 한다.

그리고 윈도우7 「고급시스템설정」에 있는 성능 옵션의 「프로세서 사용 계획」을 「백그라운드 서비스」로 하니까  cpu 사용률에 변화가 있는 것이 체감된다.

기본값인 「프로그램」에서 「백그라운드 서비스」로 바꾸고 메모리 사용 계획은 「LargeSystemCache」로 설정하고 사용중이다. 전체적인 시스템 성능도 빠릿해진듯하고 arma 성능도 좋아졌다.

반면에 여러 프로그램들을 많이 띄워놓고 멀티태스킹 작업을 할때는 성능이 떨어진다. 장단점이 있는거 같으니 컴사용습관에 맞게 설정하면 될듯하다.

 

 

5. 그 외 윈도우7 최적화 설정

 

윈도우 서비스 최적화하기. 특히 windows search 끄기.

드라이브의 파일 속성 및 내용 색인 허용 끄기, 디스크 조각 모음 실행 등.

 

 

대충 위와 같이 설정하고 대규모 제병합동 교전이 일어나는 필드나 시가지에 진입해보니 버벅거리지 않고 쾌적하게 잘 돌아간다.

 

- 그 외 Arma3 최적화 링크

▪ 메모리 오버클럭

▪ Arma3 와 램디스크 설정

 

# 추가:

2017년 아르마3가 64비트 버전도 공식지원하게 됐다. 64비트 OS에서는 램오버클럭을 제외하면 별 의미가 없을듯하다. 64비트 실행파일로 기본 실행된다.

그래픽카드 제어판 3D 프로파일 옵션 개별 지정하는 곳에서 64비트 exe실행파일이 정상적으로 자동등록되어 있는지 확인하고, 실행 론처 파라미터값이 기본값인지 확인.