프로젝트 소개
Permafrost Engine은 C로 작성된 OpenGL 3.3 실시간 전략(RTS) 게임 엔진입니다. 고전 RTS 게임을 모방하면서 현대적인 아이디어를 접목하도록 설계되었습니다. 이 엔진은 Steam에서 무료 데모를 제공하는 대표 RTS 게임 EVERGLORY의 기반이며, 데모에는 학습과 수정을 위한 모든 게임플레이 스크립트가 포함되어 있습니다.
주요 기능은 다음과 같습니다:
- OpenGL 3.3 프로그래머블 파이프라인 및 사용 가능한 경우 최신 확장 기능
- 도구 상호 운용성을 위한 사용자 정의 텍스트 모델 형식과 빠른 런타임 로딩을 위한 베이크된 바이너리 형식
- GPU 스키닝을 사용한 스켈레탈 애니메이션, 다수의 애니메이션 엔티티를 효율적으로 렌더링하기 위해 애니메이션 포즈 데이터를 텍스처로 배칭
- 재질이 있는 Phong 반사 모델, 방향광 섀도 매핑, 범프/노멀/시차 매핑
- 지형 텍스처 스플래팅, 스카이박스, 거리 기반 메시 LOD 렌더링, 동적 배치를 사용한 배칭 렌더링, 링버퍼 기반 GPU 스트리밍
- RTS 및 FPS 카메라, 사용자 정의 파일 형식을 사용한 타일 기반 맵 렌더링
- 반사, 굴절, 부드러운 가장자리 효과를 갖춘 물 렌더링
- Image Quilting을 사용한 프로그래밍 방식 텍스처 합성, Wang Tiling을 사용한 비주기적 타일링
- Python 2.7에 노출된 엔진 내부, 내장 대화형 Python 콘솔, 이벤트 시스템, Nuklear 기반 UI 프레임워크
- 효율적인 레이캐스팅, 맵/장면 편집기, 일시정지/재개 시스템, 거대한 맵의 빠른 렌더링
- 맵 내비게이션 그래프/그리드 생성, 보이드 스티어링/군집, 계층적 흐름장 경로 탐색, 동적 장애물 처리
- Hybrid Reciprocal Velocity Obstacles 및 ClearPath 알고리즘을 사용한 동적 충돌 회피, 대형 기반 유닛 이동, Hungarian Algorithm을 사용한 최적 대형 재편성
- 내비게이션 레이어를 사용한 다양한 유닛 유형/크기에 대한 경로 탐색, 지상/수상/공중 유닛, 병렬화된 이동 및 경로 탐색 계산
- 컴퓨트 셰이더를 사용한 GPU 기반 군중 시뮬레이션, SIMD 가속 비트맵 그리드 공간 인덱싱, 동적 공간 영역에 대한 엔티티 소속 실시간 추적
- 위치 효과 및 다중 전역 효과 채널을 갖춘 오디오 시스템
- RTS 기능: 미니맵, 유닛 선택, 전투, 전장의 안개, 기지 건설, 일꾼/생산 자동화, 자원 수집/운송, 주둔/수송 메커니즘, 발사체 물리 시뮬레이션이 있는 원거리 전투
- 다양한 해상도와 화면 비율 지원, 구성 가능한 그래픽 설정
- 전체 Python 인터프리터 상태의 직렬화/역직렬화, Python으로 정의된 상태를 포함한 모든 엔진 세션 저장/복원
- 2단계 파이프라인의 멀티스레드 시뮬레이션 및 렌더링, 고급 디버그 시각화 및 프로파일링 계측, 경량 메모리 회계
- 사용자 공간에서 스케줄링되는 경량 작업을 위한 파이버 시스템, 협력적 멀티태스킹을 위한 파이버 기반 Python 작업, 페이지 수준 Copy-on-Write 의미론을 사용한 제로 카피 포킹
- 크로스 플랫폼(Linux 및 Windows), 오류 발생 시 자동 미니덤프 및 로그 캡처를 위한 Windows 런처
의존성으로는 SDL2, GLEW, Python 2.7, OpenAL Soft, mi-malloc, stb_image, khash, nuklear가 있습니다. 모두 소스에서 빌드하여 게임 바이너리와 함께 배포할 수 있습니다.
빌드 지침은 Linux 및 Windows(mingw-w64 또는 MSYS2 사용, Visual Studio 2022 솔루션도 제공)용으로 제공됩니다. 엔진은 특별 링킹 예외가 있는 GPLv3에 따라 라이선스가 부여되며, 대안 라이선스는 사례별로 부여될 수 있습니다.
개발은 Python 인터프리터 저장, 그룹 경로 탐색, 전장의 안개, 성능 최적화, 파이버, 기지 건설 등을 다루는 일련의 YouTube 개발 로그를 통해 문서화됩니다. 이 프로젝트에는 논의를 위한 활발한 Discord 커뮤니티가 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.