Spear Engine
Spear Engine은 Samuli Raivio가 《Dealer's Dungeon》을 개발하기 위해 만든 게임 전용 실행 코드와 도구 집합이다. 공식 저장소는 범용 상용 엔진으로 완성된 제품이 아니라 특정 게임에 강하게 결합된 코드베이스라고 설명한다. C 기반 하위 라이브러리와 게임...
| 분류 | 게임 엔진, 게임 전용 C·C++ 실행·툴 체계 |
|---|---|
| 프로젝트명 | Spear engine |
| 개발자 | Samuli Raivio |
| 주요 게임 | Dealer's Dungeon |
| 구현 언어 | C 중심 |
| 프레임워크 구성 | sf 기반 라이브러리, sp 게임 도구 |
| 실행 프로그램 | client·server 모듈 |
| 자료 변환 | sp-tools, FBX 처리 도구 |
| 관련 라이브러리 | ufbx, bq_websocket |
| 빌드 도구 | Premake |
| 주요 OS | Windows, Linux |
| 웹 기술 | Emscripten 개발 구성 |
| 소스 공개 | 코드 공개, 원본 게임 자산은 비공개 |
| 라이선스 | zlib/libpng License |
| 원본 저장소 | bqqbarbhg/spear |
| 관련 프로젝트 | ufbx FBX loader |
Spear Engine은 Samuli Raivio가 《Dealer's Dungeon》을 개발하기 위해 만든 게임 전용 실행 코드와 도구 집합이다. 공식 저장소는 범용 상용 엔진으로 완성된 제품이 아니라 특정 게임에 강하게 결합된 코드베이스라고 설명한다. C 기반 하위 라이브러리와 게임 로직·클라이언트·서버, 자산 파이프라인을 포함하며 다른 프로젝트에서 참고할 수 있도록 소스를 공개했다.[1]
저장소의 src/sf는 컴파일러 추상화와 자료 구조·스레드 동기화 등의 공통 기반을 제공한다. src/sp는 게임 제작 관련 유틸리티와 기능을 포함하고 src/client에는 화면과 입력을 포함한 엔진 기능의 상당 부분이 구현돼 있다. src/server에는 게임 서버와 서버 측 게임플레이 규칙이 존재해 네트워크 게임의 실행 영역을 구분한다.
클라이언트와 서버를 분리하는 구조는 동일한 게임 규칙이 반드시 한 프로세스에서 모두 처리되는 것이 아니라 역할을 나누어 동작할 수 있음을 보여준다. 네트워크 통신 관련 bq_websocket과 콘텐츠 도구 sp-tools가 연계되며, 모델 자료를 읽는 과정에서 개발된 ufbx는 이후 독립적인 FBX 로더 라이브러리로 발전했다.[2]
엔진은 Premake 기반 프로젝트 생성과 Windows·Linux 빌드 안내를 제공한다. 클라이언트는 화면·게임 월드·입력을 처리하고 서버는 게임 상태·규칙을 수행하는 구성으로 작성됐다. 소스에 Emscripten 설정도 포함돼 있지만 실제 웹 배포 가능 여부는 당시 사용한 코드와 자산 및 빌드 버전을 확인해야 한다.
공개 코드만으로는 완전한 《Dealer's Dungeon》 게임을 빌드하기 어렵다. 공식 README는 일부 게임 콘텐츠가 비공개 자산으로 제공되지 않는다고 명시한다. 코드와 이미지·사운드·맵 자산의 배포 조건은 독립적이며 개발자가 다른 게임의 콘텐츠까지 획득하는 것을 허용하지 않는다.[3]
원본 소스는 zlib/libpng License로 공개되어 코드의 수정·상업적 사용과 재배포를 조건에 따라 허용한다. 다른 Spear 또는 SPEAR 이름의 Python 라이브러리·AI 시뮬레이터와는 별개 프로젝트이며, 이 문서의 대상은 Samuli Raivio의 게임 전용 Spear 코드베이스다. 범용 엔진보다 자체 게임의 요구에 맞춘 경량 런타임과 자산·네트워크 계층을 공개한 사례로 분류한다.