요즘 대부분의 웹 사이트는 모바일에서 사이트를 보는지, 데스크톱에서 사이트 보는지와 관계없이 마치 해당 장비의 화면 크기에 맞게 사이트를 설계한 것처럼 기기에 맞는 크기로 깔끔하게 내용을 볼 수 있다. 반응형 웹 기술이 적용된 까닭이다. 반응형 웹(Responsive web design) 기술이 적용된 사이트는 화면 크기에 따라 내용이 어그러져 보이지도 않고 스크롤을 사용하지 않아도 편리하게 사이트 내용을 볼 수 있다. 이런 현상은 게임도 마찬가지인데 모바일, 데스크톱, 게임박스 등 기기에 따른 다양한 화면 크기와 해상도는 게임 설계에 있어 큰 짐이 될 수밖에 없다. 다행인 것은 고도 게임 엔진에서는 반응형 웹 설계 기술과 유사한 여러 기능들을 지원하고 있다는 것이다. ■ 가장 기본적인 5개의 컨트롤 노..
"고도 엔진 소스 빌드하기"와 "비주얼 스튜디오로 고도 게임 엔진 개발 환경 구축"에 이은 글로 이번 포스팅은 간단하지만 엔진을 직접 수정하는 과정을 다뤄보고자 한다. 아직 고도 게임 엔진의 소스 빌드를 하지 않았다면 아직 포스팅을 참조할 필요가 있다. 고도 엔진을 처음 실행하면 위의 그림과 같이 한글은 정상적으로 표시되지 않는다. 한글은 기본 폰트에 없기 때문이다. "고도에서 한글 출력하기"에서 다룬 것처럼 커스텀 폰트로 설정하는 방법을 사용해야 한다. 엔진 내부에는 191개의 문자에 대해서만 고해상도 및 저해상도용 폰트를 내장하고 있다.(godot/scene/resources/default_theme/font_hidpi.inc, font_lodpi.inc) 실행 모드나 노드 편집기에서는 한글이 표시되..
고도 게임 엔진은 스콘(SCons, A software construction tool)을 통해서 소스 코드를 빌드하고 다양한 형태의 실행 파일을 만들고 다른 플랫폼용으로 크로스 컴파일도 가능하다. 그렇지만 윈도우 환경에서 비주얼 스튜디오와 같은 통합 개발 환경(IDE)에 익숙한 개발자라면 고도 게임 엔진의 소스코드들을 통합 개발 환경 내에서 편집하는 것이 여러모로 편리할 것이다. 본격적으로 비주얼 스튜디오 기반의 고도 게임 엔진 개발 환경을 구축하기 전에 "고도 엔진 소스 빌드하기"와 같이 스콘을 통한 소스 코드 빌드를 성공적으로 마쳐야 한다. 위의 그림처럼 scons 소스 빌드 명령 뒤에 "vsproj=yes"를 붙여주면 비주얼 스튜디오에서 엔진의 소스 코드도 열고 빌드도 할 수 있다. 소스 폴더에 ..
고도 게임 엔진의 매력 중의 하나는 라이선스가 상당히 개방적이라는 점이다. MIT 라이선스를 채용하고 있는데, 이 정도면 거의 자유롭게 코드를 변경해서 배포할 수 있다. 아무리 좋은 소스 코드라 해도 일단, 빌드를 원활하게 수행할 수 있어야 하므로 최신 고도 엔진 소스를 받아서 빌드를 하기로 했다. 리눅스 시스템에서 크로스 컴파일로 윈도우용 고도를 빌드할 수도 있지만 윈도우 시스템에서 윈도우용 고도를 빌드한다. ■ 소스 내려받기 위의 그림처럼 git clone https://github.com/godotengine/godot.git을 수행하여 고도 최신 코드를 내려받는다. 만약 안정화 버전으로 작업하려면 git clone https://github.com/godotengine/godot.git -b 3...
요즘 많이 사용하는 프로그래밍 언어를 접하다 보면 무엇보다 매력적인 것이 사전 타입의 지원이다. 키 값에 따라 다양한 타입의 값을 가질 수 있고 위의 color 항목들처럼 사전 속에 사전 타입을 가질 수 있다. 사전 상수는 위의 예제처럼 {중괄호} 속에 키:값의 목록을 기술하면 된다. 빈 사전 타입을 선언하려면 var adic = {}와 같이 기술하면 된다. 중괄호 속에 키 = 값의 목록으로 기술하는 방법도 있는데 이 경우 키는 따옴표를 붙이지 않으며 자동으로 문자열 타입의 키로 간주된다. 사전 타입 변수는 키 값을 가지고 개별 항목에 접근할 수 있으며 해당 키가 존재하는지 여부는 has() 메서드로 확인할 수 있다. 항목을 추가하는 방법은 키값으로 지정하는 항목에 단순 대입하면 기존에 존재하는 키라면 ..
배열은 프로그래밍 과정에서 없어서는 안 될 핵심 요소이다. 다른 프로그래밍 언어와 아주 다른 점이 하나 있는데, 대부분의 언어는 배열의 요소들은 동일한 데이터 타입만 허용한다. 그러나, 고도 스크립트에서는 배열의 요소들 간에 데이터 타입이 서로 달라도 된다는 점이다. 첫 번째 요소는 스트링, 두 번째 요소는 정수 타입, 세 번째 요소는 실수 타입으로 저장할 수도 있다. 배열 선언은 위 예제처럼 []로 빈 배열을 선언할 수 있다. 배열 크기가 고정된 것이 아니므로 배열 크기를 지정할 필요가 없다. 예제처럼 배열. append()로 배열 끝에 항목을 추가할 수 있다. 배열.insert()로 특정 위치를 지정하여 항목을 삽입할 수도 있다. 배열. size()로 확인할 수 있는 배열 크기 내에서 배열 첨자를 활..
위의 그림은 고도 스크립트에서 파일 클래스를 사용하는 대표적인 사례로 클래스 인스턴스를 만들고, 파일을 열고, 작업 후 닫는 전형적인 과정을 거친다. 사용할 수 있는 다양한 메서드는 다음과 같다. 파일 읽기 및 쓰기는 UTF-8 인코딩으로 처리한다. ■ 열기, 닫기 Error open ( String path, ModeFlags flags ) ☞ 정상시 OK 리턴, READ/WRITE/READ_WRITE/WRITE_READ(파일 존재하면 삭제함) 모드 사용 가능 Error open_compressed ( String path, ModeFlags mode_flags, CompressionMode compression_mode=0 ) ☞ 압축된 파일 열기, 단 고도에서 저장한 파일만 읽기 가능. 압축 방식은..
게임 개발이나 앱 개발이나 컴퓨팅 분야에서는 따라 하기 만큼 좋은 학습 방법이 없다. 체계적인 이해가 필요한 경우가 분명히 있지만, 초보자에게 일단 따라 하고 고쳐 가면서 눈에 보이는 결과물로 이해를 높이는 방법은 좋은 학습 방법임에 틀림없다. 앞으로 따라 하면서 활용하고 학습할 오픈 소스 고도 프로젝트들을 정리해 본다. ☞ 고도 데모 프로젝트 https://github.com/godotengine/godot-demo-projects 고도에서 기본적으로 제공하고 있는 데모 프로젝트들. >2D:bullet_shower, dodge_the_creeps, finite_state_machine, gd_paint, hdr, hexagonal_map, instancing, isometric, kinematic_ch..
듀오링고로 스페인어를 익히는 방법은 한국어 이용자가 아니라 영어 사용자가 스페인어를 공부하는 방식으로 진행해야 한다. 듀오링고 개편 이후 그냥 지나왔던 유닛별 가이드북을 정리해 본다. 물론 듀오링고 사이트에서 직접 발음을 들으며 연습하는 것이 최상이다. ■ 기본 문장 만들기 Un niño come manzanas. 한 소년이 사과를 먹는다. Una niña bebe agua. 한 소녀가 물을 마신다. La mujer bebe leche. 여성이 우유를 마신다. El hombre come pan. 남자가 빵을 먹는다. ¿Tú comes pan? 너 빵 먹니? Sí, yo como pan. 응, 나 빵 먹어. ■ 명사의 성별 스페인어에서 모든 명사는 성별을 갖는데, 통상 -o로 끝나면 남성형, -a로 끝나면..
"리듬 게임 분석하기" 글에 이어서 여러 가지 기술적 요소를 살펴보고 있다. 2D 요소든 3D 요소든 움직임을 표시하는 것은 생동감 있는 게임을 만드는 데 있어 핵심적인 요소라 할 수 있다. 이번 포스팅에서는 2D 요소에 대한 움직임을 표현하는 데 사용하는 AnimationPlayer와 Tween 클래스를 다루고자 한다. ■ AnimationPlayer 클래스 위의 그림은 리듬 게임에서 리듬 비트에 따라 표시되었다가 없어지는 터치 및 드래그 게임 요소를 표시하기 위해 AnimationPlayer 클래스를 사용하고 있는 모습이다. 애니메이션 플레이어는 여러가지 자원을 가지고 애니메이션을 수행하는 클래스로 인스펙터 창에 있는 대부분의 요소에 대해서 애니메이션이 가능하다. 트윈의 경우에도 애니메이션 플레이어가..