프로젝트 소개

VOID Engine은 .NET용으로 구축된 가볍고 모듈식인 2D 게임 프레임워크입니다. 거대한 올인원 엔진이 되려 하지 않고 필수 게임 개발 시스템을 제공하며, 대신 개발자에게 견고한 기본값을 제공하되 그 기본값이 모든 게임에 맞는다고 가정하지 않는 프레임워크 수준의 아키텍처에 중점을 둡니다. ## 시스템 및 기능 - **렌더링**: Silk.NET.OpenGL을 통한 배치 스프라이트 및 프리미티브 렌더링, 텍스처 아틀라싱, 셰이더, 렌더 타깃, 후처리. - **렌더러 API**: Vulkan, Direct3D, Metal과 같은 사용자 지정 백엔드를 허용하는 렌더러 중립적 공용 계약. - **플랫폼**: SDL3 윈도잉, 디스플레이, 전체 화면 모드, 키보드·마우스·게임패드 입력 처리. - **에셋**: 마운트 기반 가상 파일 시스템, 사용자 지정 에셋 유형, 팩 로딩, LRU 축출. - **오디오**: Silk.NET.OpenAL을 통한 OpenAL 재생, 사운드 풀링, 우선순위 기반 음성 스틸링, 카테고리 볼륨. - **저장**: 매니페스트 검증을 포함한 AES-GCM 암호화 저장. - **경로 탐색**: A*, Dijkstra, BFS, 플로 필드. - **코루틴**: 트윈, 시퀀싱, 지연, 대기, 이징 헬퍼. - **로깅**: 콘솔 및 파일 싱크를 사용한 비동기 로깅. - **수학**: 벡터, 행렬, 사각형, 색상, 난수 헬퍼. - **도구**: 프로젝트 템플릿 및 암호화된 에셋 패킹 유틸리티. - **LDtk**: 통합 레벨 및 에셋 지원. ## 확장성 VOID는 개발자가 사용자 지정 구현을 제공하거나 내장 모듈을 완전히 교체할 수 있는 간단한 확장 지점을 제공합니다. 여기에는 사용자 지정 에셋 유형(`IAsset`), 대체 에셋 소스(`IMount`), 텍스처 패킹 알고리즘(`IAtlasPacker`), 로그 대상(`ILogSink`), 그래픽 백엔드(`IRendererBackend`, `IGraphicsDevice`)가 포함됩니다. ## 에셋 패커 이 프레임워크는 AES-GCM, 적응형 압축, 파일별 무결성 검사를 사용하여 에셋을 인증되고 암호화된 아카이브로 패키징하기 위한 API와 명령줄 인터페이스 도구(`Void.Packer.CLI`)를 포함합니다. ## 지원 플랫폼 - Windows - macOS - Linux .NET 10이 필요합니다.