게임 만들기 - Godot 기초 배우기

2026-07-16 — Godot 기초 학습 정리 오늘 한 것 Godot 4.7 설치 (Homebrew) 첫 프로젝트 세팅, 씬(.tscn)과 스크립트(.gd) 연결 확인 클릭하면 자산이 오르는 간단한 UI 예제 제작 자산이 랜덤(50/50)으로 오르내리는 슬롯머신으로 발전 씬 전환(은행 페이지) + 전역 상태(Autoload) 도입 상태 메시지(“돈을 벌었다!” / “돈을 잃었다!”) 표시 추가 tutorials/, docs/ 폴더로 프로젝트 구조 정리 1. 스크립트와 씬 씬(Scene): 화면에 나타나는 것. 버튼, 라벨 등을 배치해두는 선언적 파일(.tscn). 스크립트(Script): 동작, 변수, 로직 등 실제 코드(.gd). 2. 노드 vs 변수 변수: 값 하나를 담는 상자. 노드: 객체(라벨, 버튼, 관리자 등). 따라서 자신만의 속성과 함수를 가짐. 씬 정의 파일(.tscn) 내에 정의되어 있음. Autoload: 노드를 전역으로 등록. project.godot 파일에서 등록 가능. 3. Autoload (싱글톤) 씬이 바뀌어도 사라지지 않는 전역 저장소. 실제 정체는 전역 노드. 전역 변수는 전역 노드의 속성으로 관리되는 것. 4. 멀티 씬 씬이 여러 개면 씬끼리 변수를 공유해야 할 수 있음. 전역 노드를 하나 설정하고, 그 노드의 속성들을 전역 변수로 쓰는 방식을 이용 (= GameState.gd를 Autoload로 등록해서 GameState.money를 여러 씬이 공유). 5. 씬 전환 1 get_tree().change_scene_to_file("res://tutorials/scenes/Bank.tscn") get_tree(): 씬 관리자(SceneTree 객체) 반환. 씬 관련 함수는 씬 관리자만 호출할 수 있음 (change_scene_to_file()은 SceneTree의 메서드이므로 get_tree()로 그 객체를 먼저 가져와야 호출 가능). 6. $이름 get_node("이름")의 축약형으로, 이름이 ‘이름’인 노드를 찾아오라는 검색 명령임 (변수 선언이 아님). 나중에 노드 참조가 많아지면 아래처럼 해두면 자동완성/타입 체크가 편함: 1 @onready var status_label: Label = $StatusLabel 프로젝트 구조 1 2 3 4 5 6 7 8 tutorials/ ├── scenes/ │ ├── Main.tscn # 자산 표시, 돈넣기(슬롯머신), 은행가기 버튼 │ └── Bank.tscn # 자산 표시, 대출받기, 돌아가기 버튼 └── scripts/ ├── Main.gd ├── Bank.gd └── GameState.gd # Autoload로 등록된 전역 자산 상태 실습 Godot 에디터 사용법. 아래 파일 시스템에서 Scene을 추가 후 Command + b로 디버거 실행 ...

2026년 7월 16일 · 2 분 · 배준수