
나는 지금까지 Unity를 사용한 개발을 하면서 효율적인 성능보다 기능을 구현하기 앞서있었다. 그러다 최근 Unity Performance Tuning Bible이라는 서적을 알게 되었고, 게임 개발을 할 때 성능 튜닝이 얼마나 중요한 지 알게 되었다. 그래서 이 서적

메모리를 줄이는 포인트는 큰 부분부터 줄이는 것이다. 비용 대비 효과를 고려하여 큰 것부터 줄여나가는 것이 효율이 좋기 때문이다. 본 절에서 메모리 절감에 사용하는 도구는 Profiler(Memory)이다.Simple View에서 Assets 관련 항목이 많은 경우,

성능 튜닝을 할 때는 애플리케이션 전체를 조사하고 수정해야 한다. 따라서 효과적인 성능 튜닝을 위해서는 하드웨어부터 3d 렌더링, Unity의 구조에 이르기까지 폭넓은 지식이 필요하다. 이 장에서는 성능 튜닝을 수행하기 위해 필요한 기초 지식에 대해 정리한다.컴퓨터의

게임 프로그래밍에는 다양한 알고리즘이 사용된다. 알고리즘은 어떻게 만들었냐에 따라 계산 결과는 같지만, 성능이 크게 달라질 수 있다. 예를 들어, C 계산량이란 알고리즘의 계산 효율을 측정하는 척도를 말하며, 세분화하면 시간 효율을 측정하는 시간 계산량, 메모리

[제 3 장] 프로파일링 도구  프로파일링 도구는 데이터를 수집하고 분석하여 병목현상을 파악하거나 성능 지표를 결정하는 데 사용된다. 이러한 도구는 유니티 엔진에서 제공하는 것만으로도 여러 가지가 있다. 이 외에도 Xcode나 Android Studio와

Xcode는 애플이 제공하는 통합 개발 환경 도구이다. Unity에서 타깃 플랫폼을 iOS로 설정하면, 그 빌드 결과물이 Xcode 프로젝트가 된다. Unity에서 측정하는 것보다 더 정확한 수치를 얻을 수 있기 때문에 엄격한 검증을 할 때는 Xcode를 사용하는

[제 4장] Tuning Practice - Asset  게임 제작에서는 텍스처, 메시, 애니메이션, 사운드 등 다양한 종류의 에셋을 많이 다루게 된다. 이 장에서는 이러한 에셋에 대해 성능 튜닝을 할 때 주의해야 할 설정 항목 등 실무적인 지식을 정리한다

게임 이펙트는 게임 연출에 필수적인 요소로, 유니티에서는 Particle System을 많이 사용한다. 이 장에서는 퍼포먼스 튜닝 관점에서 Particle System의 실패하지 않는 사용법과 주의점에 대해 소개한다. 중요한 것은 다음 두 가지이다.파티클 개수 줄

AssetBundle 설정에 문제가 생기면 사용자의 소중한 통신 용량과 저장 공간을 낭비할 뿐만 아니라 쾌적한 게임 플레이를 방해하는 등 많은 문제가 발생할 수 있다. 이 장에서는 AssetBundle에 대한 설정 및 구현 방침에 대해 설명한다. 종속성 문제로 인

이 장에서는 Physics(물리 연산) 최적화에 대해 소개한다. 여기서 Physics는 PhysX에 의한 물리 연산을 의미하며, ECS의 Unity Physics는 다루지 않는다. 또한 본 장에서는 3D Physics를 주로 다루고 있지만, 2D Physics에서도

이 장에서는 유니티의 그래픽 기능을 중심으로 한 튜닝 방법을 소개한다. 렌더링 파이프라인 중 프래그먼트 셰이더의 비용은 렌더링하는 해상도에 비례하여 증가한다. 특히 요즘 모바일 디바이스는 디스플레이 해상도가 높아서 렌더링 해상도를 적절한 값으로 조정해야한다. 모

[제 8 장] Tuning Practice - UI  Unity 표준 UI 시스템인 uGUI와 화면에 텍스트를 그리는 메커니즘인 TextMeshPro에 대해 튜닝 실습을 소개한다. [8.1 Canvas 분할]  uGUI에서는 Canvas내의

Unity에서 제공하는 기능을 무심코 사용하다 보면 예상치 못한 함정에 빠질 수 있다. 이 장에서는 Unity의 내부 구현과 관련된 성능 튜닝 방법에 대해 소개한다. Awake, Start, Update 등 Unity에서 제공하는 이벤트 함수가 정의되어 있는 경우

이 장에서는 주로 C 2.5.2 가비지 컬렉션에서 소개했지만, 본 절에서는 구체적으로 어떤 처리를 할 때 GC.Alloc을 하는지에 대해 먼저 알아보자. 우선 가장 이해하기 쉽게 GC.Alloc이 발생하는 경우이다.<예시> : 매 프레임마다 GC.Allo

이 장에서는 퍼포먼스에 영향을 미치는 Project Settings의 Player 항목에 대해 소개한다. Unity에서는 Android, Standalone (Windows, macOS, Linux) 등의 플랫폼에서 Scripting Backend를 Mono 또는

이 장에서는 유니티로 게임을 개발할 때 자주 사용되는 서드파티 라이브러리를 도입할 때 성능 측면에서 주의해야 할 사항을 소개한다. DOTween(http://dotween.demigiant.com/index.php)은 스크립트에서 부드러운 애니메이션을 구

처음 시작했을 때 언급했던 것처럼 나는 효율적인 성능을 생각하지 않고 기능을 구현하기 바빴다. 그렇게 Unity Performance Tuning Bible을 공부하고 내가 지금까지 얼마나 많은 성능적인 손해를 보면서 개발을 했는지 어느정도 깨닫게 되었다... 이제