728x90
반응형
Godot 엔진은 가볍고 강력한 오픈 소스 게임 엔진으로, 2D 및 3D 게임 개발에 모두 적합한 도구를 제공합니다. 이번 예제에서는 간단한 2D 플랫폼 게임을 개발하여 Godot의 기본 사용법을 익히는 과정을 다룹니다. 이 예제에서는 플레이어 캐릭터가 점프하고, 움직이며, 플랫폼 사이를 이동할 수 있는 게임을 만들어 봅니다.
예제의 목표
- 플레이어 캐릭터 생성
- 기본적인 물리 엔진 설정
- 플랫폼 및 장애물 생성
- 간단한 키보드 입력으로 캐릭터 조작
개발 환경 준비
- Godot Engine 다운로드 및 설치: Godot 다운로드 링크
- Godot 에디터 실행 후 새로운 프로젝트를 생성합니다.
- 프로젝트 이름:
PlatformerGame
- 프로젝트 경로 설정:
C:/YourPath/PlatformerGame
2D
프로젝트 선택 후Create & Edit
클릭
- 프로젝트 이름:
1. 플레이어 캐릭터 생성하기
새로운 씬 생성:
- Scene -> New Scene 클릭
- 노드 추가 (
+
버튼) ->KinematicBody2D
선택 (2D 물리 엔진의 주체가 되는 노드)
플레이어 노드 설정:
KinematicBody2D
이름을Player
로 변경- 자식 노드 추가 (
+
버튼) ->Sprite
추가 (플레이어의 시각적 표현) Sprite
노드를 선택한 후Texture
속성에 플레이어 이미지를 드래그하여 추가 (res://assets/player.png
)
충돌 영역 설정:
Player
노드에 또 다른 자식 노드 추가 ->CollisionShape2D
선택CollisionShape2D
의Shape
속성에서RectangleShape2D
를 선택하고, 크기를 캐릭터 크기에 맞게 조정
스크립트 작성:
Player
노드를 선택한 후 스크립트 추가 (Attach Script
) 버튼 클릭- 스크립트 이름을
Player.gd
로 설정하고 아래 코드를 작성:
extends KinematicBody2D
# 속도 및 중력 변수 정의
var velocity = Vector2()
var speed = 200
var gravity = 500
var jump_speed = -300
# 입력 제어 함수
func get_input():
velocity.x = 0
if Input.is_action_pressed("ui_right"):
velocity.x += speed
if Input.is_action_pressed("ui_left"):
velocity.x -= speed
# 물리 엔진과의 상호작용 정의
func _physics_process(delta):
get_input()
velocity.y += gravity * delta
if Input.is_action_just_pressed("ui_up") and is_on_floor():
velocity.y = jump_speed
velocity = move_and_slide(velocity, Vector2.UP)
- 키보드 매핑:
Project
->Project Settings
->Input Map
탭으로 이동ui_right
,ui_left
,ui_up
에 각각 오른쪽 화살표, 왼쪽 화살표, 위쪽 화살표 키를 할당
2. 플랫폼 생성하기
새로운 씬 생성:
- Node2D 노드를 루트로 설정한 후
Platform
이름으로 씬을 저장 (Save Scene As
) Node2D
의 자식 노드로StaticBody2D
추가StaticBody2D
의 자식 노드로Sprite
추가Sprite
의Texture
속성에res://assets/platform.png
이미지 추가
- Node2D 노드를 루트로 설정한 후
충돌 설정:
StaticBody2D
의 자식 노드로CollisionShape2D
추가CollisionShape2D
의Shape
속성에서RectangleShape2D
선택- 플랫폼 이미지 크기에 맞게
RectangleShape2D
의 크기 조정
플랫폼 배치:
- 메인 씬 (
Main.tscn
)을 열고Platform
씬을 드래그하여 여러 개의 플랫폼을 배치
- 메인 씬 (
3. 게임 환경 구성
메인 씬 설정:
Main
씬을 생성한 후,Node2D
를 루트 노드로 설정Player
씬을 메인 씬에 드래그하여 추가Platform
씬들을 적절한 위치에 배치하여 캐릭터가 점프하고 이동할 수 있는 경로 생성
카메라 설정:
Player
노드에 자식 노드로Camera2D
추가Current
속성을 체크하여 플레이어의 움직임에 따라 화면이 이동하도록 설정
4. 게임 테스트 및 디버깅
- F5 키를 눌러 게임을 실행하고, 플레이어가 올바르게 움직이고 점프하는지 확인합니다.
- 문제가 있다면, 콘솔 창에서 오류 메시지를 확인하고 필요한 부분을 수정하세요.
추가 기능 구현 아이디어
적 캐릭터 추가:
- 적 캐릭터를
RigidBody2D
또는KinematicBody2D
로 생성하고, 간단한 AI 스크립트를 추가하여 플레이어를 추적하게 만듭니다.
- 적 캐릭터를
아이템 및 점수 시스템:
- 수집 가능한 아이템(예: 동전)을 생성하고, 플레이어가 아이템을 수집할 때마다 점수를 증가시키는 시스템을 구현해 보세요.
배경 음악 및 효과음:
- 배경 음악(
AudioStreamPlayer
) 및 효과음(AudioStreamPlayer2D
)을 추가하여 게임에 더 생동감을 부여합니다.
- 배경 음악(
마무리
이 예제에서는 Godot 엔진을 사용하여 기본적인 2D 플랫폼 게임을 제작하는 방법을 배웠습니다. 이번 튜토리얼을 통해 Godot의 기본적인 노드 구조와 물리 엔진 사용법, 그리고 간단한 스크립팅 기법을 이해할 수 있었습니다. 다음 단계로는 더 복잡한 AI나 애니메이션 시스템을 추가하여 게임의 완성도를 높여 보세요!
728x90
반응형
LIST
'게임개발 > 고도엔진' 카테고리의 다른 글
맥에서 고도 엔진(Android 빌드용) 자바(JDK) 설치 방법 (1) | 2025.02.11 |
---|---|
고도 엔진 프로젝트를 안드로이드로 배포하는 방법 (1) | 2025.02.11 |
Godot Engine 시작하기: 초보자를 위한 가이드 (9) | 2024.10.07 |