디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅆㅇㅆ(124.216) 2024.09.27 22:26:10
조회 814 추천 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 - -
2773720 ssd 에 더미 파일 쓰는거 많이 안좋나 프갤러(121.170) 11.14 30 0
2773719 윈도우도 리눅스처럼 cmd창으로 설치는 못함? [3] 프갤러(58.237) 11.14 63 0
2773715 취업할 때 학점 많이 중요함?? [6] 프갤러(1.228) 11.14 132 0
2773713 일본 취업 유학 워홀 여행 오픈톡 ㅇㅇ(106.146) 11.14 19 0
2773712 CODE LLM 이라는 것의 Q&A 원리는 이렇게 되야함.. [2] +abcd3421갤로그로 이동합니다. 11.14 48 0
2773710 fast inverse square root 이해해도 코딩테스트 통과 [1] ㅇㅇ(117.111) 11.14 43 0
2773709 주석은 Load WHAT? 의 ANSWER.. 로 작성해야 맞는 듯. +abcd3421갤로그로 이동합니다. 11.14 35 0
2773708 지방 컴공 신입 개발자 3400 ㄱㅊ음? [1] 프갤러(183.107) 11.14 123 2
2773706 복잡한 프로그램은 Patch Cycle 을 확인해가면서 보아야 하는 듯. +abcd3421갤로그로 이동합니다. 11.14 33 0
2773701 Protesters take over Columbia University 발명도둑잡기갤로그로 이동합니다. 11.14 30 0
2773700 French unions strike over Macron's pensi 발명도둑잡기갤로그로 이동합니다. 11.14 29 0
2773697 '노란 조끼 시위'서 경찰 폭행한 남성…알고보니 '복싱 챔피언' 발명도둑잡기갤로그로 이동합니다. 11.14 33 0
2773695 Qt, WPF는 내장 폰트 적용하려면 원래 이렇게 힘듬? [5] ㅇㅇ갤로그로 이동합니다. 11.14 79 0
2773693 STELLAR - STUDY 발명도둑잡기갤로그로 이동합니다. 11.14 19 0
2773692 한국 큰 회사/미국 빅테크 취업 타겟으로 조언 및 이력서 첨삭 도와드림 [2] 미쿠쟝마지스키갤로그로 이동합니다. 11.14 65 0
2773691 소녀시대 태티서-Library 발명도둑잡기갤로그로 이동합니다. 11.14 30 0
2773690 신입들 진짜 취업 개빡센가보네.. ㅇㅇ(39.7) 11.14 155 0
2773688 러스트 깐다. 메모리 안정성? [2] 프갤러(59.16) 11.14 55 0
2773687 윤수일 리메이크 곡 아파트, 아름다워 발명도둑잡기갤로그로 이동합니다. 11.14 55 0
2773686 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 11.14 34 0
2773685 개발자 특징 프갤러(183.99) 11.14 54 0
2773682 코테는 근력트레이닝이라 할 수 있다 ㅇㅇ(210.178) 11.14 33 0
2773680 외국인은 고딩과 코딩 발음 구분을 못한다 발명도둑잡기갤로그로 이동합니다. 11.14 30 0
2773678 동덕여대만봐도 여자들은 평등을 원하는게아님 ㅇㅇ(106.102) 11.14 34 0
2773677 오늘의 음반 기획 실마리: 수능 필적 확인 시 노래 앨범 발명도둑잡기갤로그로 이동합니다. 11.14 29 0
2773675 코딩테스트로 염병떠는새끼 [2] 프갤러(125.177) 11.14 111 5
2773674 필적 확인은…'저 넓은 세상에서 큰 꿈을 펼쳐라' 발명도둑잡기갤로그로 이동합니다. 11.14 28 0
2773667 프로그래밍 갤: 존재 자체가 의미가 없음 [3] 프갤러(125.177) 11.14 64 2
2773666 최저임금도 안주기로 유명한 대구 근황 발명도둑잡기갤로그로 이동합니다. 11.14 35 0
2773664 코딩테스트 << 솔직히 이거 뭔 의미가 있음? [3] ㅇㅇ(124.49) 11.14 112 0
2773662 아마존 개발자 대량 해고 후 AI 도입 ㅇㅇ(211.236) 11.14 76 1
2773659 공무원은 도대체 헬이냐 헤븐이냐 [9] 아스카영원히사랑해갤로그로 이동합니다. 11.14 98 0
2773654 크리스마스 디저트 슈톨렌 왔다 ㅇㅅㅇㅋㅋ ㅇㅇ(123.213) 11.14 36 0
2773640 오늘 회사에서 하루 종일 개인플젝함 프갤러(211.234) 11.14 51 0
2773639 인지과학조져라 손발이시립디다갤로그로 이동합니다. 11.14 33 0
2773637 황영조 네 이노옴 !!!!!!!!! ♥Sub2냥덩♥갤로그로 이동합니다. 11.14 34 0
2773636 개발자 라기 보다는 회사원 같은데 ㅇㅅㅇ [1] 포항의봄갤로그로 이동합니다. 11.14 65 0
2773635 외국계 나스닥 상장사 취업했다 [7] ㅇㅇ(59.12) 11.14 81 0
2773630 아까 전. 그 사이 밥먹고 자위하고, 미치겠다잉... 도리스아(14.35) 11.14 43 0
2773629 컴공은 걍 주저리주저리 떠드는 것부터가 무근본이라는 증거임 ㅋㅋ [1] ㅇㅇ(124.49) 11.14 61 1
2773624 생각해보니 18학번 컴공은 와인 아닐까? [2] ㅇㅇ(221.146) 11.14 74 0
2773622 유흥업소에 가고 싶구나 [6] 아스카영원히사랑해갤로그로 이동합니다. 11.14 77 0
2773620 리액트에서 보통 input 관리할 때 하나하나 state만들어서함? 프갤러(119.66) 11.14 47 0
2773619 와 시발 난 천재임 ㅇㅇ(221.146) 11.14 53 1
2773618 한국은 3권분립이 제도적으로도 안 되어있다 발명도둑잡기갤로그로 이동합니다. 11.14 23 0
2773617 진심 컴공 오지마라 ㅇㅇ(124.49) 11.14 134 1
2773616 [수능] '국어 지문'에 나온 사이트 '尹 퇴진 집회 안내'로 발명도둑잡기갤로그로 이동합니다. 11.14 34 0
2773615 대학병원 전산직 개발많이함? ㅇㅇ(182.217) 11.14 43 0
2773614 컴퓨터 구조론이 아니라 폰노이만 구조론 이 맞는거 아님? 프갤러(175.115) 11.14 43 1
2773612 오늘 나온 윤ㅡㅡㅡ하 신곡 3개 들어봤는데.... [13] 수능에서내가얼마나받을수잇을까요하느님부갤로그로 이동합니다. 11.14 44 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2