[1]. Prototype_Manager 클래스를 마저 작성한다.

[2]. Utitlity 프로젝트에, Game Object 필터를 만들고, Object_Manager 클래스를 추가한다.

[3]. Object_Manager 클래스에서, 직접 Render 기능까지 담당하지 않는 이유는, 깊이 버퍼 값에 의한 그리기 순서를 고려했기 때문이다. 나중에 추가할 Layer 클래스들에 객체들을 분류도 하고 싶고,

분류는 왜 할 까, 집단에 대한 검색을 필요로 해서 (ex. 플레이어가 광역스킬을 사용했는데, 적군 집단들만 모아놓은, 리스트를 순회하면서 처리를 하면 좋겠다)

그리는 순서를 지켜서 관리를 하고 싶은데, 이것을 Object_Manager에서 분류하고 싶은대로 하고, Renderer 클래스에서는 그 그리는 순서대로 관리를 하겠다. 스카이박스를 생각해보자. 그리고, UI관련 객체들의 그리는 순서에 따라 고려사항도 있다.

[4]. Object_Manager 는 결국 복제한 사본 객체를 저장하는 클래스인데, 이 사본 객체들도 Level 별로 구분이 되어야 하기 때문에, Level의 갯수를 받아오는 Create함수를 작성할 것이다.

[5]. Layer 안에, 객체들을 List 형태로 보관해 놓을 것이기 때문에, Object_Manager 클래스에, map 컨테이너로 Layer* (이게 list 형태) 를 받는 형태로.

[6]. Update를 Priority_Update / Update / Late_Update 로 나누어서, 각각의 Update 를 쫘악 다 끝나고 다음 Update로 들어가게 한다. 추후에 각 Update 사이에 작업해야할 일이 있다. 카메라 같은.

[7]. Layer 클래스를 만든다.

[8]. Layer는 사본객체들을 분류해놓은 한 묶음 이라고 보면되는데, 이제 Client 프로젝트에서 사용할 객체의 부모 클래스를 Engine 프로젝트에서 만든다 → GameObejct 부모클래스

[9]. GameObject를 담는 list를 Layer 클래스에 만들어준다.

[10]. AddGameObject 함수를 추가해서, GameObjeect를 list에 push_back 해준다.

[11]. 나머지 함수들을 작성하고, Object_Manager 클래스에 Clone 하는 기능의 함수를 만들자.