posted by DGDragon 2018. 7. 8. 17:42

https://www.eveonline.com/article/pbg8dv/performance-improvements-changes-to-the-missile-system

이 개발자 블로그에 대해 토론하고 싶다면 여기 EVE 온라인 포럼의 댓글 스레드에서 할 수 있습니다!

https://forums.eveonline.com/t/performance-improvements-changes-to-the-missile-system/87426


미사일은 뉴 에덴에서 가장 널리 사용되는 무기 종류 중 하나입니다. 4가지 모든 피해 타입에의 대응, 높은 DPS, 트래킹 디스럽션 면역, 커패시터가 필요하지 않는 것 등은 런처를 장착한 모든 배를 타는 파일럿들이 가지는 중요한 이점입니다. 이러한 공격적인 도구들은, 라이트, 로켓, 헤비, 토피도, 크루저 미사일을 막론하고 모든 캡슐리어에게 심각한 위협입니다.

또한 이들은 클라이언트 성능 측면에서 심각한 문제를 나타냅니다. 이전의 미사일 그래픽 코드 구현은 이러한 인기 무기를 다른 우주 자산과 동일하게 취급하지 않았습니다. 물체의 성격에 대한 불충분한 최적화로 인해, 비슷한 크기의 다른 물체보다 더 많은 자원을 사용하게 되고, 미사일은 폭발할 때까지 혹은 연료를 모두 소모할 때까지 우주에 머물러 있기 때문에 런처는 많은 경우 클라이언트 자원을 과도하게 소모할 가능성이 있습니다.


Audio & Graphic Group은 Triglavian Deviant Automata Suppressors를 영감으로 삼아 미사일을 깨끗이 청소하는데 탁월한 성과를 거두었습니다. Audio & Graphics Group은 미사일 그래픽을 살펴보고 미사일을 사용하는 클라이언트의 성능을 향상시키기 위해 일부 개선 작업을하기로 결정했습니다.


이러한 변경 사항은 미사일 손상의 적용이나 속도, 비행 시간, 폭발 속도 및 기타 관련 값을 계산하기 위한 관련 코드에 영향을 주지 않습니다. 우주 장면에서의 미사일과, 미사일 폭발의 시각적 외관만 영향을받습니다.

EVE Online의 권장 사양을 충족하는 시스템에서 기본 프레임율 값(interval 제한 없음)을 설정하기 위해 일련의 제어 테스트가 장면에 채워졌습니다. 통제된 장면에서 모든 개체의 지속적인 미사일 범람을 추가하면 프레임 속도가 크게 떨어졌습니다. 두 값 사이의 차이는 변경 결과를 평가할 기준을 제공합니다.


미사일이 성능에 영향을 주는 분야를 평가하기 위한 요소들:


1. Damage locator selection

2. Missile mesh Level of Detail (LoD)

3. Explosion spawning

4. Clean Up

Damage Locators


캡슐리어가 New Eden의 공격 모듈을 활성화하면 그래픽 엔진은 의도한 대상에 그 무기의 효과를 가장 잘 표시하는 방법을 결정하는 프로세스를 거칩니다. 흥미로운 것을 유지하면서도 복잡한 수학으로 클라이언트의 성능을 떨어뜨리지 않도록 하기 위해 각 모델에는 표적 무기가 맞출 수 있는 몇 가지 사전 정의된 점이 있습니다. 이 지점을 "Damage Locators"라고합니다.


포탑의 즉각적인 효과를 위해 그래픽 엔진은 사용 가능한 Damage Locators 목록에서 일련의 가상 기능을 실행합니다. 가장 적합한 위치 지정자를 선택하는 이러한 함수 호출은 성능상의 영향을 최소화하면서 신속하게 발생하며 효과는 즉시 재생됩니다. 그러나 미사일의 경우 선택 과정은 비행 호와 표적 방향을 통합하여 상당히 복잡합니다.


가상 함수 호출이 대단히 과중하지는 않지만, 많은 함수가 긴밀한 루프에서 실행되는 것은 필요 이상으로 더 비쌀 수 있습니다. 새로운 구현은 루프의 복잡성을 줄여 가상 함수 호출로 인한 드래그를 줄입니다. 필수 요소는 여전히 존재합니다. 미사일은 연료가 고갈된 후 주변을 날아가거나 폭발 후 우주에 남아 있지 않으며 적절한 데미지 로케이터를 선택하면 여전히 미사일이 표적에 머물러 있게 됩니다. 그러나 처리 능력의 좋은 덩어리는 이제 다른 곳에 전용 될 수 있습니다.

미사일 메시의 세부 표현 정도 (LoD)


2017년 말까지도, 미사일은 우주선의 다른 배와 구조물에서 이미 오랫동안 완료된 V5 + + 작업과 일치하지 않았습니다. 조사에 따르면 박스 렌더링, 광선 추적 미사일을 채택하면 복잡성이 줄어들어 클라이언트에서 거의 사용되지 않는 작업이 단축됩니다. 그 결과는 현재 클라이언트에서 볼 수 있습니다: 낮은 세부 메쉬, 빛의 티끌 ( "blinky"라고 함) 및 배출을 나타내는 트레일 입자 효과.


낮은 디테일 메쉬라도 약간의 비용이 들지만 일부 발사대는 동시에 일제 사격 탄두를 발사하므로 비용이 크게 증가 할 수 있습니다. 이를 더 줄이기 위해 미사일에 세부 수준 (LoD) 규칙이 적용됩니다. 특정 거리에서 엔진은 메시를 그리는 것을 멈추고 간단한 블링키와 연기 흔적을 통해 더 긴 줌의 시청자를 위한 미사일에 대한 위치 정보를 전달합니다. 이렇게하면 게임 플레이 정보가 손실되지는 않지만 엔진에서 여분의 픽셀을 가져 오지 않습니다.


폭발 LoD


미사일 폭발의 영향으로 로드된 자산에 LoD를 적용하는 것보다 한 발 더 나아갈 수 있었습니다. 더 먼 거리에서는 이러한 효과가 화면에서 매우 작아서 최소한의 정보만 전달되지만 메모리와 드로우 콜의 프리미엄 가격에는 영향을 미치지 않습니다. 그 가격을 줄이기 위해, 카메라가 보이기에 충분하지 않으면 엔진은 폭발을 일으키지 않습니다. 결과적으로 시스템 공간은 우주 장면의 품질에 아무런 해를 주지 않고도 사용할 수 있습니다.


청소


그러나 전반적인 클라이언트 성능에 대한 가장 중요한 개선은 프로세스의 놀랍도록 리소스 집약적인 단계 중 하나 인 장면 정리에서 일련의 결함 수정 및 최적화에서 비롯되었습니다. 공간의 객체가 화면에서 제거되면 EVE의 코드베이스에 있는 많은 다른 시스템이 알아야합니다. 오버뷰 업데이트, 타겟팅 아이콘 이동, 택티컬 오버레이 조정; 인터페이스의 무수히 많은 다른 요소들이 그리드에 있는 것에 지속적으로 주의를 기울이고 어떤 것이 떠날 때 주의를 기울입니다. 미사일 재작업의 가장 큰 절감은 이브의 다양한 게임 시스템이 사물을 제거하는 방식을 바꾸는데 있었습니다. 미사일 성능을 향상시키는 방법으로 시작된 이러한 변화는 많은 수의 물체가 동시에 그리드를 떠나는 모든 무거운 장면에 실제로 영향을 미칩니다. 큰 플릿의 출발을 지켜보는 관찰자, smartbomb 함대 조종사 및 Jita 4-4에서 언독하는 관광객도 화면 정리에 대한 조정의 이점을 인식 할 수 있습니다. 그러나 가장 개선된 부분은 미사일을 사용한 비교 테스트 결과였습니다.


결과


이 네 가지 변경 사항을 모두 통합한 후 선택한 플랫폼의 테스트 환경이 성능 테스트를 위한 새 값을 성공적으로 반환했습니다. 결과는 플랫폼에 따라 미사일의 성능 영향이 전반적으로 10%에서 20% 감소한 것으로 나타났습니다. 그러나 성능 비용의 이러한 감소는 관련 프레임율 증가를 관찰하는 것이 보다 상황에 맞는 것입니다. 테스트를 거친 플랫폼에서 변경으로 인해 최소 프레임 평균이 50% 증가했습니다. 가장 큰 개선값은 평균 76%의 향상이었습니다.


테스트 환경 1 :


테스트 환경 2 :

Audio & Graphics Group은 우주 공간에서의 캡슐리어 경험을 향상시킬 수있는 방법을 항상 모색 중입니다.이 작업은 그 목적을 가진 진행 중인 프로젝트 중 하나일 뿐입니다. 현재에도 우리는 미래의 릴리스에서 보다 효과적으로 최적화할 수있는 다른 효과, 자산 및 환경을 찾고 있습니다. 그 동안 이 릴리스에서 더 쉽게 로켓, 미사일 및 어뢰로 물건을 부수는 것을 즐기면서 New Eden에 더 많이 몰두할 수 있기를 기대합니다.