Quintus

Quintus는 개발자 Pascal Rettig이 개발한 JavaScript 기반의 경량 HTML5 2차원 게임 엔진이다. 2012년 말부터 2013년에 걸쳐 공개된 초기 버전은 모바일과 데스크톱 브라우저에서 게임을 실행할 수 있도록 게임 루프, 스프라이트·장면·입력과 충돌·오디오 등을...

분류게임 엔진, HTML5 2D 게임 개발 프레임워크
개발자Pascal Rettig (cykod) 및 공개 기여자
최초 공개 계열2012년 말~2013년
개발 언어JavaScript
실행 환경HTML5 웹 브라우저
개발 대상데스크톱·모바일 브라우저
주요 모듈Core, Sprites, Scenes, Input, 2D, Touch, UI
추가 모듈Anim, Audio, TMX, Tween 등
객체 모델Q.Sprite, Q.Stage, Q.Scene, Component
기술적 특징모듈·플러그인과 이벤트·선택자 API
렌더링HTML5 Canvas 기반 2D
충돌·물리2D 움직임, SAT 및 타일 충돌
타일맵TMX·Tiled 레벨 데이터
입력키보드, 마우스, 터치·가상 조이패드
오디오HTML5 Audio·Web Audio
사용자 인터페이스Q.UI.Container, Text, Button
빌드 도구Node.js·npm, Grunt (당시)
기본 배포CDN 스크립트 또는 개별 모듈
공개 라이선스MIT License / GNU GPL v2 이중 라이선스
개발 상태역사적 HTML5 게임 엔진, 현대 유지보수 제한
공식 웹사이트HTML5 Quintus
원본 저장소cykod/Quintus
공식 가이드Quintus Introduction

Quintus는 개발자 Pascal Rettig이 개발한 JavaScript 기반의 경량 HTML5 2차원 게임 엔진이다. 2012년 말부터 2013년에 걸쳐 공개된 초기 버전은 모바일과 데스크톱 브라우저에서 게임을 실행할 수 있도록 게임 루프, 스프라이트·장면·입력과 충돌·오디오 등을 모듈 형태로 제공했다. Rettig이 《Professional HTML5 Mobile Game Development》를 저술하는 과정에서 구축한 실행 기술에 기반하며, 초기 웹 게임 프레임워크의 무거운 객체 지향 상속 계층보다 JavaScript에 자연스러운 함수·이벤트와 플러그인 구조를 강조했다.[1]

Quintus의 중심은 Quintus() 호출로 만들어지는 엔진 인스턴스와 여러 독립 모듈이다. 개발자는 Sprites, Scenes, Input, 2D, Touch, UI와 같은 기능을 .include()로 선택해 초기화한다. 코어는 게임 루프·모듈 관리·이벤트와 클래스·컴포넌트, 기본적인 파일 로딩·수학 기능을 제공하고 게임에 필요한 개별 동작은 확장 모듈이 구현한다. 이렇게 필요한 기능만을 선택해 조합하는 설계는 작은 크기의 웹 게임을 제작하면서도 프로젝트별 기능 요구를 수용하기 위한 것이다.[2]

게임 세계는 Q.Sprite와 장면을 정의하는 Q.scene(), 실제 객체가 등록되는 Q.Stage를 중심으로 구성된다. 객체는 장면에 삽입될 때 업데이트·그리기 작업에 참여하고, Stage에는 여러 장면을 겹쳐 표시하거나 전환하는 기능이 있다. 스프라이트는 기존 JavaScript 프로토타입·클래스 확장과 별도로 컴포넌트를 부착할 수 있어 기본 이동·충돌·AI 행동을 재사용하기 쉽다. this.add('2d, platformerControls')처럼 구성 요소를 연결하고 hit.sprite 이벤트를 구독하는 구조는 깊은 단일 상속 계층 대신 조합과 이벤트 전달을 활용하는 접근법이다.[3]

그래픽스에는 HTML5 Canvas 기반의 2차원 스프라이트·타일맵·애니메이션을 사용한다. 기본 Sprites 모듈은 이미지·텍스처 영역과 프레임을 관리하고 Anim 모듈은 스프라이트 시트 애니메이션과 객체 속성의 트윈을 제공한다. 2D 모듈은 기본적인 중력·이동과 충돌, 카메라 뷰포트와 타일 레이어를 제공하며, 충돌에는 SAT와 타일의 지형 판정이 포함된다. 이는 범용 강체 물리 미들웨어 전체를 기본적으로 구현한 것과 다르며 2D 플랫폼 게임·아케이드 게임의 자주 쓰이는 동작을 빠르게 작성할 수 있는 수준의 공통 구성 요소다.[4][5]

게임 자산은 Q.load()로 불러오고 이미지와 스프라이트 시트, JSON 레벨 등의 자료를 결합하여 사용한다. 타일맵에는 Tiled에서 출력한 TMX 형식과 다중 레이어·경사진 타일, 트리거·센서 등에 대응하는 기능이 개발됐다. UI 모듈에는 버튼·텍스트·컨테이너를 제공하며 입력 모듈은 키보드·마우스와 터치·가상 조이패드를 지원한다. 오디오는 HTML5 및 Web Audio 기능을 통해 재생하고 개발자는 사운드의 반복 재생·정지 등의 동작을 API로 지정할 수 있다. 당시 프로젝트는 Node.js·Grunt로 모듈들을 결합해 배포용 파일을 생성하는 방식도 제공했다.[6]

Quintus의 공개 저장소에는 MIT License와 GNU GPL v2 라이선스 문서가 모두 포함되어 있으며 두 조건 가운데 하나를 선택해 사용하는 이중 라이선스 구조다. 초기 프로젝트는 데스크톱·모바일 웹 브라우저를 대상으로 하며 특정한 그래픽스·사운드 API의 존재 여부는 당시 브라우저 환경에 따라 달라졌다. 소스와 예제는 공개돼 있지만 기존 CDN 주소와 Google+ 커뮤니티 등의 배포·지원 경로는 현재까지 유지된다고 보장할 수 없다. 게임의 실행 코드를 현대 브라우저에서 다시 사용할 때에는 오래된 JavaScript 코드와 HTTPS, 리소스 로딩·오디오 정책의 변화까지 검토해야 한다. Quintus는 Flash 중심 게임 제작에서 HTML5·Canvas와 JavaScript 기반 웹 게임으로 이동하던 시기의 모듈형 엔진 설계를 보여주는 역사적 사례다.[7]

역사

개발 배경과 기술 계보

엔진 아키텍처

실행 모델과 게임 객체

프로그래밍과 시각적 스크립팅

렌더링과 그래픽스

물리·충돌·애니메이션

입력·오디오 및 사용자 인터페이스

게임 자산과 제작 도구

지원 플랫폼과 배포

라이선스 및 소스 공개

활용 분야와 대표 게임

기술적 영향과 보존

관련 문서

  1. Quintus 원본 저장소와 개발 역사 ↩
  2. Quintus 공식 코어 설계 문서 ↩
  3. Quintus 공식 사이트: 장면·스프라이트·컴포넌트 예제 ↩
  4. Quintus: 2D Module ↩
  5. Quintus: Animation Guide ↩
  6. Quintus 공식 기능·변경 기록 ↩
  7. Quintus 소스·라이선스 문서 ↩