프로젝트 소개
Irreden Engine은 독특한 시각 스타일을 가진 게임을 만들기 위한 아이소메트릭 "픽셀화 가능" 3D 콘텐츠 및 게임 엔진입니다. 이 엔진은 C++23으로 구축되었으며, Windows에서는 OpenGL을, macOS에서는 Metal을 백엔드로 지원합니다. 컴포넌트가 정적 라이브러리로 컴파일되는 모듈식 아키텍처를 사용하여 유연한 통합과 개발을 가능하게 합니다.
주요 모듈은 다음과 같습니다:
- **IRRender**: 컴퓨트 셰이더를 통해 메쉬 없는 3D-to-2D 렌더링을 처리합니다. 3D 복셀을 2D 아이소메트릭 캔버스로 변환하고, 부드러운 카메라 움직임을 위한 보간된 픽셀 스크롤링을 지원하며, 여러 복셀 캔버스를 동시에 처리할 수 있습니다.
- **IRECS**: 캐시 효율적인 아키타입 기반 엔티티-컴포넌트-시스템(ECS) 프레임워크로, 람다를 사용한 시스템 정의와 일괄 엔티티 생성을 지원합니다.
- **IRAudio**: 오디오 장치 탐색 및 연결, 컨트롤러용 MIDI 입력, 실시간 오디오 스트림(개발 중)을 지원합니다.
- **IRInput**: GLFW를 통한 창 생성과 게임 루프에 동기화된 키보드, 마우스, 게임패드 입력을 관리합니다.
- **IRScript**: 런타임 구성 및 잠재적인 미래의 완전한 Lua 기반 구현을 위한 Lua C API 래퍼를 제공합니다.
- **IRVideo**: FFmpeg을 사용하여 MP4/H264 프레임버퍼 캡처를 가능하게 하며, 런타임 녹화 전환을 지원합니다.
- **IRMath**: 아이소메트릭 계산, GLM 래퍼, 애니메이션을 위한 이징 함수를 포함합니다.
- **IRTime**: 일관된 업데이트를 위한 고정 FPS 이벤트와 렌더링을 위한 무제한 FPS 이벤트를 제공합니다.
이 엔진은 `creations/game/` 디렉토리 구조를 통해 개인 게임 프로젝트를 통합할 수 있으며, CMake 타겟을 자동으로 발견합니다. 의존성에는 RtAudio, RtMidi, GLFW, GLM, EasyProfiler, SpdLogger, Fmt, Glad, StbImage, MeshOptimizer, Assimp, enkiTS, Lua, FFmpeg이 포함됩니다. 개발 도구로는 구성, 빌드, 테스트, 포맷팅, 린팅을 위한 CMake 프리셋이 제공됩니다. 이 프로젝트는 엔진 설계에 대한 피드백과 이슈 보고, 프리팹 수정, 오픈소스 프로젝트 출판을 통한 기여를 장려합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.