Flex Engine

Flex Engine은 개발자 Andrew Weeks가 2017년 2월부터 제작한 개인용 C++ 기반 실시간 3차원 게임 엔진이다. Vulkan 렌더러와 장면 편집기, 스크립트 실행 환경을 만들면서 그래픽스·시뮬레이션 기술을 연구하기 위한 프로젝트로 시작됐다. 개발자는 이 엔진이 상업적...

분류게임 엔진, 개인용 실시간 3D 연구 엔진
개발자Andrew Weeks
개발 기간2017~2021년
구현 언어C++
그래픽스 APIVulkan
렌더링PBR, IBL, SSAO, CSM, TAA
GPU 활용컴퓨트 기반 파티클 시뮬레이션
지형·수면Marching Cubes, Gerstner 파동
게임 로직자체 스크립트 컴파일러와 가상 머신
편집기장면 편집, 속성 검사·변환 도구
개발 도구셰이더 재컴파일, 리소스 핫 리로드, 프로파일러
플랫폼Windows, Linux
외부 라이브러리Bullet, GLFW, GLM, ImGui, OpenAL 등
공개 라이선스MIT License
소스 코드ajweeks/FlexEngine
개발자 소개Flex Engine 프로젝트

Flex Engine은 개발자 Andrew Weeks가 2017년 2월부터 제작한 개인용 C++ 기반 실시간 3차원 게임 엔진이다. Vulkan 렌더러와 장면 편집기, 스크립트 실행 환경을 만들면서 그래픽스·시뮬레이션 기술을 연구하기 위한 프로젝트로 시작됐다. 개발자는 이 엔진이 상업적으로 배포하기 위한 범용 게임 제작 제품이라기보다 개인 학습과 실험을 위한 기술 기반이라고 밝히고 있다.[1]

엔진의 중심은 Vulkan 그래픽스 API를 사용하는 렌더링 백엔드다. 물리 기반 셰이딩(PBR)과 이미지 기반 조명(IBL), 화면 공간 주변광 차폐(SSAO), Cascaded Shadow Mapping과 시간적 안티앨리어싱(TAA)을 구현했다. 다양한 후처리와 그림자, G-buffer 시각화 자료를 제공하므로 렌더링 알고리즘을 단계적으로 실험하고 디버깅하기에 적합하다. 이는 완제품 엔진보다 구체적인 그래픽 기술의 구현을 강조하는 설계 방향이다.

GPU 연산을 실시간 시뮬레이션에 사용하는 기능도 포함한다. Marching Cubes 기반 절차적 지형과 Gerstner 파동을 이용하는 수면 표시, 대량의 파티클을 컴퓨트 셰이더에서 갱신하는 구현이 공개돼 있다. 엔진은 리소스 변경을 모니터링하여 텍스처와 메시, 셰이더·설정 파일 등을 다시 읽고, 변경된 셰이더를 조건부로 재컴파일하는 작업 흐름을 지원한다.[2]

자체 제작 도구에는 장면 직렬화와 객체 속성 편집, 변환 기즈모, 키 바인딩 설정 등이 포함된다. 게임 스크립트를 위한 컴파일러·에디터와 가상 머신도 구현되어 엔진 코어의 C++ 시스템과 게임 로직의 작성 단위를 구분한다. 기본적인 CPU 프로파일링 캡처와 검사 도구를 활용해 프레임의 작업량을 살펴볼 수 있으며 렌더링과 런타임을 함께 개선하도록 구성되어 있다.

Flex Engine은 GLFW, GLM, ImGui, Bullet, FreeType, OpenAL 및 Vulkan 관련 로더를 비롯한 기존 라이브러리를 사용한다. 이러한 의존성을 조합하여 창과 입력, 3차원 수학, 충돌·강체 물리, 글꼴과 오디오 및 편집기 UI를 구현한다. Windows와 Linux에서 동작하도록 작성됐지만 특정 시점의 라이브러리 버전과 Vulkan 도구 체인이 필요할 수 있다.

공개 소스의 라이선스는 MIT License이며 구현과 빌드 지침은 GitHub에 보관돼 있다. 여기서 Flex Engine은 GPU 입자·유체 기술인 NVIDIA Flex와 별개이며 명칭 유사성만으로 서로의 코드 계보를 연결할 수 없다. 2017~2021년 개인 연구 기간의 구현이 중심이라는 점을 명시하면 범용 상용 제품으로 잘못 인식하지 않고 렌더링 기술 학습용 코드베이스로 분류할 수 있다.[3]

역사

기술 계보와 설계 목표

엔진 아키텍처

실행 루프와 게임 객체

프로그래밍 및 스크립팅

렌더링과 그래픽스

물리·입력·오디오

제작 도구와 자산 관리

지원 플랫폼과 배포

라이선스와 소스 코드

활용 사례와 주요 게임

기술적 영향

관련 문서

  1. Andrew Weeks: Flex Engine ↩
  2. Flex Engine 기능 설명 ↩
  3. Flex Engine 라이선스와 README ↩