BGI/Ethornell
BGI/Ethornell은 비주얼 노벨 게임을 실행하기 위한 Ethornell / Buriko General Interpreter 계열의 게임 엔진·가상 머신이다. 일본의 PC 비주얼 노벨 제작에서 사용된 상용 인터프리터 기술로, 그림과 음향·문자 출력 및 선택지에 따라 장면을 진행하는...
| 정식 명칭 | Ethornell / Buriko General Interpreter |
|---|---|
| 약칭 | BGI |
| 통용 이름 | Ethornell |
| 분류 | 비주얼 노벨 게임 엔진, 스크립트 가상 머신 |
| 주요 사용 분야 | 일본 PC 비주얼 노벨 |
| 원 개발 주체 | 일본 상용 게임 개발사·도구 계열 |
| 작성 언어 | 원본 엔진의 전체 구현 언어 미확인 |
| 게임 스크립트 | Buriko Program, 시나리오 스크립트 |
| 실행 구조 | 스택 기반 가상 머신과 스크립트 인터프리터 |
| 바이트코드 | 기본 명령어 및 확장 명령어 |
| 시나리오 형식 | 컴파일된 시나리오·._bp 계열 |
| 멀티미디어 기능 | 2D 그래픽스·화면 효과, 음향과 파일 입출력 |
| 주요 플랫폼 | Windows 기반 원본 작품 |
| 라이선스 | 원본 독점 상용 소프트웨어 |
| 재구현 프로젝트 | OpenBGI |
| 재구현 소스 | Cytlan/openbgi |
BGI/Ethornell은 비주얼 노벨 게임을 실행하기 위한 Ethornell / Buriko General Interpreter 계열의 게임 엔진·가상 머신이다. 일본의 PC 비주얼 노벨 제작에서 사용된 상용 인터프리터 기술로, 그림과 음향·문자 출력 및 선택지에 따라 장면을 진행하는 스크립트 실행 구조를 제공한다. 일반적인 3D 게임 엔진보다 시나리오와 화면 연출의 데이터 처리가 중심에 있다.[1]
BGI의 중요한 부분은 스택 기반 가상 머신이다. 실행 코드는 기본 바이트코드 명령과 길이가 다른 확장 명령을 읽어 변수 처리·흐름 제어 및 외부 기능 호출을 수행한다. 그래픽스와 음향·파일 입출력 같은 시스템 기능은 가상 머신 명령을 통해 실행할 수 있다. 이 방식은 시나리오 로직을 실행 파일과 분리한다.
OpenBGI 분석 자료에 따르면 낮은 수준의 가상 머신이 Buriko Program을 실행하고, 그 위에서 시나리오 스크립트의 실행 절차가 구현되는 계층 구조를 가진다. 따라서 단순히 시나리오 텍스트를 한 줄씩 직접 읽는 엔진이 아니라 가상 머신 안에서 다시 시나리오용 인터프리터를 수행하는 구조로 이해할 수 있다.[2]
게임 콘텐츠는 캐릭터 이미지·배경과 연출 효과, 대화·선택지 및 음향 자료를 포함한다. 가상 머신은 스크립트의 명령과 사용자 입력 상태에 따라 화면을 전환하고 새로운 대사 또는 분기된 이벤트를 실행한다. 게임별 콘텐츠의 구체적인 보관 형식은 엔진의 변형 및 배포판에 따라 다를 수 있다.
OpenBGI는 이러한 독점 엔진의 실행 방식을 독립적인 공개 코드로 재구현하려는 프로젝트다. 재구현의 목표는 원본 바이트코드와 시나리오 동작의 호환성이며, 원래 상용 BGI 코드가 자유 소프트웨어로 공개됐다는 의미는 아니다. 원본 런타임 구현 언어나 특정 라이선스가 검증되지 않은 부분은 추정하지 않고 프로젝트의 공개 분석을 기준으로 기술한다.