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]