모바일 디바이스가 할 수 있는 일은 무엇일까요? 이에 맞추어 게임을 어떻게 기획해야 할까요? 게임 실행 속도가 느리다면, 그리고 프로파일러가 렌더링 병목 현상이 있다고 진단한다면, 무엇을 변경해야 할지, 또한 속도 개선을 하면서도 시각적으로 훌륭한 게임을 만들기 위해 무엇을 해야 할지를 어떻게 알 수 있을까요? 이 페이지는 기술적인 내용보다는 일반적인 방법을 설명하기 위해 작성되었습니다. 구체적인 내용을 찾아보려면 렌더링 최적화 페이지를 참조하십시오.
Shadowgun은 현재의 모바일 하드웨어에서 어떤 것들이 가능한지를 보여주는 인상적인 사례입니다. 더 구체적으로 말하자면, 할 수 없는 작업과 한계를 극복하는 방법에 대한 좋은 예제입니다. 특히 게임의 작은 부분이 이 블로그 포스트에서 공개적으로 사용할 수 있게 되었기 때문입니다.
다음은 Shadowgun에서 성능을 향상시키기 위해 실행하는 작업에 대한 기본적인 설명입니다.
이 데모는 Unity가 하이 엔드 Android 장치에서 할 수 있는 것을 표시하도록 설계되었습니다.
모바일 디바이스의 한계를 인정하고 이해할수록 게임을 시각적으로 더 훌륭하고 부드럽게 동작하도록 만들 수 있습니다. 모바일용 고급 게임을 만들려고 할 경우 Unity의 그래픽스 파이프라인을 이해하고 자체 셰이더를 만들 수 있으면 크게 유익합니다. 그러나 즉시 사용할 수 있는 것을 원할 경우 여기에서 얻을 수 있는 ShadowGun의 셰이더가 유용합니다.
게임이 자연의 법칙을 따르려 한다는 데에는 이견의 여지가 없습니다. 모든 포물선 발사체, 또는 빛나는 크롬의 각 픽셀 컬러 등은 실제 월드를 관찰하여 이를 모방한 공식으로부터 유래되었습니다. 그러나 게임은 한편으로 과학적 시뮬레이션이자 예술입니다. 물리적으로 정확한 렌더링만 가지고는 모바일 시장에서 경쟁할 수 없습니다. 현실 세계를 완전히 흉내 내기에는 하드웨어가 아직 따라주지 않으며 이런 게임은 결국 제약에 얽매이는 칙칙하고 둔한 게임이 됩니다.
폴리곤과 블렌드 모드를 선택할 때는 마치 그림 붓을 고르듯이 선택해야 합니다.
Shadowgun에서 볼 수 있는 베이크된 범프맵이 훌륭한 예제입니다. 텍스처에 이미 스페큘러 하이라이트가 들어가 있습니다. 인간의 눈은 하이라이트가 반사광 및 시점 방향과 일치하지 않는다는 것을 실제로는 알아차리지 못합니다. 하이라이트는 단순히 텍스처 위에 높은 콘트라스트로 넣은 디테일로 완전히 거짓이지만 결국 훌륭한 시각적 효과를 냅니다. 이는 인기 있는 여러 게임에서 사용해온 일반적인 속임수 기술 중 하나입니다. Halo의 첫 스크린샷의 바이저를 이 릴리스 스크린샷의 바이저와 비교합니다. 헬멧의 윗부분으로부터 돌출된 갑옷이 바이저에 반사된 것으로 보이나, 실제로는 이 반사가 바이저 텍스처에 베이크된 것입니다. League of Legends에서는 스펠 효과에 픽셀 광원이 있는 것처럼 보이지만, 실제로는 텍스처가 있는 블렌디드 평면으로서 땅 위에서 빛나는 픽셀 광원의 스크린샷을 가지고 생성한 것처럼 보입니다.
렌더링 최적화 페이지를 참조하십시오.