Godot에서 원하는 C++ 라이브러리 사용하기

4 hours ago 1

GDExtension과 godot-cpp를 사용하면 엔진을 재컴파일하지 않고 C++ 라이브러리를 Godot 클래스처럼 노출해 에디터와 GDScript에서 사용할 수 있음 실제 통합의 어려움은 C++ 코드보다 빌드 관리에 있음. Godot API 버전을 맞추고, 배포할 플랫폼마다 바인딩과 외부 라이브러리를 일관된 설정으로 빌드해야 함 godot-cpp 10.0은 Godot 4.3 이상을 지원하며, api_version으로 대상 API를 선택함. 이전 버전용으로 빌드한 확장은 이후 버전에서도 동작하지만 그 반대는 지원하지 않음 Conan은 godot-cpp와 외부 라이브러리를 패키지 의존성으로 관리하고, 같은 구성의 빌드 결과를 프로젝트 간에 재사용함 예제는 flecs로 입자 10만 개를 시뮬레이션하고 MultiMesh로 한 번의 드로 호출에 렌더링함. C++로 구현한 Swarm 노드의 속성은 Godot Inspector와 GDScript에 노출됨 Godot의 노드와 씬, C++ 확장 Godot은 MIT 라이선스의 무료 오픈소스 2D/3D 범용 게임 엔진으로, 다운로드하고 몇 분 안에 사용을 시작할 수 있을 만큼 작음 프로젝트는 노드와 씬으로 구성됨 노드는 Sprite2D, Camera3D, AudioStreamPlayer, Timer 같은 타입, Inspector에서 편집할 속성, 게임 루프에서 호출할 _ready()와 _process() 같은 콜백을 가짐 씬은 노드 트리를 .tscn 파일로 저장한 것으로, 캐릭터나 메뉴, 전체 레벨이 될 수 있으며 다른 씬 안에 인스턴스로 배치할 수 있음 동작은 보통 노드에 GDScript를 붙여 구현함. 엔진용으로 설계한 Python 유사 언어이며, 컴파일 없이 변경 사항을 바로 확인할 수 있어 게임플레이 로직에 적합함 시뮬레이션, 데이터베이스, 네트워크 프로토콜, 머신러닝 런타임처럼 기존 C/C++ 라이브러리가 필요할 때는 네이티브 확장을 사용할 수 있음 GDScript가 네이티브 코드를 직접 호출할 수는 없지만, Godot이 확장을 로드하고 이를 일반 엔진 클래스로 노출할 수 있음 확장 클래스는 내장 노드와 함께 에디터에 나타나고, 속성을 Inspector에서 편집하거나 GDScript에서 사용할 수 있음 엔진 모듈과 GDExtension의 차이 엔진 모듈은 엔진 내부에 완전히 접근할 수 있지만, 엔진 자체에 컴파일해 넣어야 함 플랫폼마다 에디터와 내보내기 템플릿을 포함한...

Read Entire Article