Bellerophon
2017-09-21 20:24
조회: 631,939
추천: 178
첨부파일 TslGame.zip [4Kb]
배그 최적화 하기!* 현재 시스템 사양
i7-6700K 4.4Ghz, 16GB-3000Mhz 시스템 Ram GPU: RX 480 OC Nitro+ 8GB, 1920*1080 해상도 윈도우10 64bit
- 윈도우 최적화 해놓은 상태, 부팅시 메모리 1.8GB 정도 사용. superfetch, Windows Search 서비스도 끔.
배그도 언리얼 엔진을 사용하는데 4를 쓰더군요.
처음 인벤에 글을 올린게 오랜만에 테라 해야지! 하는데 여전히 최적화가 심각해서 최적화 글을 올렸는데 이 겜도 기본적으로 메모리 누수가 심하고 성능대비 자원 먹는게 커서 이것도 손대게 되었네요...... 흑흑... 프로그래밍 하는 수준이 아니고 보다 한정된 범위에서 적용을 하니 획기적인 정도는 아닙니당.
테라 이후 언리얼 엔진 겜들을 해보면서 옛날에 사용했던 것 외에 새로 또 적용하고... 배트맨 아캄 시리즈, 셜록홈즈 죄와 벌과 악마의 딸, 아크 서바이벌 이볼브드, 데드 바이 데이라잇 등등... 테라 이후(테라 글은 넥슨에 넘어가기 전 옛날이네요) 추가로 명령어 만지게 된 영향을 많이 받은게 배트맨(DecalCullDistanceScale), 아크 서바이벌 이볼브드임당.
아직도 배그자체의 프레임 편차가 맘에 들진 않지만 초반에 은근히 끊기는 것에 비하면 현재는 설정 후 끊기는 것 없이 부드럽게 플레이해서 올리게 되었습니다. 배그는 괜찮은게 또 뭐가 있나 하고 구글링한 내용을 적용해보고 사용하고 있네영.
메모리 누수 완화와 최대한 텍스쳐 위주의 그래픽을 좋게 하면서 성능이 나오도록 주안점을 두었습니다. 배그 플레이 초반엔 90대에서 110대도 보이고 배그를 오래하면 최소가 45정도일때도 보이지만 끊기는 느낌은 없고 지역마다 편차가 커서 100이상 넘을때도 있고 보통 평균적으로 6~90 프레임 정도 나오는 것 같습니당.
최대한 배그에 메모리를 할당했는데(한계치를 잡고 마냥 늘리지 않았음) 사용하시는 메모리양에 맞게 조정하시면 됩니당.
저는 리쉐이드는 안씁니다. 거기에 사용되는 안티앨라이싱 종류 때문에 지글거려서... 전 배그를 기본 다이렉트 11로 돌립니당.
설명만 보면 복잡해보이지만, 제가 첨부한 파일내용을 보면 간단하게 보이는 매직이?!
이 글에 나와있는 값들은 제 사양에 맞춘 값이니, 본 글과 제 인장글을 참고하셔서 본인의 사양에 맞게 값을 설정하세요. (근데 배그는 워낙 최적화가 문제여서 텍스쳐와 안티를 제외한 나머지는 거의 낮은 값이라...)
사양에 맞게 적정값을 적용하면 눈으로 보이는 프레임 보다도 컴터가 화면에 반영하는 반응속도도 개선이 됩니다. 프레임에 비해서 부드러워지는 느낌이랄까요.
웬만하면 시스템 메모리가 16기가면 될텐데, 메모리는 부족하면 최소와 최대값을 같게 해서 가상 메모리를 사용하세요.
- 항상 원본파일은 백업해두세요!
- 첨부파일들은 모두 파일속성이 읽기전용에 체크되어 있습니다. 겜이 실행되면 기본으로 바뀌기 때문에 고정시킨 것이므로, 내용을 수정하려면 읽기전용을 풀고 수정하신 후 다시 읽기전용을 적용해주시면 됩니다. 개개인 마다 해상도나 설정들이 달라서 GameUserSettings.ini 파일만 첨부를 안했습니다.
- 제 사양과 비슷하신 분은 바로 첨부파일로 덮어씌워서 쓰시면 되는데(물론 원본 백업 추천!) [Engine.ISVHacks] 항목은 각 그래픽 회사에 맞게 적용해주시고, Scalability.ini의 프리셋 값과 GameUserSettings.ini에 있던 [ScalabilityGroups] 하위 내용에 나오는 값을 제가 쓰는 걸로 일치시키세요.
1. 배그 라이브러리 속성의 시작 옵션 설정에 다음과 같이 명령어를 넣습니다.
- 설명
스팀의 시작 옵션 설정에 대한 것들은 대부분 이미 알려진 것 같지만 그래도 보기 쉽게 정리를 해봤습니다. 다이렉트 9나 10으로 구동하는건 같은 이유로 제외했고 이것은 적용해보고 더 나은 다이렉트 버전으로 구동하시면 됩니다. * 참고: https://tgd.kr/1216684
-maxVram= -> 자신의 그래픽 카드 메모리 중 배그가 점유할 수 있는 최대 동적 메모리 할당값을 설정합니다. 배그만 돌리는 경우, (글카 메모리 GB X 1024)-512(MB)로 계산해서 대충 넣습니다. 그 외 인터넷 좀 키고 이러시는 분들은 다른 프로그램이 차지하는 메모리 점유량에 맞춰서 조정하시면 됩니다.
단, 비디오램이 1GB 이하인 경우에는 이 명령어를 아예 넣지 말고 지워버리시고 GTX970을 사용하시는 분은 -maxVram=3072 로 입력하셔야 합니다. (비디오램이 3.5 + 0.5 로 분할되어있음)
-heapsize 1572864 -> 배그가 점유할 수 있는 최소한의 동적 메모리 할당량을 설정합니다. 이것도 메모리 부족으로 겜이 터지는 것을 예방합니다. 여기에 예시로 적은 것은 1.5GB입니다.
-maxMem= -> 배그가 점유할 수 있는 최대 동적 메모리 할당량을 설정합니다. 역할은 바로 위와 같습니다. 대충 자신의 시스템 메모리에서 1024 MB 정도 빼주시고 기타 무거운 걸 같이 돌리시면 추가로 더 빼주세요.
-threads 8 -> 자신의 CPU의 총 쓰레드 수를 입력합니다.
-USEALLAVAILABLECORES -> 가용가능한 모든 코어를 사용하게 하는 명령어입니다.
-high -> CPU 우선 순위를 최고로 두는 명령어입니다.
-nojoy -> 조이패드 드라이버를 불러오지 않게 합니다.
저는 윈도우도 최적화를 해서 불필요한 것들을 최대한 꺼서 처음 윈도우 부팅시 메모리 점유량이 약 1기가~2기가 정도 됩니다. 하지만 개개인에 따라 사용하는 플그램과 기본적으로 실행하는 프로그램들 때문에 필요한 실제 메모리량은 다르기 때문에 메모리 점유량과 관련된 내용은 설명한 것 보다 더 빼야할 수 있습니다.
2. 인겜 그래픽 옵션 설정
* 기입해놓은 경로는 제어판>폴더옵션에서 숨김파일을 보이게 설정해야 나옵니다.
먼저, 인겜 그래픽 옵션을 먼저 다 설정해주세요. 그 후에 C:/Users/윈도우 계정명/AppData/Local/TslGame/Saved/Config/WindowsNoEditor로 가셔서 GameUserSettings.ini 파일을 메모장에서 엽니다. 인게임 그래픽 항목의 내용입니다. 0이 젤 낮은것, 4가 젤 높은 것인데요, 저는 텍스쳐와 안티는 젤 높게 설정하고 나머지는 낮춰서 아래와 같습니다. -> 인겜 그래픽 항목의 내용인데 0이 젤 낮은 것이라고 했으므로 0이 매우 낮음, 1이 낮음, 2가 중간, 3이 높음, 4가 울트라 입니당.............
[ScalabilityGroups]
여기에 나온 값들이, 이 GameUserSettings.ini 파일과 동일위치에 있는 Scalability.ini의 옵션 정의 번호와 동일해야 합니다.
첨부된 파일을 열어보면 [항목명@1], [항목명@2], [항목명@3] 이런 식으로 되어있는데 이 숫자값과 GameUserSettings.ini에 있던 [ScalabilityGroups] 하위 내용에 나오는 값과 일치해야 한다는 겁니다. 저는 텍스쳐와 안티만 젤 높게 설정하고 나머지는 높은게 3(높음)이라서 프리셋 정의를 3까지만 만들었습니다. 본인이 설정한 옵션에 해당되는 값만 바꿔줘도 되겠지만 이왕이면 모든 옵션에 대해서 값을 적절하게 수정해주는게 더 낫겠죠. (원본 파일은 내용이 아무것도 없어요!! 윗 설명에 쓴 말은 첨부된 파일입니다. 원본이 아니라!!) 0~9 이런식의 값들 외 64, 256, 2048 이런 값들은 2배를 곱하거나 나눠서 적용해주세요. 숫자의 배열을 보시면 어떤 것을 낮추거나 높여야 성능이 올라가는지 아실 수 있습니다.
여기에 나오는 명령어들이 많다보니 설명을 다 올리긴 힘들어서 수정 대비 체감이 큰 몇가지에 대해서만 설명을 올립니당.
Scalability.ini에 나오는 명령어 중 그림자 항목에서 r.AllowLandscapeShadows는 풍경 그림자를 on, off를 설정하는 것으로, 0과 1로 하시면 됩니다. 그림자를 다 지우는게 아니라, 언리얼 엔진에서 사용하는 그림자가 여러가지 있는데, 그 중 하나입니다. 얘도 체감이 큽니다.
그리고 그림자 최대 해상도를 설정하는 r.Shadow.MaxResolution 값은 2의 배수로 조절하시면 체감이 커질 겁니다.
3. 그 외 그래픽 엔진 파일들
배그는 그냥 원본으로 돌려보니 메모리 누수가 심해서 결국 겜이 튕겨서 이와 관련된 명령어들도 넣었습니다.
3-1. 에디터.ini - 메모리 누수 방지 경로: C:/Users/윈도우 계정명/AppData/Local/TslGame/Saved/Config/WindowsNoEditor, /Config
배그 기본 파일구성엔 디폴트에디터.ini나 에디터.ini 파일은 없을 겁니다. 제가 첨부한 파일엔 추가되어있는데, 그 파일 안에 적용되는 내용은
[Cooker.MatineeOptions]
[Cooker.GeneralOptions] 메모리 누수에 여러 원인이 있는데 가장 많이 발생하는 경우에 해당되며, 이를 해결하는 명령어입니다.
아랫항목은 더 나중에 추가한 것으로, 이것도 해당되는 것들을 일정주기마다 날려주는 명령어입니다.
그런데, 겜마다 적용되는 파일이나 위치가 약간씩 달라서 저는 다 넣었습니다. 일일히 되는 위치나 파일을 판별하기 귀찮아서... - 가장 기본적인 파일구조가 base에디터.ini, 그 담이 디폴트에디터ini, 그 담이 프로젝트명 에디터.ini 입니다.
적용해보니 적용이 되는 것 같습니다. 장시간해도 원본상태와 다르게 튕기지 않고 메모리가 무한 증식 하지는 않거든요.
3-2. Input.ini 경로: C:/Users/윈도우 계정명/AppData/Local/TslGame/Saved/Config/WindowsNoEditor
bEnableMouseSmoothing=false
3-3. Engine.ini
MaxParticleVertexMemory=131972
MinLightMapDensity=0.0
최소, 최대, 이상적인 라이트맵 값입니다. 대충 기본 으로 넣었습니다.
이것들은 겜에 적용되어 있어야 같이 적용이 되는데, 어차피 적용이 안되면 알아서 적용이 안되니 배트맨 겜에서 찾아서 넣었습니다.
ProcBuildingLODColorTexelsPerWorldUnit=0.075
[Engine.ISVHacks]
NetClientTicksPerSecond=15000 MaxClientRate=15000 대충 알아서 맥스값으로 적용될 겁니다. 일일히 테스트 하면서 하는건 테라와 마영전 최적화 당시 신물이 나서... 컴퓨터 사양과 인터넷 핑이나 반응속도가 받쳐주면 더 좋습니다.
물론, 서버가 터지면 접속에 문제가 생깁니다.
비대칭 랜선일 경우 병목현상이 올 수도 있으니 값을 적당히 낮추세요. 보통 기본값이 30이나 60 정도 됩니다.
오랜만에 배트맨 아캄 어사일럼 파일을 보니 괜찮아 보이는 것이 있어서 추가합니다.
OneFrameThreadLag=True
[SystemSettings] TEXTUREGROUP_의 항목들은 예전 테라 팁글도 참고하시면 됩니다. 대충 최소 LOD 사이즈, 최대 LOD 사이즈 값을 2배수로 조정하시면 메모리 점유량에 영향을 줍니다. 각각의 오브젝트에 어느 사이즈, 해상도로 입혀서 렌더링할 것인지 설정하는 거라고 보심 됩니다. [SystemSettingsEditor] 항목도 비슷합니다.
우선은 텍스쳐 외의 것들 위주로 줄이시면 됩니다.
* 메모리 부족하신 분들은 추가로 이것도 수정해주세요.
[/script/engine.renderersettings] Scalability.ini의 내용과 겹치는 부분은 똑같게 적용했습니다. 귀찮으시면 Scalability.ini과 중복되는 부분은 지우셔도 됩니다. 이것도 명령어가 많은 관계로 생략할게요 ㅠ_ㅠ 블룸이나 앰비언트 오클루젼은 끄거나 최소로 값을 설정했습니다. 대부분은 거의 최소로 했습니다.
BoostPlayerTextures=3.0 4.0이면 기존보다 텍스쳐가 아주 조금 더 좋아지는데 자원은 별로 안먹습니다. 배그에선 큰 차이는 없지만 약간 차이가 납니다.
프레임이 개선되는 것으로 넣었습니다.
TimeBetweenPurgingPendingKillObjects=60 여기까지의 명령어들은 http://annihilation.info/tribes0/tribesascend_ini.htm 이 사이트에서 참고하시면 됩니다.
[TextureStreaming]
PoolSize=1024 [MemoryPools] 이 항목도 비슷합니다.
제 경우에 현재 배그는 문제가 없었네요.
1GB 카드 쓰시거나 만약 시스템 메모리가 계속 증가해서 메모리가 부족하시면 이 명령어 2개를 지워주세요.
[DevOptions.Shaders] 항목추가. 나머진 예전 원본 그대로 복붙.
* 기타
- 항상 원본파일은 백업해두세요!
- 첨부파일들은 모두 파일속성이 읽기전용에 체크되어 있습니다. 겜이 실행되면 기본으로 바뀌기 때문에 고정시킨 것이므로, 내용을 수정하려면 읽기전용을 풀고 수정하신 후 다시 읽기전용을 적용해주시면 됩니다. 개개인 마다 해상도나 설정들이 달라서 GameUserSettings.ini 파일만 첨부를 안했습니다.
- 제 사양과 비슷하신 분은 바로 첨부파일로 덮어씌워서 쓰시면 되는데(물론 원본 백업 추천!) [Engine.ISVHacks] 항목은 각 그래픽 회사에 맞게 적용해주세요.
- 토글, 키설정 모두 GameUserSettings.ini 여기에 저장되니 키설정외는 먼저 다 하시고
피방이면 주로 가시는 피방 CPU 최대가능 쓰레드 수와 글카 용량, 시스템 메모리(실제 가용가능한 메모리도)를 확인하셔서 이 부분을 추가조정하시면 됩니당!
실제 메모리 사용중인 점유량과 여유 공간 확인은 cleanmem, RamMap 같은 프로그램으로 확인가능하고, 메모리 청소도 가능합니다.
- Tab 키를 눌러서 뜨는 화면은 사양이 낮은경우에 렉이 심하다는 것을 어느 유튜브 영상에서 접했는데, 이때는 거의 초창기라 현재도 어떤지 모르지만 만약 그런 분들은 제 인장글의 'UI 반응개선 등' 글을 참고해주세요! 적용할 파일은 스팀폴더/steamapps/common/PUBG/TslGame/Binaries/Win64의 TslGame.exe 입니다!
그 전에 봤던 영상을 보면 테라와 마영전의 프레임 드랍의 주범인 UI 툴의 문제가 비슷하게 나타나는 것으로 보입니당. 이것은 새로 적용된 Coherent UI 툴이 똑같이 Flash 구성요소를 활용해서 그런 것 같네용.
- 프레임 제한 거는 방법은 GameUserSettings.ini 파일에서 FrameRateLimit 값을 원하시는 값으로 설정하시면 됩니다. 예: FrameRateLimit=144 수직동기화는 온라인의 경우 인풋렉을 유발하므로 수직동기화는 끄시고 프레임 제한만 거시는걸 추천합니다. 모니터가 60hz라도 이건 모니터가 쏘는거고 프레임은 컴터가 쏘는 것이니 프레임을 60보다 높게 잡아도 됩니다. 저는 오버워치 프레임 제한을 144 두고 씁니다. 이건 네이버 카페에서 첨 봤네영.
- 네트워크 핑 개선이나 모든 CPU 코어 활성 및 기타 팁, 이 글외의 명령어와 관련된 팁들은 제 인장에 나오는 글들을 참고해주세요!
- 윈도우10 쓰시는 분들은 https://extrememanual.net/7706 여기를 참고하셔서 윈도우10 메모리 누수현상을 해결하세요. (윈8이상)
- 소리가 씹힐 때 내용 추가 (2017.10.09 추가) 발소리 등 일부 사운드가 간혹 랜덤적으로 씹혀서 안날 때가 있습니다. 외국에서도 빈번하게 겪고 있네요 ㅂㄷㅂㄷ 그럴땐 Engine.ini에 아래 내용을 추가하세요. (수정후 다시 읽기전용 속성 체크!) 서너시간 해보니 효과를 본 것 같아 추가합니다.
볼륨을 조절하거나 특정 음역대의 볼륨을 조절하면 해당되는 음역대의 볼륨이 모두 변경되어 원근감이 사라져서 옛날 테라에 있던 내용을 복붙했습니다.
[WinDrv.WindowsClient]
[ALAudio.ALAudioDevice]
EXP
130,581
(82%)
/ 135,001
Bellerophon
* 테라 최적화 팁
- [1부] 장시간 플레이시 지속 프레임 하락현상 개선 및 기타 S1Engine.ini 관련 옵션설정 http://www.inven.co.kr/board/powerbbs.php?come_idx=2152&l=13143 - [2부] 보다 쾌적한 테라를 위한 최적화 팁 http://www.inven.co.kr/board/powerbbs.php?come_idx=2152&l=14229
- [3부] S1Engine.ini 최종버전 http://www.inven.co.kr/board/powerbbs.php?come_idx=2152&l=14366 * 마영전 개선 팁 - [UI 반응개선 등] 보다 마영전을 부드럽게 해보자! http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=30820 - Config_Material 새로운 명령어 추가 http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=31300 - 네트워크 명령어 값 참고 http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=32962 - 라데온 크림슨과 카탈리스트 a.i http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=35366 - 핑 반응속도 수동 최적화(윈도우 설정) http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=35546 * 가상메모리 팁 http://www.inven.co.kr/board/powerbbs.php?come_idx=2152&l=16857 * 배그 최적화 팁 http://www.inven.co.kr/board/battlegrounds/5074/444 * 디아2 레저렉션 팁 - 아이템 필터 수정+폰트 더 굵게+시간경과 알림제거 모드 * 로아 최적화 팁 - 로아 최적화! 보다 부드럽게!! |
인벤 공식 앱
댓글 알람 기능 장착! 최신 게임뉴스를 한 눈에 보자