게임개발자/게임개발컬럼

[컬럼] 소프트웨어 설계의 특징. 그리고 아키텍트로써 게임 개발자가 할일.

스타(star) 2013. 7. 4. 02:36

우리가 만드는 게임은 소프트웨어입니다

소프트웨어에서 아키텍쳐라는 개념은 시스템 개발에 있어서 필수적인 요소가 되었습니다. 

음악을 예로 들면, 같은 음표로 작업을 하더라도 다른 결과물이 나옵니다. 소프트웨어도 마찬가지입니다.


“ 아키텍처를 자산으로 유지하고 관리할 수 있는 회사만이 급변하는 광활한 시장에서 성공할 수 있 다. ”- 모리스와 퍼거슨 [Morris 93] -

http://books.google.co.kr/books?id=hOdAStd3mR4C&printsec=frontcover&hl=en#v=onepage&q&f=false



아키텍처(게임기획서)가 하는 일

아키텍처는 공통의 문제를 해결하는 방안을 제시합니다. 

빌딩, 다리, 음악, 컴퓨터, 책 등등을 만들 때 특정 속성과 특성을 갖도록 해야합니다.

아키텍처는 결과물이 가져야 하는 속성이 문제없이 시스템에 포함될 수 있도록 만드는 계획이기도 하고, 

이미 구축된 시스템의 설명서이기도 합니다.

시스템의 속성을 가진 청사진이라고 할 수 있습니다.

게임으로 치면, 디테일한 게임 시스템들의 기획서들이 이에 해당할 수 있을 것입니다. 

또한, 데이터를 만들어 내는 과정을 담은 매뉴얼도 이에 속할 수 있습니다.

시스템을 만들어 내는 게임 개발자는 당연히 아키텍트가 될 수 밖에 없습니다.


- 아키텍처는 소프트웨어 요소간의 관계 정보를 가진다.

- 하나 이상의 아키텍처 요소와 한 가지 이상의 연관 관계로 구성될 수 있다.

- 시스템의 공통성을 추상화시켜 다양한 행동과 개념, 패턴, 접근 방법, 결과 등 을 나타낸다.

- 외부에 들어나는 시스템 요소의 행위는 다른 시스템 요소와의 상호 작용방법 을 제시한다.

- 소프트웨어 아키텍처는 상위 수준의 설계이다.

- 아키텍처는 시스템의 전체적인 구조를 표현한다.

- 아키텍처는 컴포넌트들의 구조, 그들 간의 상관관계, 시스템 설계를 통제하고 향후 진화에 영향을 주는 원칙이며, 지침이다.

- 아키텍처는 컴포넌트와 시스템 실행 시에 발생하는 데이터나 제어권이 이동방 식을 나타내는 커넥터를 나타낸다.



아키텍처(게임기획서)를 만드는 동안

아키텍트는 훌륭한 시스템을 만들 수 있도록 지원합니다. 

일반적으로 훌륭한 시스템은 다음과 같은 특징을 가지고 있습니다.

- 고객이 요구하는 기능을 갖추고 있다. (유저 또는 툴 이용자)

- 주어진 일정에 맞추어 구축할 수 있다. 

- 목적에 맞게 수행을 한다. 

- 신뢰성이 있다.

- 유용하며 안정적이다.

- 보안상 안전하다.

- 비용이 알맞다.

- 합법적인 기준을 따른다.

- 이전 시스템 및 경쟁자들보다 더 오래 지속된다.

- SW아키텍처가 일반적으로 가지는 특성을 만족한다.


하지만 위와 같은 특징을 모두 만족하는 시스템의 아키텍쳐는 불가능합니다.

일종의 trade-off의 게임으로써 어느 한쪽이 만족이 되면, 다른 하나가 악화되기 때문입니다.



아키텍트(게임기획자)의 역할

아키텍트는 자신이 만들 소프트웨어의 주요 관심사와 만족시킬 조건을 결정할 책임이 있습니다.

시스템과 내외부의 상호관계계를 적절하게 구성하고, 정의하고 시스템의 결과물이 요구하는 속성을 가질 수 있도록 상호작용하는 구조적인 집합을 제시해야 합니다. 

좋은 게임 개발자는 주장과 설득을 잘하는 언변가보다 좋은 설계자가 되어야 합니다.



SW공학센터에서 작성한 아키텍처 설계 지침

아키텍처 설계 지침.pdf




"게임기획, 그 이상" - YK아이디어스쿨

http://www.ykideaschool.com/

카카오톡 상담 - ykideaschool, @와이케이아이디어스쿨

게임기획/게임개발/게임디자인아카데미/게임기획자매니지먼트