앞에서 레이 트레이싱에 대해 개념적으로만 간단히 알아봤다. 레이 트레이싱이 현실의 빛을 시뮬레이션 하는 방법이기 때문에, 이론적으로는 가장 명확하고 단순하겠지만, 엄청난 계산량으로 인해 리얼타임 렌더링에서 사용하기엔 제한적이다. 일반적인 리얼타임 렌더링은 두단계로 나뉠 수 있는데, 첫번째로 Geometry Transform들을 통해서 3D 공간의 오브젝트를 스크린 스페이스로 옮겨오면서 어떤 부분들이 보여지는지 판단하는 과정이 필요하고, 두번째로 이렇게 옮겨온 오브젝트를 스크린의 각…
[태그:] godot
Godot 과 Unity에서 사용하는 UI Anchor System
본 내용은 처음 접하는 Godot: Pong 게임을 만들어 보자 #4 에서 독립적인 내용을 추출한 포스팅 입니다. 고정된 해상도의 스크린이라면 문제가 매우 간단하나, 현실에서는 각종 모니터부터 핸드폰까지 여러 형태의 스크린 사이즈가 존재한다. 앵커 시스템은 가변적인 스크린 또는 부모 컨트롤 사이즈에 대응하기 위한 방법이다. 유니티에서도 이걸 사용하고 있다. 다음 그림을 보자. 그림이 복잡해 보일지 모르겠는데, 간단한 개념이다….
처음 접하는 Godot: Pong 게임을 만들어보자 #5
Pong 게임에 대한 진짜 마지막 포스팅이다. 이번에 할 일은 스코어를 냈을 때, 바로 공이 발사되며 시작되는 문제를 고칠 것이다. 타이머를 추가하여 다음 라운드가 시작되기전에 준비할 시간을 주도록 할 것이다. 타이머(Timer) 게임에서 타이머도 정말 많이 사용하는 기능중 하나다. 하나의 스테이지를 클리어하는데 시간제한이 걸린 경우도 있고, RPG게임들은 각종 스킬들에 쿨타임이 걸려있기도 하다. 지금 만드는 Pong과 같은 아케이드…
처음 접하는 Godot: Pong 게임을 만들어 보자 #4
저번에 남은일이 폴리싱이라고 얘기했었는데, 사실 생각보다 할게 많다. 개발자는 항상 남은일을 추정할 때 이렇게 막연하게 긍정적일 때가 많다. 나처럼… 일정을 산출할 때 항상 경계하자. 어쨌든, 이번에 할 일은 스코어를 기록하고 게임을 재시작 하는 일이다. 스코어 기록하기: Area2D 배치 이걸 하기 위해선 먼저 공이 화면을 벗어났는지 알아야 한다. 여기에 사용되는 노드가 Area2D 이다. Area2D는 영역에 오브젝트가…
처음 접하는 Godot: Pong 게임을 만들어 보자 #3
벽 세우기 저번글에 이어 작업을 계속해보자. PlayerStick은 위아래로 움직이기 시작했지만, 화면 넘어까지 넘어갔었다. 해결 방법은 여러가지가 있겠지만, 나중에 공도 튕겨내야 하기 때문에 위 아래로 벽을 세워보자. Pong Level 씬을 열고 KinematicBody2D를 추가한다. 앞에서 다뤘다시피, CollisionShape2D가 필요하다. 이름을 WallTop으로 바꿔준 후, CollisionShape2D를 자식 노드로 추가한다. CollisionShape2D를 선택한 후, Inspector > Shape 항목에서 RectangleShape2D를 선택해준다. 여기까지 하면,…