ggez

ggez는 Rust 언어로 게임을 개발하기 위한 경량 오픈 소스 게임 엔진 프레임워크다. 이름은 'Good Game Easily'에서 유래했으며 LÖVE에서 영감을 받은 게임 실행·입력·그래픽스·오디오 API를 제공한다. 자체 통합 3차원 월드 에디터를 강제하기보다 게임 프로그래머가 프...

분류게임 엔진, Rust 게임 개발 프레임워크
프로젝트 명칭Good Game Easily
구현 언어Rust
설계 참고LÖVE 프레임워크
게임 실행Context, EventHandler, event::run
렌더링wgpu 기반 2D 및 3D 지원
창·이벤트winit
오디오rodio
자원 관리폴더 및 압축 파일에서 로드
개발 방식Rust Cargo 의존성으로 추가
기본 플랫폼Windows, Linux 중심
기타 플랫폼기능과 이식 작업에 따라 지원 범위 상이
공개 라이선스MIT License
공식 사이트ggez.rs
공식 소스ggez/ggez

ggez는 Rust 언어로 게임을 개발하기 위한 경량 오픈 소스 게임 엔진 프레임워크다. 이름은 'Good Game Easily'에서 유래했으며 LÖVE에서 영감을 받은 게임 실행·입력·그래픽스·오디오 API를 제공한다. 자체 통합 3차원 월드 에디터를 강제하기보다 게임 프로그래머가 프로젝트의 객체 구조와 게임 규칙을 직접 설계하도록 한다. 2D 제작을 중심으로 시작했으나 프로젝트 자료에는 일부 3D 기능도 소개된다.[1]

ggez의 실행 모델은 Context, EventHandler 및 event::run으로 구성된다. 개발자는 게임 상태를 저장하는 Rust 구조체를 정의하고 EventHandler 트레이트를 구현해 갱신과 그리기·입력 이벤트를 처리한다. Context는 운영체제와 렌더링·오디오·리소스에 접근하는 상태를 제공하며 이벤트 루프는 플랫폼의 윈도 시스템에서 전달되는 입력을 게임 로직으로 연결한다.

렌더링은 현대 버전에서 wgpu를 활용하며 창과 이벤트에는 winit, 소리 재생에는 rodio를 사용한다. 스프라이트·도형과 텍스트, 캔버스에 그리기 등을 API로 제공하며 폴더와 압축 파일의 자원을 공통 인터페이스로 접근한다. 원본 LÖVE의 Lua 실행 모델과 달리 ggez에서는 Rust 코드가 직접 이벤트와 자료 구조를 구현한다는 점이 차이다.[2]

ggez는 물리 엔진이나 엔티티 컴포넌트 시스템의 특정 구현을 기본 구조로 강제하지 않는다. 개발자는 게임 세계의 충돌·물리 계산과 객체 계층을 직접 구현하거나 다른 Rust 라이브러리와 결합할 수 있다. 이런 설계는 간단한 아케이드 게임에서 시작해 독립적인 프레임워크를 확장하기에 유연하지만 게임 편집기·대규모 콘텐츠 저작 환경은 프로젝트별로 별도로 마련해야 한다.

공식 저장소는 기본적으로 Windows와 Linux의 이식성을 소개하며 다른 시스템의 지원은 버전 및 플랫폼 관련 구성에 따라 달라질 수 있다. 사용자는 Cargo.toml에 크레이트를 추가하여 개발하며 소스는 MIT License로 공개된다. 다양한 예제와 API 문서가 제공돼 Rust 언어의 게임 개발을 학습하는 자료로도 활용된다.[3]

역사

기술 계보와 개발 목표

실행 구조와 데이터 모델

장면·월드와 객체

게임 로직·스크립팅

렌더링과 그래픽스

물리·AI·시뮬레이션

입력·오디오·네트워크

제작 도구와 콘텐츠

플랫폼과 게임별 구현

라이선스 및 코드 공개

대표 작품과 기술적 영향

관련 문서

  1. ggez 공식 프로젝트 ↩
  2. ggez README의 내부 구현 설명 ↩
  3. ggez 라이선스 및 사용 예제 ↩