프로젝트 소개

Frent는 엔티티-컴포넌트 구성을 기반으로 게임과 시뮬레이션을 구축하기 위한 C# 라이브러리다. README는 이를 단순한 ECS가 아니라 주로 EC(Entity Component) 프레임워크로 설명한다. 컴포넌트가 동작, 수명 관리, 이벤트를 포함할 수 있어 코드 재사용이 상속 대신 구성에서 비롯되며 보일러플레이트가 최소화된다. 또한 기존 ECS 스타일로 엔티티를 쿼리할 수 있는 선택적 Systems API도 제공한다. 저장 방식은 아키타입과 희소 집합의 하이브리드이며, 프로젝트에 따르면 엔티티는 이러한 저장 전략 사이를 원활하게 이동할 수 있다. README에는 8바이트의 작은 엔티티 구조체, 엔티티당 최대 127개 컴포넌트 지원, 구조체 및 클래스 컴포넌트, deltaTime과 같은 균일 데이터의 자동 전달, 제로 리플렉션을 통한 AOT 호환성, 엔티티 관계(링크), 태그, 이벤트, 명령 버퍼, 멀티스레딩, 자동 구조 변경 관리, 명령 버퍼 없이 언제든 엔티티를 생성하는 기능이 나열되어 있다. 더 빠른 접근을 위해 EntityMarshal과 WorldMarshal이 제공된다. 간단한 예제는 World를 생성하고 Position 및 Velocity 컴포넌트를 가진 엔티티를 스폰한 뒤 world.Update()를 호출하고 업데이트된 Position을 다시 읽는 과정을 보여준다. README는 Frent가 아직 베타이며 완전히 안정적이지 않다고 언급한다. 문서, 대화형 데모, MonoGame, Unity, Godot용 샘플로 연결되는 링크가 있다. 벤치마크 링크도 제공되며, Frent가 대부분의 C# ECS 구현보다 빠르다는 주장이 있다. 이 주장은 프로젝트 자체의 것이며 여기서 독립적으로 검증된 것은 아니다. 기여 지침은 사용자에게 버그를 보고하고, API를 제안하며, 큰 기능을 시작하기 전에 이슈를 열 것을 요청한다.