디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅆㅇㅆ(124.216) 2024.09.27 22:26:10
조회 811 추천 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/11 - -
공지 프로그래밍 갤러리 이용 안내 [79] 운영자 20.09.28 39329 62
2774194 칸쵸1200원인데 계산 1300원되어서 멤버쉽할인되었는더... 넥도리아(223.38) 03:24 11 0
2774189 대기업 코테 안정적 패스할려면 플레달아야함? [3] ㅇㅇ(121.128) 03:07 26 0
2774188 님들 CI/CD 질문 드립니다 노예갤로그로 이동합니다. 03:07 13 0
2774183 타이핑할 때 영어 섞어 쓰는게 편한게 보통이지? [1] 프갤러(110.10) 02:28 23 0
2774180 대충살자 애두라 ㅇㅅㅇ... [3] 초코냥갤로그로 이동합니다. 02:21 32 0
2774178 맥북충인데 윈도우환경이 필요해서, 6세대 i3 씨피유 써도됨? 프갤러(153.246) 02:08 14 0
2774167 국가 보안법에 다카기 마사오 처빨면 사형시키는걸로 프갤러(110.8) 01:10 14 0
2774154 인성검사도 탈락하면 연락안옴? 프갤러(125.132) 00:37 15 0
2774145 동덕여대 근황 ㅇㅇ(104.28) 00:10 50 0
2774142 잔다 발명도둑잡기갤로그로 이동합니다. 00:02 18 0
2774141 정치사회 갤러리에 CIA나 미군쪽 심리공작원이 있는 것 같다 발명도둑잡기갤로그로 이동합니다. 11.15 14 1
2774137 한국 <<< rest ai 쓰면 보안심사 통과 못함 프갤러(61.75) 11.15 31 1
2774136 컴공을 공대로 바라보니까 4년제가 부캠한테 털리는게 이해가 안가는거지 [2] ㅇㅇ(117.111) 11.15 65 0
2774132 아래 40대 누님 글 보니 드는 생각 발명도둑잡기갤로그로 이동합니다. 11.15 36 0
2774131 세상이 널 억까함? 프갤러(112.161) 11.15 23 0
2774130 4년차 연봉 3700 자살 ㄱ? [2] 프갤러(14.37) 11.15 78 1
2774128 국가보안법이 폐지되어야 하는 7가지 이유 발명도둑잡기갤로그로 이동합니다. 11.15 10 0
2774126 테스트 코드에 주석이 스쳐서 놀라는 프론트녀 창업게이(106.101) 11.15 22 0
2774125 오랜만에 전 회사 여동기 봤는데 플러팅이 당황스러움 [5] 창업게이(106.101) 11.15 58 0
2774124 면접볼때 지디 power 틀어놓고 들어가면 씹간지? 프갤러(183.99) 11.15 17 0
2774123 라즈베리파이 부팅 [2] 재현갤로그로 이동합니다. 11.15 39 0
2774122 음기 충전 발명도둑잡기갤로그로 이동합니다. 11.15 23 1
2774121 로그보던 중 "Panic mode" 스쳐서 놀라는 백엔드녀 창업게이(106.101) 11.15 28 0
2774120 디시글 삭제해주는 기능도 만들 수 있음? 프갤러(223.38) 11.15 16 0
2774119 남의 모니터를 훔쳐볼 수 있는 충격적인 해킹 방법 [3] 발명도둑잡기갤로그로 이동합니다. 11.15 34 0
2774118 일본 취업 유학 워홀 여행 오픈톡 ㅇㅇ(106.146) 11.15 11 0
2774116 방학하면 매달 300만원씩 모을거야 [8] 재현갤로그로 이동합니다. 11.15 41 0
2774115 확실히 달리기 하니까 체력 좋아지고 [1] ♥냥덩콜라♥갤로그로 이동합니다. 11.15 22 0
2774113 개발자가 수명단축 직업인 이유 [2] 피자2021(58.235) 11.15 57 0
2774112 개발자가 전화응대 업무도 하는경우있냐 [4] ㅇㅇ(118.235) 11.15 46 1
2774111 70년대생 좌빨 영포티 = 병신 ♥냥덩콜라♥갤로그로 이동합니다. 11.15 27 1
2774110 굿바이 리죄명 ♥냥덩콜라♥갤로그로 이동합니다. 11.15 20 1
2774109 위안부 할머니들 돈 횡령한 종북좌파 윤미향 당선무효 확정 ♥냥덩콜라♥갤로그로 이동합니다. 11.15 13 1
2774108 586 다 죽여버리고 싶다 프갤러(121.54) 11.15 15 0
2774107 으아아 몸살 ㅠㅠ [1] 재현갤로그로 이동합니다. 11.15 15 0
2774105 한국 568개발자 = 정신병자 프갤러(121.54) 11.15 25 0
2774103 씨발련들 상사가 억까 존나 하네 미친련 프갤러(121.54) 11.15 15 0
2774098 충돌 유도 부정하는 경찰 발명도둑잡기갤로그로 이동합니다. 11.15 12 0
2774096 아 드디어 시작하는 군- 프갤러(121.172) 11.15 33 1
2774095 윤석열 퇴진투표 대학생 서포터스 상시 모집 발명도둑잡기갤로그로 이동합니다. 11.15 9 0
2774094 오늘 저녁 [1] 발명도둑잡기갤로그로 이동합니다. 11.15 13 0
2774091 김재연 상임대표8 정의기억연대 후원의 밤 참가 발명도둑잡기갤로그로 이동합니다. 11.15 8 0
2774090 ai빨 잘 받는 코드 구조는 따로 있더라 [11] 춘절갤로그로 이동합니다. 11.15 79 0
2774089 선생님들 질문 하나만 드립니다 [1] 프갤러(218.157) 11.15 21 0
2774087 어이없던 '강서 김태우 공천'이 모두 대통령의 고집 발명도둑잡기갤로그로 이동합니다. 11.15 12 0
2774086 내일 뱅쇼재료 사다가 뱅쇼 만들겁니다 ㅇㅅㅇ ㅇㅇ(123.213) 11.15 18 0
2774085 진보당 김재연 상임대표, 대구 경북대 학생들과 '애프터윤석열' 진보 발명도둑잡기갤로그로 이동합니다. 11.15 9 0
2774084 김재연 상임대표 시국순회 발명도둑잡기갤로그로 이동합니다. 11.15 9 0
2774082 한동훈 대표, '김건희 여사 돈봉투' 부스럭 소리는 아직입니까? 발명도둑잡기갤로그로 이동합니다. 11.15 11 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2