Gosu

Gosu는 Ruby와 C++를 대상으로 하는 자유·오픈 소스 2차원 게임 엔진 라이브러리다. 창 생성·게임 루프·이미지와 텍스트 출력, 오디오 및 입력 처리의 공통 기능을 제공한다. 대형 통합 시각적 편집기 없이 Ruby 코드만으로 게임을 작성할 수 있어 교육용 프로그램과 짧은 게임잼...

분류게임 엔진, 2D 게임 개발 라이브러리
개발 언어C++
주요 사용 언어Ruby, C++
주요 개발자Julian Raschke 외 프로젝트 기여자
기본 실행창·게임 루프·이벤트 처리
그래픽스OpenGL·OpenGL ES 기반 2D
오디오효과음·음악 재생
입력키보드·마우스·게임패드
주요 플랫폼Windows, macOS, Linux, iOS(구성별)
게임 개발일반적인 Ruby 코드 및 C++ 프로젝트
의존성SDL 계열 등 소규모 라이브러리
대표 작품《Super Bombinhas》, 《Bloopy & Droopy》
라이선스MIT License
공식 웹사이트libgosu.org
소스 코드gosu/gosu

Gosu는 Ruby와 C++를 대상으로 하는 자유·오픈 소스 2차원 게임 엔진 라이브러리다. 창 생성·게임 루프·이미지와 텍스트 출력, 오디오 및 입력 처리의 공통 기능을 제공한다. 대형 통합 시각적 편집기 없이 Ruby 코드만으로 게임을 작성할 수 있어 교육용 프로그램과 짧은 게임잼 프로젝트에 활용되며, C++로 직접 접근하는 인터페이스도 제공한다. 같은 이름의 JVM 기반 Gosu 프로그래밍 언어와는 별개다.[1]

Ruby에서 개발자는 Gosu::Window를 상속한 클래스를 만들고 update 및 draw를 구현하여 게임의 상태 갱신과 화면 표시를 분리한다. 입력은 키를 눌렀는지 확인하거나 이벤트 메서드에서 직접 처리할 수 있다. 이미지는 Gosu::Image와 글꼴·색상 API 등을 통해 렌더링하며, 게임에서 사용하는 객체나 충돌과 장면 계층은 개발자가 직접 설계하거나 별도 라이브러리와 조합한다.

렌더링은 OpenGL 또는 OpenGL ES 기반의 2D 그래픽스 기능을 제공하며 이미지·텍스트의 크기와 위치, 색상을 변경하고 다양한 화면 연출을 구현할 수 있다. 효과음과 음악 재생, 키보드·마우스·게임패드 입력도 엔진에서 처리한다. 별도 파일 시스템과 자산 구조를 강제하지 않아 작은 프로그램에서 필요한 이미지를 읽고 사용자 입력에 반응하는 방식으로 빠르게 시작할 수 있다.[2]

공식 사이트는 Windows·Linux·macOS와 iOS 지원을 소개하며 C++ 버전은 CMake 및 플랫폼별 IDE 프로젝트로 빌드할 수 있다. 내부 구현은 C++17을 사용하고 의존성을 줄이기 위해 SDL 계열 라이브러리와 그래픽스·오디오 API를 통합한다. Ruby와 C++ 두 인터페이스의 기능 및 패키징 절차는 다를 수 있고, 과거 RubyMotion을 통한 iOS 접근은 일반적인 Ruby 실행 환경과 차이가 있다.

프로젝트는 예제 게임과 튜토리얼을 공개하고 있으며 《Super Bombinhas》와 《Bloopy & Droopy》 등의 Ruby·Gosu 기반 게임이 Steam에 배포된 사례도 공식 웹사이트에서 소개한다. MIT 라이선스로 제공되므로 게임 코드와 별도 라이선스 조건으로 결합할 수 있다. Gosu는 저수준 그래픽·입력 처리의 부담을 줄이면서 상위 게임 시스템은 개발자가 자유롭게 설계하는 경량 2D 프레임워크의 사례다.[3]

역사

기술 계보와 개발 배경

엔진 구성과 실행 모델

장면·월드 및 게임 객체

게임 로직과 스크립팅

렌더링과 영상 처리

물리·애니메이션·입력

오디오와 사용자 인터페이스

게임 데이터·자산 형식

개발·편집 도구와 후속 구현

플랫폼과 호환성

라이선스와 원본 저작권

대표 작품 및 기술적 영향

관련 문서

  1. Gosu 공식 프로젝트 소개 ↩
  2. Gosu 공식 기능·플랫폼 설명 ↩
  3. Gosu 저장소와 라이선스 ↩