String은 유니코드를 지원하는 내장 문자열 클래스다. 문자열을 다루는 작업은 코딩 과정에서 자주 사용하는 것이므로 고도에서 제공하는 것을 정리하고 넘어간다. var output_dir : String = dir.get_current_dir() var blueprint_name := "" label.text = String(canvas_number) 변수의 타입으로 문자열을 지정하기 위해서 String을 사용할 수도 있지만 ""로 문자열 상수를 직접 기술할 수도 있다. 문자열 리터럴은 다른 언어처럼 백 슬래시(\)를 에스케이프 문자로 사용할 수 있음을 "고도 스크립트 개요, 예약어와 연산자"에서 이미 다루었다. 다중 라인 문자열은 """로 기술한다. 위의 예제에서 blueprint_name은 빈 문자열..
"리듬 게임 분석하기" 글에 이어서 여러 가지 기술적 요소를 살펴보고 있다. 2D 요소든 3D 요소든 움직임을 표시하는 것은 생동감 있는 게임을 만드는 데 있어 핵심적인 요소라 할 수 있다. 이번 포스팅에서는 2D 요소에 대한 움직임을 표현하는 데 사용하는 AnimationPlayer와 Tween 클래스를 다루고자 한다. ■ AnimationPlayer 클래스 위의 그림은 리듬 게임에서 리듬 비트에 따라 표시되었다가 없어지는 터치 및 드래그 게임 요소를 표시하기 위해 AnimationPlayer 클래스를 사용하고 있는 모습이다. 애니메이션 플레이어는 여러가지 자원을 가지고 애니메이션을 수행하는 클래스로 인스펙터 창에 있는 대부분의 요소에 대해서 애니메이션이 가능하다. 트윈의 경우에도 애니메이션 플레이어가..
사용자가 키보드나 마우스, 게임 패드나 조이스틱, 심지어 터치까지 뭔가 신호를 주면 그에 따른 반응과 움직임을 보이는 것은 게임의 핵심이지 않을까! 사용자의 개입이 없다면 그냥 동영상이라 해도 무방할 것이다. 초보 게이머가 고도 엔진을 설치하고 데모 프로젝트를 수행하는 과정은 대부분 키보드에서 화살표를 움직이거나 마우스를 움직여 보는 것 말고는 특별히 할 수 있는 것이 없다. 사용 안내서도 없고, 일반적인 게임 방법에도 익숙하지 않기 때문이다. 데모 프로젝트를 따라 하면서 개발 기술을 익히려면 우선 데모 프로젝트를 플레이 할 수 있어야 하는데, 시작부터 막힌 것이다. 고도 스크립트를 열어 보면 Input.is_action_pressed("aim")처럼 뭔가 눌러졌을 때를 처리하는 로직이 있는데, 전통적인..
컴퓨터 초보자를 위한 학습용 게임을 구상하면서 맨 처음 든 생각은 처음부터 끝까지 완전히 날 코딩으로 개발하는 방법이었다. 내가 넣고 싶은 기능을 마음대로 넣어 가면서 성능을 최적화할 수 있도록 일단 작품을 하나 제작해 놓으면 이후부터는 코드를 재사용해가면서 나름 생산성을 높일 수 있지 않을까? 하는 생각이었기 때문이다. 그러나, 이런 방법은 전문 게임 개발 회사도 아니므로 생산성도 떨어지고 다양한 플랫폼으로 확장하기도 어렵다는 한계가 있다. 그래서 검토하기 시작한 것이 게임 개발 엔진의 사용 방법이다. 게임 개발을 위한 기본 환경이 갖추어져 있으므로 게임 개발의 생산성도 높이고 플랫폼 확장의 장점도 얻을 수 있다. 그래서 찾아본 엔진들은 다음과 같다. 1. 유니티(https://unity.com/kr)..