프로젝트 소개
EnTT(Entity-Component-System)는 주로 게임 프로그래밍을 위해 설계되었지만 더 넓은 소프트웨어 개발에도 적용 가능한 헤더 전용 C++20 라이브러리입니다. '사용한 만큼 지불' 정책을 가진 고성능 ECS 구현을 제공하며, 제약 없는 컴포넌트 유형, 선택적 포인터 안정성, 사용자 정의 가능한 저장소 훅을 지원합니다. 이 라이브러리는 완벽한 구조적 배열(SoA)부터 임의 접근에 이르기까지 다양한 반복 패턴을 뷰와 그룹을 통해 제공합니다.
핵심 ECS 외에도 EnTT에는 내장 RTTI 시스템, constexpr 리소스 명명, 최소 구성 시스템, 최적 스케줄링을 위한 실행 그래프 빌더, 서비스 로케이터, 비간섭 매크로 없는 런타임 리플렉션 시스템, 정적 다형성 유틸리티, 사용자 정의 컨테이너(스파스 집합 기반 해시 맵 포함), 협력 스케줄러, 리소스 관리(캐시, 로더, 핸들), 델리게이트, 신호 처리기, 이벤트 디스패처, CRTP 기반 이벤트 이미터가 포함됩니다.
EnTT는 Minecraft(Mojang), ArcGIS Runtime SDK(Esri), Ragdoll Dynamics를 포함한 주요 프로젝트에서 프로덕션 환경에서 사용됩니다. CMake, Conan, vcpkg, Homebrew, build2, Bazel(bzlmod)을 통해 통합됩니다. 이 라이브러리는 C++20 호환 컴파일러를 요구하며 Doxygen을 통한 포괄적인 문서와 Natvis 디버깅 지원을 제공합니다. 코드는 MIT, 문서는 CC BY 4.0, 로고는 CC BY-SA 4.0 라이선스로 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.