데이터 지향 설계(Data Oriented Design)에서의 게임 개발에 대해서

상세



게임 개발을 할 때의 생각에는 데이터 지향 설계(Data Oriented Design)라는 것이 있습니다.

지난 수십 년 동안 CPU 성능이 1만배 이상인 반면 메모리 성능은 10배 미만밖에 되지 않았습니다. 또한 앞으로도 CPU와 메모리의 차이는 점점 늘어날 것으로 보입니다.
그 때문에, 게임 개발에서의 병목이 메모리 대역이 되는 경우가 많아졌습니다.
참고: INTRODUCTION TO DATA ORIENTED DESIGN
htps //w w. 그래. 코 m / f로 st 흠 /

게임의 처리나 퍼포먼스에 가장 영향을 받는 것은 메모리의 읽기 속도입니다. 현재 CPU의 대부분의 시간이 메모리에서 데이터 전송을 기다리고 있습니다. CPU의 성능을 끌어내기 위해서는 메모리 대역을 얼마나 효율적으로 사용하는가가 중요해지고 있습니다.

향후의 게임 개발에서는 메모리의 데이터를 읽는 프로세스를 가능한 한 적게 하는 것에 주목한 설계가 요구됩니다. 데이터 지향 설계(Data Oriented Design)에서는 이러한 사고방식으로 효율적인 메모리 레이아웃을 생각해 설계합니다.

데이터 지향 설계란?



프로그램은 데이터를 입력으로 받고, 데이터에 어떠한 가공을 실시해, 결과의 데이터를 출력하고 있습니다. 무엇을 할지라도 데이터가 얽혀 있습니다. 그 때문에, 데이터의 메모리 레이아웃이나, 데이터가 어떻게 읽혀 내보내지는지 주목한 설계가 데이터 지향 설계입니다.

Unity의 데이터 지향 설계 정보



Unity의 경우에는 Entity Component System(약칭:ECS)이라는 소프트웨어 아키텍처 패턴이 있습니다.

샘플 코드: EntityComponentSystemSamples
htps : // 기주 b. 코 m / 우니 ty- ch ぉ ギエ s / 엔치 ty 코 m 포넨 tSys m mp ぇ s


참고


  • Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)
    ㅡㅡㅡㅡㅡㅜ 코 m / 다타 오리 엔테 d
  • INTRODUCTION TO DATA ORIENTED DESIGN
    htps //w w. 그래. 코 m / f로 st 흠 /
  • 좋은 웹페이지 즐겨찾기