게임메이커
1. 개요
게임메이커는 마크 오버마스가 개발하여 1999년 "아니모"라는 이름으로 처음 출시된 2D 게임 개발 도구이다. 드래그 앤 드롭 인터페이스를 통해 프로그래밍 경험이 없는 사용자도 쉽게 게임을 제작할 수 있도록 설계되었으며, GML(GameMaker Language)을 사용하여 기능을 확장할 수도 있다. 2007년 요요 게임즈에 인수되었으며, 게임메이커 스튜디오, 게임메이커 스튜디오 2로 발전하면서 다양한 플랫폼을 지원하게 되었다. 현재는 비상업적 용도로 무료로 제공되며, 2D 그래픽 기반의 게임 제작에 널리 사용되고 있다.
| 개발자 | YoYo Games, 마크 오버마르스 |
|---|---|
| 최초 출시일 | 1999년 11월 15일 |
| 최신 버전 | v2024.11.0 |
| 최신 출시일 | 2024년 12월 17일 |
| 프로그래밍 언어 | C++ (런타임 시스템) C# (통합 개발 환경) |
| 운영 체제 | 마이크로소프트 윈도우 macOS |
| 플랫폼 | 마이크로소프트 윈도우 macOS Ubuntu HTML5 Android iOS Amazon Fire TV Android TV Universal Windows Platform PlayStation 4 PlayStation 5 Xbox One Xbox Series X/S 닌텐도 스위치 |
| 지원 언어 | 영어 프랑스어 스페인어 독일어 브라질 포르투갈어 러시아어 중국어 (간체) 폴란드어 이탈리아어 한국어 일본어 |
| 라이선스 | 독점 사용권 |
| 웹사이트 | GameMaker 공식 웹사이트 |
| 개발자 | YoYo Games, 마크 오버마르스 |
|---|---|
| 프로그래밍 언어 | Delphi/C++ |
| 운영 체제 | 마이크로소프트 윈도우 |
| 지원 언어 | 영어 |
| 종류 | 게임 개발/프로그램 개발 |
| 라이선스 | 프로프라이어티 |
| 공식 웹사이트 | 공식 웹사이트 |
-
비디오 게임 IDE -
언리얼 엔진
언리얼 엔진은 에픽게임즈에서 개발한 게임 엔진으로, 게임 개발을 넘어 영화, 건축 등 다양한 분야에서 활용되며, C++ 및 블루프린트 비주얼 스크립팅 시스템을 통해 게임 로직을 구현하고, 최근에는 Verse라는 새로운 스크립트 언어가 도입되었다. -
비디오 게임 IDE -
유니티 (게임 엔진)
유니티는 2005년 출시된 게임 개발 엔진으로, 2D 및 3D 게임 제작, 다양한 플랫폼 지원, C# 스크립팅, 에셋 스토어 등을 제공하며 게임 외 분야에서도 활용된다. -
1999년 소프트웨어 -
냅스터
냅스터는 1999년부터 2001년까지 운영된 P2P 파일 공유 서비스로, MP3 파일 공유를 용이하게 하여 음악 산업에 큰 영향을 주었으며 저작권 침해 소송으로 서비스가 중단되었으나 현재는 음악 스트리밍 서비스로 운영되고 있다. -
1999년 소프트웨어 -
윈도우 라이브 메신저
윈도우 라이브 메신저는 마이크로소프트가 개발한 인스턴트 메시징 클라이언트로, 2005년 MSN 메신저에서 브랜드 변경 후 출시되어 오프라인 메시징, 테마 변경 등의 기능을 제공하고 여러 플랫폼을 지원했으나 2013년 서비스가 종료되었으며 현재는 일부 기능만 이용 가능하다. -
스크립트 언어 -
Tcl
Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다. -
스크립트 언어 -
PHP
PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
2. 개발 역사
게임메이커는 원래 마크 오버마스가 대학 강의를 위한 목적으로 만든 아니모(Animo)라는 그래픽 도구였으나, 이후 게임 제작 기능이 추가되면서 '게임메이커'로 이름이 변경되었다.
버전 5.0 이하는 무료 소프트웨어였으며, 버전 5.1부터 선택적인 등록 비용이 도입되었다. 버전 5.3(2004년 1월)에서는 등록된 사용자를 위한 입자 시스템, 네트워킹, DLL을 사용한 게임 확장 기능 등 다양한 기능이 추가되었다.
버전 6.0(2004년 10월)에서는 3D 그래픽을 사용할 수 있는 제한적인 기능이 도입되었고, 런타임의 드로잉 파이프라인이 VCL에서 DirectX로 변경되었다.
2007년에는 요요 게임즈와의 파트너십을 통해 개발 주체가 변경되었고, 2009년에는 macOS 호환 버전이 출시되어 두 운영 체제용 게임을 제작할 수 있게 되었다.
2011년 9월에는 데스크톱과 웹 브라우저용 게임을 내보낼 수 있는 "게임메이커: HTML5"가 출시되었다.
2021년 8월, 요요 게임즈는 라이선스를 변경하여 게임메이커 엔진의 무료 버전을 제공하기 시작했으며, 2023년 11월에는 모든 플랫폼(콘솔 제외)에서 비상업적 용도로 무료로 제공한다고 발표했다.
2.1. 초기 개발
게임메이커는 마크 오버마스가 대학 강의를 위해 만든 그래픽 도구인 아니모(Animo)였다. 1999년 11월 15일 아니모라는 이름으로 처음 출시되었을 때는 제한적인 시각적 스크립팅 기능만 가지고 있었다. 초기 버전은 델파이로 개발되었다.
이후 출시된 버전에서 이름이 게임메이커로 변경되었고, 더 일반적인 2D 게임 개발을 목표로 하게 되었다.
2.2. 요요 게임즈와의 협력
2007년 1월 26일, 마크 오버마스는 요요 게임즈라는 게임 회사를 설립하였다. 이 시점부터 게임메이커의 개발은 요요 게임즈가 담당했으며, 오버마스는 회사의 이사직을 유지했다. 이 파트너십을 통해 게임메이커 버전 7.0이 처음으로 등장했다. 요요 게임즈는 게임메이커를 개발하고, 개발자와 일반 게이머를 위한 커뮤니티를 개발하는 데 힘썼다.
2.3. 버전 8.1 이후
2011년 4월, 버전 8.1에서는 1991년 소프트웨어 게임-메이커와의 혼동을 피하기 위해 이름이 게임메이커(공백 없음)로 변경되었다. 이 버전은 또한 성능 문제를 해결하기 위해 런타임을 C++로 다시 작성했다.
2.4. 게임메이커 스튜디오
게임메이커: 스튜디오는 2012년 3월에 공개 베타를 시작했으며, 2012년 5월에 정식 출시되었다. 초기 지원 플랫폼에는 윈도우, 맥, HTML5, 안드로이드, iOS가 포함되었다. 이후 몇 년 동안 추가 플랫폼과 기능이 도입되었다. 2012년 말에는 일부 정품 사용자에게서 불법 복제 방지 조치가 오작동하는 사고가 발생했다.
2015년 2월, 게임메이커는 요요 게임즈와 함께 플레이테크에 인수되었다. 인수 발표에서는 게임메이커가 더욱 개선될 것이며, 보다 진보된 개발자를 포함하여 더 넓은 인구 통계에 어필할 계획이라고 밝혔다.
2.5. 게임메이커 스튜디오 2
2016년 11월에 게임메이커 스튜디오 2 베타가 처음 출시되었고, 2017년 3월에 정식 출시되었다. 이 버전은 완전히 재설계된 IDE(C#으로 다시 작성)와 여러 새로운 편집기 및 런타임 기능을 제공한다.
2020년 8월에는 IDE, 런타임 및 스크립팅 언어에 다양한 새로운 기능을 제공하는 주요 업데이트 2.3이 출시되었다.
2.6. 오페라 소프트웨어 인수 이후
2021년 1월, 요요 게임즈는 약 10에 오페라 소프트웨어에 인수되었다. 게임메이커 개발팀은 그대로 유지되었으며, 게임메이커 스튜디오에 어떠한 주요 개발 변경 사항도 발생하지 않았다.
2022년 1월, 요요 게임즈는 게임메이커 스튜디오 2의 번호 매기기 방식을 변경하여 릴리스된 연도와 월에 해당하도록 했다(예: 2022.1은 2022년 1월).
2022년 4월, 요요 게임즈는 새로운 버전 번호 매기기 방식에 맞춰 '게임메이커 스튜디오 2'라는 이름을 삭제하고 단순히 게임메이커로 변경했다.
3. 특징
게임메이커는 주로 2D 게임 제작을 위해 설계되었으며, 래스터 그래픽스, 벡터 그래픽스, 2D 골격 애니메이션 등 다양한 그래픽 요소를 지원한다. 제한적이지만 3D 그래픽도 사용할 수 있는데, 이는 버텍스 버퍼 및 행렬 함수 형태로 제공되어 초보자에게는 다소 어려울 수 있다.
게임메이커는 드래그 앤 드롭 방식의 GUI를 제공하여, 사용자가 액션(기능)들을 쉽게 구성할 수 있도록 돕는다. 또한, 자체 스크립트 언어인 GML(GameMaker Language)을 통해 게임 로직을 보다 세밀하게 제어할 수 있다.
기능 확장을 위해 DLL 파일을 추가할 수 있다.
게임메이커는 라이트(Lite) 버전과 프로(Pro) 버전으로 나뉜다. 라이트 버전은 무료이지만 기능에 제한이 있다. 프로 버전은 유료이며, 더 많은 기능을 제공한다.
3.1. 디자인
드래그 앤 드롭을 활용한 인터페이스를 채용하여, 프로그래밍에 익숙하지 않은 사람도 아이콘을 시각적으로 구성하는 것만으로 직관적인 게임 개발이 가능하다. Game Maker에는 각종 움직임, 기본적인 그림, 단순한 제어 구조를 포함하는 액션 라이브러리가 포함되어 있다. 사용자는 공식 라이브러리 빌더 툴을 이용하여 독자적인 액션 라이브러리를 만들고, 드래그 앤 드롭형 명령 아이콘을 게임에 추가할 수 있다. 단, 이를 위해서는 약간의 숙련이 필요하다.
3.2. GML (GameMaker Language)
GML(게임메이커 언어, GameMaker Language)은 게임메이커의 스크립트 언어로, GUI 방식이 아닌 일반적인 프로그래밍 언어 형태로 게임을 확장하거나 제어할 수 있도록 한다. GML의 문법은 C 언어, C++, 파스칼 등과 비슷하지만, 다른 언어에 기반을 두지 않은 독립적인 언어이다. GML은 컴파일러가 아닌 인터프리터이다. 따라서 게임을 실행할 때마다 내장 인터프리터가 GML 코드를 해석하며, 이는 C++이나 델파이 등의 컴파일러보다 일반적으로 속도가 느리다. GML은 DLL을 로드하고 사용하는 기능을 지원하여, C++, 델파이, 파스칼과 같은 다른 프로그래밍 언어로 작성된 함수 및 루틴을 사용할 수 있게 한다.
다음은 GML 코드 예시이다.
// This is a comment
/* this is a C-Style comment. */
/* temporary variable declaration.
A temporary variable will be released at the end of a script.
Note that this doesn't declare it to be of a specific type! */
var xx, yy, nn;
// A conditional. It can also be shortened to "if (can_shoot)".
if (can_shoot = true) // "=" and "==" can be used interchangeably in conditionals
{ // This begins a block of code. You can also use "begin" as with Pascal.
/* Here we are setting the variable to false. This could also be written as "can_shoot = 0;"
since GameMaker only has real values. */
can_shoot = false;
/* Here you are setting the 0th alarm to five steps. The alarm
variable will automatically count down to 0, and when it hits 0,
the alarm0 event will be triggered. */
alarm[0] = 5;
/* Here the temporary variable xx is defined implicitly as an integer,
and the lengthdir_x function is used. */
xx = x + lengthdir_x(14, direction);
yy = y + lengthdir_y(14, direction);
//This function creates an obj_bullet and then returns its instance id to nn.
nn = instance_create(xx, yy, obj_bullet);
/* The with statement allows you to access the fields of an object directly,
without having to write statements like nn.speed or nn.direction. */
with (nn)
{
speed = obj_tank.speed + 3;
direction = obj_tank.direction;
}
}
3.3. GML Visual
GML Visual (원래는 "드래그 앤 드롭")은 게임메이커의 비주얼 스크립팅 도구이다.
GML Visual을 사용하면 개발자가 한 줄의 코드도 작성하지 않고 오브젝트 인스턴스화, 함수 호출, 파일 및 데이터 구조 작업 등 일반적인 작업을 수행할 수 있다. 주로 초보 사용자를 대상으로 한다.
과거에는 GML Visual로 편하게 수행할 수 있는 작업이 상당히 제한적이었지만, 게임메이커 스튜디오 2에서는 시스템이 대대적으로 개편되어 GML Visual로 더 많은 작업을 수행할 수 있게 되었고, 코드로 직접 변환된다.
3.4. 확장 패키지
확장 패키지는 게임메이커 전용 DLL이나 전용 확장 파일 (DLL, 라이브러리, GML 스크립트 및 기타 파일)을 지원한다. 따라서 사용자는 GML 및 C++와 같은 컴파일러 언어를 사용하여 프로그램에 새로운 기능을 추가할 수 있다.
4. 구성 요소
게임메이커는 스프라이트, 사운드, 백그라운드, 오브젝트, 룸 등 다양한 구성 요소를 제공하여 게임을 구성한다. 패스, 스크립트, 폰트, 타임라인 등의 요소를 활용하여 게임의 동작과 표현을 제어할 수 있다. 게임메이커 스튜디오 2에서는 타일 셋을 이용하여 타일 기반의 맵을 제작할 수 있다.
4.1. 스프라이트
스프라이트(Sprite)는 컴퓨터 그래픽에서 이미지를 가리킨다. 주인공과 적의 모습 등 화면에 나타나는 모든 이미지를 스프라이트라고 한다. 단, 배경은 예외이다.
4.2. 사운드
사운드는 배경음이나 게임 효과음 등 게임에 들어갈 모든 소리를 일컫는 말이다. 간단하게 탐색기로 파일을 불러와 사용할 수 있다. 플레이어가 걷는 소리, 적이 쓰러지는 소리와 배경 음악 등 게임에 들어가는 모든 소리들이 사운드에 해당한다.
4.3. 백그라운드
백그라운드는 게임의 배경 이미지이다. 예를 들어 숲에서 모험을 하는 게임을 만들려면 백그라운드를 숲으로, 무서운 분위기로 만들려면 백그라운드를 어둡게 하는 등 게임의 이미지나 분위기를 좌우한다. 백그라운드는 룸에서 설정할 수 있으며, 개별적으로도 설정할 수 있다. 룸에서는 일반 백그라운드와 타일로 나뉜다. 이 백그라운드의 기본색은 회색이다.
게임메이커 스튜디오 2에서는 백그라운드라는 요소가 사라졌다.
4.4. 패스
패스는 오브젝트의 이동 경로를 간편하게 지정해주는 역할을 한다. 클릭으로 간편하게 오브젝트의 경로를 만들 수 있다.
4.5. 스크립트
스크립트는 게임메이커의 내장 언어인 GML을 이용하여 작성할 수 있고, 일반적인 프로그래밍 언어의 함수와 비슷한 역할을 한다.
4.6. 폰트
게임메이커는 한글을 지원하지 않기 때문에 영문 글꼴을 주로 사용한다. 후에 스크립트에서 사용할 수 있다.
4.7. 타임 라인
타임 라인은 프레임 단위로 이벤트를 설정할 수 있으며, 알람과 유사하지만 더 복잡한 설정이 필요할 때 사용된다.
4.8. 오브젝트
오브젝트는 해당 스프라이트를 선택하고 그 스프라이트가 어떻게 행동할지를 정한다. 오브젝트는 이벤트로 이루어지고, 이벤트는 액션으로 이루어진다. 액션은 이벤트 안에 들어가는 세세한 행동의 구분을 말한다. 플레이어의 움직임과 적의 움직임, 공격이나 스킬도 모두 액션이 이용된다. 플레이어를 만들려면 오브젝트를 하나 만들고, 거기에 플레이어의 이미지에 해당하는 스프라이트를 지정해준 다음, 이벤트와 액션을 넣어 완성시킨다. 또한 마스크나 부모 설정을 할 수도 있다.
4.9. 룸
오브젝트들이 활동할 공간이다. 하나의 맵 같은 존재인데, 예를 들면 포탈로 두 개의 룸을 이을 수도 있고 클릭으로 룸을 이동시킬 수도 있다. 뷰나 백그라운드, 룸의 크기 등을 부가적으로 설정할 수 있다.
4.10. 타일 셋
타일 셋은 타일들을 추가하는 곳이다. 현재 게임메이커 스튜디오 2에만 있으며 말 그대로 타일 설정이다. 게임메이커 스튜디오 2를 제외한 게임메이커에서는 타일 기능이 스프라이트에 포함되어 있다.
5. 시스템 요구 사항 (게임메이커 8.x 기준)
6. 지원 플랫폼
게임메이커는 마이크로소프트 윈도우, macOS, Ubuntu, HTML5, 안드로이드, iOS, 아마존 파이어 TV, 안드로이드 TV, 라즈베리 파이를 지원하며, 마이크로소프트 UWP, 플레이스테이션 4, 닌텐도 스위치 및 Xbox One을 지원한다. 플레이스테이션 5 및 Xbox Series X에 대한 지원은 2021년 2월에 발표되었지만, 이러한 콘솔용 게임을 빌드하려면 "Enterprise" 라이선스가 필요하다.
과거에는 윈도우 폰, 타이젠, 플레이스테이션 3, 플레이스테이션 비타 빌드를 지원했지만 현재는 지원이 중단되었다.
6.1. 매킨토시 버전
2008년에 샌디 던컨(Sandy Duncan)은 맥 OS X용 게임메이커를 개발 중임을 선언하였다. 이 포팅은 기술적인 이유로 여러 번 지연되었다.
2009년 12월 4일 요요 게임즈의 맥 개발자가 일을 그만두었으나, 2010년 1월 27일에 재개되었다.
2010년 4월 14일에 맥 버전을 위한 출시 후보 버전이 출시되었다.
2010년 8월 11일, 요요 게임즈는 요요 게임즈 앱스토어라는 새로운 매킨토시 게임 허브와 더불어 맥용 게임메이커 7을 출시하였다.
6.2. 플레이스테이션 포팅 버전
2010년 3월 10일, 요요 게임즈 CEO 샌디 던칸은 플레이스테이션 포터블 시스템용으로 출시될 예정인 새로운 버전의 게임메이커를 발표하였다.
6.3. iOS 버전
2010년 9월 24일, 요요 게임즈는 애플 아이팟, 아이폰, 아이패드와 호환되는 iOS 버전을 만들 것이라고 발표했다. 그러나 2011년 1월 5일, 요요 게임즈는 글로그(Glog)에 공식적인 개발 중단에 대한 글을 올렸다.
6.4. 안드로이드 버전
요요 게임즈 스토어는 사용자들이 구글 안드로이드로 포팅할 수 있게 허용하였다.
6.5. HTML5 버전
요요 게임즈는 실행기가 HTML 5에서도 동작한다고 발표했다.
6.6. 타이젠 버전
요요 게임즈는 삼성이 개발한 OS인 타이젠으로도 포팅을 할 수 있게 하였다.
7. 대한민국에서의 게임메이커 이용
게임메이커는 다른 소프트웨어와 비교하여 쉬운 도구이면서도 여러 기능을 지원하여, 많은 사람들이 게임을 만드는 데 사용하게 되었다. 네이버 카페 'Crazy Gamemakers', 'Play GM' 등 게임메이커를 전문적으로 다루는 커뮤니티도 등장하였다.
8. 비 윈도 계열에서의 게임메이커로 제작된 게임 포팅
요요 게임즈는 게임메이커로 제작된 게임을 윈도나 OS X용이 아닌 다른 운영 체제에서 제작된 게임을 이용할 수 있게 게임메이커 스튜디오가 나오기 전부터 이러한 것을 진행해왔으며, 그러한 것이 개인이 가능하게 된 게임메이커 스튜디오가 출시된 이후에도 요요 게임즈는 신청자에 한해 포팅을 진행 중이다. 다만, 본인의 개발자 계정으로는 올릴 수 없으며 YoYoGames의 이름으로만 올려야 한다. 일부는 광고가 붙을 수 있으며, 요요 게임즈와의 협의 후 수수료를 내고 본인이 유료로 게임을 팔 수 있다.