현재 C# .net XNA 게임 엔진을 개발 중입니다.동적 속성을 가진 게임 엔진 디자인
나는 엔진의 디자인에 대해 궁금해했다. 우선 내 엔진이 내 자신의 스크립팅 언어를 통합 할 수있게하고 싶습니다. 이렇게하려면 게임의 모든 개체의 모든 속성이나 변경하고 싶은 모든 속성에 액세스 할 수 있어야한다고 생각했습니다.
내가 처음 시작한 일은 문자열로 액세스 할 수있게하려는 것입니다. 그렇게하기 위해 모든 "엔터티"를 만들었습니다. 화면에 그려지는 모든 항목에는 그 안에 모든 속성의 사전이 있습니다. 속성 추가는 Entity 클래스에서 수동으로 수행되었습니다. 나는 많은 사전을 가지고 있지만 GC에 속도가 느릴 수있는 것들이 많지 않을 때부터 읽었다. 나는 지금 내 게임에서 무슨 일이 일어나고 있는지를 믿는다. fps를 잃기 시작하기 전에 기본 속성 (예 : 색상, 위치, 질감)이있는 약 1000 개의 엔티티 만 가져올 수 있습니다.
사전보다 속도가 느리기 때문에 내가하고있는 일이나 리플렉션을 사용하는 것 외에 다른 방법으로 동적으로 객체의 속성에 액세스 할 수 있는지 궁금합니다. 아니면 전체 디자인을 다시 생각해야합니까?
개체를 스크립팅 언어에 노출하면 무엇을 의미합니까? –
대부분의 임베디드 스크립팅 언어를 사용하면 특정 객체를 스크립트에 표시 할 수 있습니다. 기본적으로 "이 C# 개체를 이름이 X 인 스크립트에서 사용할 수있게 만듭니다."라고 말합니다. 그런 다음 C#에서와 같이 스크립트에서 X를 사용할 수 있고 X의 메서드에 액세스 할 수 있습니다. –