디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

ECS 프로그래밍에 대해서 공부해 본 것.

ㅆㅇㅆ(124.216) 2024.09.27 22:26:10
조회 815 추천 7 댓글 5
														

ECS는 기본적으로 


MVC와 같이 소프트 웨어 아키텍쳐 패턴이다. 


ECS는 게임 오버워치에서 처음 언급됐는데(GDC 2017 게임 플레이 아키텍쳐)


구체적으로 말하자면 ECS는 엔터티-컴포넌트 시스템을 말한다.


엔터티-객체를 식별하는데 사용되는 고유 식별자, 자체에 데이터를 포함하지 않고, ID로써 개체를 식별하는 기능을 가짐


컴포넌트-컴포넌트는 객체의 속성을 설명하는 일부 데이터를 포함하는 데이터 구조. 컴포넌트에는 비헤이비어가 없다.


시스템- 주로 사용자 로직 처리 및 상태 마이그레이션이며, 어떠한 데이터도 시스템에 저장 되지 않는다.


22aec568f5dc3f8650bbd58b3680756f382b47

World는시스템과 엔터티의 조합이다.


ECS 프레임워크의 특징은 객체의 데이터와 비헤이비어가 제거되고, 업데이트 기능에서 관련된 작업을 처리하는 대신 특정 시스템이 특정 동작을 처리한다.


유니티 ECS의 기본 개념은


핵심은 라이프 사이클 관리다. 포인터 대신 32비트 ID로 표현되며, 렌더링에 사용되는 리소스 ID도 첨부된다. 

라이프 사이클 만 담당하고, 메서드를 호출하지 않도록 설계되었기때문에 int ID를 사용하는 것이 강력하다. 


엔터티는 ECS의 기본이자, 인덱스, 버전으로 구성되어있다. 버전은 엔테티가 재활용된 후 1씩 증가하는데, 


이 구성요소는 ECS만의 데이터 유형인 '청크(chunk)에 저장된다. 컴포넌트 데이터를 조작할때, 해당 Index에 따라 엔터티 데이터 매니저에 위치한 청크와 청크 인덱스를 찾아 해당하는 컴포넌트 데이터를 얻은 후 작업한다.


컴포넌트


-컴포넌트는 엔터티의 속성이며, 일반적으로 IComponent, 또는 IsharedComponenetData 인터페이스 구조로 기록됨


엔터티는 여러 컴포넌트를 포괄할 수 있다. IShaderedComponentData로 기록된 데이터는 동시에 여러 엔터티 간에 공유되고, 게임 오브젝트 또는 렌더 메쉬같은 렌더링 관련해서 저장하는데 사용된다.


엔터티의 구성요소는 CreatEntity시 지정되거나, ArchType를 사용하여 기존 엔터티에 복사되고, AddComponent 및 RemovemComponent 구성요소를 동적 추가삭제 가능하다. 하지만 효율성 문제로 ㅜ건장하지 않는다.



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73de98efa11d02831add4b458ef65c5a3ba55a68bb9d3d4e9b1670255ccf8f75734b37d2ea36fdfecbb9f04b7a4a97d9d41657336544986abcd77912ea5b761

(컴포넌트 조합이 같은 것끼리 묶은 것을 아키타입이라 한다)


앞서 말했듯 ECS 아키텍쳐는 ID(엔터티_),데이터(컴포넌트), 및 동작(시스템)으로 분리된다. 이 아키텍쳐는 데이터에 중점을 두고, 시스템은 구성 요소의 데이트 스트림을 읽은 다음 입력 상태에서 출력상태로 변환 엔터티는 이를 색인화 한다. 이로 인해 이를 데이터 지향 프로그래밍이라고 한다.


그리고, 컴포넌트 유형의 고유 조합을 엔터티 아키타입이라고 하는데, 각 인스턴스 자체는 단일 엔터티에 해당하지만 동일한 컴포넌트 조합을 가지고 있으므로 이를 단일타입이라고 분류한다.


엔터티의 아키타입은 엔터티의 컴포넌트가 저장되는 위치를 결정하는데, ECS는 청크 형태로 메모리를 할당, 각 청크는 아키타입 청크 객체로 표시된다. 

이러한 블록에는 항상 엔터티 단일 아키타입이 포함된다. 메모리 블록이 가득차면 ECS는 동일한 아키타입을 사용하여, 생성된 모든 새 엔터티에 대해 새 메모리 블록을 할당함


따라서, 아키타입과 블록간의 일대 다 관계를 제공한다고 볼 수 있는데, 구성 요소 집합이 있는 모든 엔터티를 찾는데 일반적으로 숫자가 훨씬 더 많은 모든 엔터티가 아니라 일반적으로 숫자가 작은 기존 아키텍쳐만 검색하면 된다는 것이다.



추천 비추천

7

고정닉 0

1

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 손해 보기 싫어서 피해 입으면 반드시 되갚아 줄 것 같은 스타는? 운영자 24/11/18 - -
2773624 생각해보니 18학번 컴공은 와인 아닐까? [2] ㅇㅇ(221.146) 11.14 80 0
2773622 유흥업소에 가고 싶구나 [6] 아스카영원히사랑해갤로그로 이동합니다. 11.14 80 0
2773620 리액트에서 보통 input 관리할 때 하나하나 state만들어서함? 프갤러(119.66) 11.14 51 0
2773619 와 시발 난 천재임 ㅇㅇ(221.146) 11.14 55 1
2773618 한국은 3권분립이 제도적으로도 안 되어있다 발명도둑잡기갤로그로 이동합니다. 11.14 24 0
2773617 진심 컴공 오지마라 ㅇㅇ(124.49) 11.14 143 1
2773616 [수능] '국어 지문'에 나온 사이트 '尹 퇴진 집회 안내'로 발명도둑잡기갤로그로 이동합니다. 11.14 37 0
2773615 대학병원 전산직 개발많이함? ㅇㅇ(182.217) 11.14 48 0
2773614 컴퓨터 구조론이 아니라 폰노이만 구조론 이 맞는거 아님? 프갤러(175.115) 11.14 47 1
2773612 오늘 나온 윤ㅡㅡㅡ하 신곡 3개 들어봤는데.... [13] 수능에서내가얼마나받을수잇을까요하느님부갤로그로 이동합니다. 11.14 45 1
2773611 김장 15포기 해서 발명도둑잡기갤로그로 이동합니다. 11.14 36 1
2773608 [홍보] 안녕 얘들아 내가 앱을 출시했어 [2] Kayroo갤로그로 이동합니다. 11.14 76 0
2773605 소련새끼들 십새끼들이네 정치범 수용소 가두고 도리스아(14.35) 11.14 34 0
2773604 오일 마사지 받던 도중 꼭지 스쳐서 놀라는 냥덩이❤ [1] ♥Sub2냥덩♥갤로그로 이동합니다. 11.14 55 0
2773603 동생 오늘 수능봤는데 뭐라고 하냐 ㅇㅅㅇ?? ㅇㅇ(223.62) 11.14 19 0
2773602 개발 공부 시작해 보려는데 프갤러(121.161) 11.14 46 0
2773600 [MBC아카데미] 인공지능 YOLO 교육과정 수강생 모집 (전액무료) MBC(122.46) 11.14 59 0
2773596 php는 보면 볼수록 아름답더라 이기 슈퍼막코더(126.255) 11.14 53 0
2773595 예전 네이버 [5] 프갤러(175.115) 11.14 90 0
2773594 에혀... 엉덩이팡팡갤로그로 이동합니다. 11.14 33 0
2773591 요즘 중국 OTT 영화시장....근황 발명도둑잡기갤로그로 이동합니다. 11.14 53 0
2773589 남은건 탄핵뿐! [윤설열탄핵국회의원연대 발족식] 발명도둑잡기갤로그로 이동합니다. 11.14 28 0
2773588 김재연 상임대표 시국순회 1일차 [울산] 발명도둑잡기갤로그로 이동합니다. 11.14 17 0
2773586 진보당 당직자들에게 뭐든지 물어봤다 | 진보당 Q&A 발명도둑잡기갤로그로 이동합니다. 11.14 34 0
2773585 당신이 몰랐던 진보당에 대한 이야기 - 여섯 번째 발명도둑잡기갤로그로 이동합니다. 11.14 29 0
2773582 테일러 스위프트는 어떻게 '제국의 설계자'가 됐나 발명도둑잡기갤로그로 이동합니다. 11.14 35 0
2773581 수능 국어 문제지에 공개된 도메인을 대통령 퇴진 촉구용으로 사용한다면?! 손발이시립디다갤로그로 이동합니다. 11.14 45 0
2773578 남극서 9000만년 전 ‘호박’ 사상 첫 발견 발명도둑잡기갤로그로 이동합니다. 11.14 34 0
2773576 내일 휴가라고 메시지를 3번 남겼는데 [4] 아스카영원히사랑해갤로그로 이동합니다. 11.14 85 0
2773574 한국에서 가장 성스러운 대명절 발명도둑잡기갤로그로 이동합니다. 11.14 35 0
2773573 괌 원정출산 산모, 리조트서 숨진 채 발견 발명도둑잡기갤로그로 이동합니다. 11.14 22 0
2773572 부캠 그냥 런할까.. [4] ㅇㅇ(211.234) 11.14 101 0
2773571 vue js 하면 커리어 좆망하냐 프갤러(183.99) 11.14 43 0
2773569 내 폰 HDR 되는폰... 우후!~ 내방 근황 [1] 도리스아(14.35) 11.14 49 0
2773566 금속 녹일 때 정액이 직방 도리스아(14.35) 11.14 39 0
2773565 대기업 si vs 금융권 it 뭐가 더 좋나요? [2] 프갤러(175.124) 11.14 91 0
2773563 웃을 일이 없다 [1] 발명도둑잡기갤로그로 이동합니다. 11.14 39 0
2773561 윈도우는 이걸 언제 고칠련지 [4] 바퀴벌레갤로그로 이동합니다. 11.14 76 0
2773560 The Goonies 'NES' Not Enough(グーニーズREMIX) 발명도둑잡기갤로그로 이동합니다. 11.14 32 0
2773554 ☀나님 시작합니당☀ ♥Sub2냥덩♥갤로그로 이동합니다. 11.14 33 0
2773553 PL얼굴에 똥싸고싶어요 [2] 멍청한유라ㅋ갤로그로 이동합니다. 11.14 55 0
2773552 웹진짜 개 좆같다… ㅇㅇ(118.235) 11.14 58 0
2773551 웃자 멍청한유라ㅋ갤로그로 이동합니다. 11.14 41 0
2773548 오늘 수능날이래요 ㅋㅋ 오늘 해방되는 사람들이 많겠어요 [1] ㅇㅇ(223.62) 11.14 26 0
2773547 PL목졸라죽이고싶네 [4] 멍청한유라ㅋ갤로그로 이동합니다. 11.14 72 0
2773546 씨발 서버 오픈을 시켜야 설치해줄 거 아냐 [3] 아스카영원히사랑해갤로그로 이동합니다. 11.14 63 0
2773544 조직스토킹 하는애들 다 암걸려 즉사해버렸으면 좋겠다 프갤러(118.235) 11.14 36 0
2773542 야 손가락, 손 아픈 거는- [1] 프갤러(121.172) 11.14 45 0
2773541 과거 감성넘치던 윈도우 프로그램들이 그립다 [3] 헬마스터갤로그로 이동합니다. 11.14 74 0
2773540 N 게임 개발 회사 희망퇴직.jpg 프갤러(218.234) 11.14 85 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2