디자인 패턴/게임 프로그래밍 패턴

[게임 프로그래밍 패턴][10]업데이트 메서드

우향우@ 2024. 4. 28. 11:38

개요

업데이트 메서드 패턴은 게임의 메인 루프에서 각 개체의 업데이트를 호출해주는 방식을 이야기한다. 각 개체의 코드에서 업데이트를 구현함으로써 자신의 동작을 자신이 캡슐화 할 수 있다.

 

구현방법

상속

개체 상위 클래스에서 virtual update 메소드를 제공하고 개체들이 이를 오버라이드하여 구현한다. 메인 루프에서는 상위 클래스 포인터 컬렉션의 요소들에 Update들을 호출한다.

 

컴포넌트

개체가 가지는 컴포넌트들에서 update를 구현한다. 여러 컴포넌트를 조합하여 개체의 동작을 만들어 낼 수 있다.

 

위임

개체는 update virtual 메소드를 구현한 위임용 객체의 포인터를 가지고 있고 개체의 update에서는 해당 포인터의 update를 호출한다. 위임용 객체를 갈아 끼움으로써 개체의 update를 수정할 수 있다.

 

휴면 객체 처리

특정 이유로 update처리를 일정기간 할 필요없는 객체들이 있을 수 있다. 이들을 처리하기 위해 단순히 플래그만 두고 휴면된 객체는 처리하지 않는 방식이 있다. 하지만 이렇게 하면 무의미한 객체 접근이 발생해 성능이 낭비되고 특히 캐쉬 성능이 낭비 될 수 있다. 이를 막으려면 현재 활성화된 개체만 담는 콜렉션을 하나 더 두는 방식이 있다. 전체 개체가 담긴 콜렉션과 활성화 개체 콜렉션 두개를 운영하는 것이다. 하지만 이는 메모리를 좀 더 먹는다. 메모리를 아끼기 위해 활성화 개체 콜렉션과 비활성화 개체 콜렉션 두개를 운용하는 방법도 있다.

 

 

 

 

참고서적

게임 프로그래밍 패턴