MonoGame
MonoGame은 Microsoft XNA Framework의 API와 개발 모델을 계승한 오픈 소스 C# 게임 개발 프레임워크다. 자체 장면 편집기와 종합 게임 제작 도구를 기본 제공하는 통합 엔진과 달리, 그래픽스·오디오·입력과 게임 루프를 .NET 프로그램에서 이용할 수 있는 라이...
| 분류 | 게임 개발 프레임워크, 2D·3D |
|---|---|
| 개발 주체 | MonoGame Foundation 및 개발 공동체 |
| 기술적 전신 | Microsoft XNA Framework |
| 작성 언어 | C# |
| 개발 언어 | C# |
| 런타임 | .NET |
| 개발 방식 | 코드 중심, 통합 장면 편집기 없음 |
| 주요 기능 | 그래픽스, 입력, 오디오, 게임 루프, 자산 빌드 |
| 개발 플랫폼 | Windows, Linux, macOS |
| 배포 대상 | 데스크톱·모바일·콘솔 등 |
| 주요 사용 게임 | Stardew Valley, Celeste, Streets of Rage 4 |
| 소스 코드 | GitHub |
| 라이선스 | Microsoft Public License (MS-PL) |
| 공식 웹사이트 | monogame.net |
MonoGame은 Microsoft XNA Framework의 API와 개발 모델을 계승한 오픈 소스 C# 게임 개발 프레임워크다. 자체 장면 편집기와 종합 게임 제작 도구를 기본 제공하는 통합 엔진과 달리, 그래픽스·오디오·입력과 게임 루프를 .NET 프로그램에서 이용할 수 있는 라이브러리로 제공한다. 개발자는 C# 코드로 2D·3D 게임과 게임용 도구를 직접 작성한다.[1]
XNA Framework는 Microsoft가 관리했던 C# 게임 개발 기술로, MonoGame은 이를 여러 운영체제와 실행 환경에서 사용할 수 있도록 재구현했다. Microsoft.Xna.Framework 계열의 네임스페이스와 유사한 프로그램 구조를 제공하므로 기존 XNA 프로젝트의 개념을 재사용할 수 있다. 그러나 현대 플랫폼에 대응하는 각종 백엔드와 자산 빌드 환경은 MonoGame 공동체가 별도로 유지한다.
게임 프로그램은 Game 클래스와 초기화·콘텐츠 로딩, 업데이트·그리기 단계로 구성된다. SpriteBatch는 2D 이미지와 텍스트 렌더링에 사용되며, GraphicsDevice와 여러 그래픽 자료형은 GPU와 그리기 명령을 다룬다. 콘텐츠 파이프라인은 이미지·폰트·사운드 등의 자료를 읽고 필요한 플랫폼용 형식으로 변환하는 데 사용된다.
MonoGame은 Visual Studio·Visual Studio Code·Rider 등 .NET 개발 도구와 연결될 수 있다. 통합된 레벨 편집기를 강제하지 않으므로 개발자가 타일맵·에디터 또는 자체 엔진 구조를 직접 작성할 수 있다. 2D·3D 장면을 자유롭게 구성할 수 있지만 완성된 물리 엔진이나 특정 게임 장르의 프레임워크가 반드시 내장된 것은 아니다.[2]
《Stardew Valley》·《Celeste》·《Streets of Rage 4》 등 여러 게임에 MonoGame이 사용됐다. 이러한 작품은 공통적인 렌더링·입력·오디오 API를 활용하면서도 게임 로직과 장면·애니메이션 시스템은 프로젝트마다 다르게 구현했다. MonoGame은 범용 게임 엔진과 달리 개발자의 자체 도구 및 게임 아키텍처 선택권이 넓다는 특징이 있다.