<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Godot on Importunate</title>
    <link>https://importunate-dev.github.io/series/godot/</link>
    <description>Recent content in Godot on Importunate</description>
    <generator>Hugo</generator>
    <language>ko</language>
    <lastBuildDate>Thu, 16 Jul 2026 00:00:00 +0900</lastBuildDate>
    <atom:link href="https://importunate-dev.github.io/series/godot/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>게임 만들기 - Godot 기초 배우기</title>
      <link>https://importunate-dev.github.io/posts/2026-07-16-game_maker/</link>
      <pubDate>Thu, 16 Jul 2026 00:00:00 +0900</pubDate>
      <guid>https://importunate-dev.github.io/posts/2026-07-16-game_maker/</guid>
      <description>&lt;h1 id=&#34;2026-07-16--godot-기초-학습-정리&#34;&gt;2026-07-16 — Godot 기초 학습 정리&lt;/h1&gt;
&lt;h2 id=&#34;오늘-한-것&#34;&gt;오늘 한 것&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Godot 4.7 설치 (Homebrew)&lt;/li&gt;
&lt;li&gt;첫 프로젝트 세팅, 씬(&lt;code&gt;.tscn&lt;/code&gt;)과 스크립트(&lt;code&gt;.gd&lt;/code&gt;) 연결 확인&lt;/li&gt;
&lt;li&gt;클릭하면 자산이 오르는 간단한 UI 예제 제작&lt;/li&gt;
&lt;li&gt;자산이 랜덤(50/50)으로 오르내리는 슬롯머신으로 발전&lt;/li&gt;
&lt;li&gt;씬 전환(은행 페이지) + 전역 상태(Autoload) 도입&lt;/li&gt;
&lt;li&gt;상태 메시지(&amp;ldquo;돈을 벌었다!&amp;rdquo; / &amp;ldquo;돈을 잃었다!&amp;rdquo;) 표시 추가&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tutorials/&lt;/code&gt;, &lt;code&gt;docs/&lt;/code&gt; 폴더로 프로젝트 구조 정리&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-스크립트와-씬&#34;&gt;1. 스크립트와 씬&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;씬(Scene)&lt;/strong&gt;: 화면에 나타나는 것. 버튼, 라벨 등을 배치해두는 선언적 파일(&lt;code&gt;.tscn&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;스크립트(Script)&lt;/strong&gt;: 동작, 변수, 로직 등 실제 코드(&lt;code&gt;.gd&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-노드-vs-변수&#34;&gt;2. 노드 vs 변수&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;변수&lt;/strong&gt;: 값 하나를 담는 상자.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;노드&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;객체(라벨, 버튼, 관리자 등). 따라서 자신만의 속성과 함수를 가짐.&lt;/li&gt;
&lt;li&gt;씬 정의 파일(&lt;code&gt;.tscn&lt;/code&gt;) 내에 정의되어 있음.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autoload&lt;/strong&gt;: 노드를 전역으로 등록. &lt;code&gt;project.godot&lt;/code&gt; 파일에서 등록 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-autoload-싱글톤&#34;&gt;3. Autoload (싱글톤)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;씬이 바뀌어도 사라지지 않는 전역 저장소.&lt;/li&gt;
&lt;li&gt;실제 정체는 &lt;strong&gt;전역 노드&lt;/strong&gt;. 전역 변수는 전역 노드의 속성으로 관리되는 것.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;4-멀티-씬&#34;&gt;4. 멀티 씬&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;씬이 여러 개면 씬끼리 변수를 공유해야 할 수 있음.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;전역 노드를 하나 설정하고, 그 노드의 속성들을 전역 변수로 쓰는 방식&lt;/strong&gt;을 이용
(= &lt;code&gt;GameState.gd&lt;/code&gt;를 Autoload로 등록해서 &lt;code&gt;GameState.money&lt;/code&gt;를 여러 씬이 공유).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;5-씬-전환&#34;&gt;5. 씬 전환&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;
&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;get_tree&lt;/span&gt;()&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;change_scene_to_file&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;res://tutorials/scenes/Bank.tscn&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_tree()&lt;/code&gt;: 씬 관리자(&lt;code&gt;SceneTree&lt;/code&gt; 객체) 반환.&lt;/li&gt;
&lt;li&gt;씬 관련 함수는 씬 관리자만 호출할 수 있음 (&lt;code&gt;change_scene_to_file()&lt;/code&gt;은
&lt;code&gt;SceneTree&lt;/code&gt;의 메서드이므로 &lt;code&gt;get_tree()&lt;/code&gt;로 그 객체를 먼저 가져와야 호출 가능).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;6-이름&#34;&gt;6. &lt;code&gt;$이름&lt;/code&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_node(&amp;quot;이름&amp;quot;)&lt;/code&gt;의 축약형으로, 이름이 &amp;lsquo;이름&amp;rsquo;인 노드를 찾아오라는 &lt;strong&gt;검색 명령&lt;/strong&gt;임
(변수 선언이 아님).&lt;/li&gt;
&lt;li&gt;나중에 노드 참조가 많아지면 아래처럼 해두면 자동완성/타입 체크가 편함:
&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;
&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@onready&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; status_label: &lt;span style=&#34;color:#a6e22e&#34;&gt;Label&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$StatusLabel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;프로젝트-구조&#34;&gt;프로젝트 구조&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;
&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;6
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;7
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tutorials&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;├──&lt;/span&gt; scenes&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;├──&lt;/span&gt; Main&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;tscn   &lt;span style=&#34;color:#75715e&#34;&gt;# 자산 표시, 돈넣기(슬롯머신), 은행가기 버튼&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; Bank&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;tscn   &lt;span style=&#34;color:#75715e&#34;&gt;# 자산 표시, 대출받기, 돌아가기 버튼&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; scripts&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;├──&lt;/span&gt; Main&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;gd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;├──&lt;/span&gt; Bank&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;gd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; GameState&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;gd   &lt;span style=&#34;color:#75715e&#34;&gt;# Autoload로 등록된 전역 자산 상태&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;실습&#34;&gt;실습&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Godot 에디터 사용법. 아래 파일 시스템에서 Scene을 추가 후 Command + b로 디버거 실행&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt=&#34;godot 에디터 사용법&#34; loading=&#34;lazy&#34; src=&#34;https://cdn.jsdelivr.net/gh/importunate-dev/blog-images/study/gamemaker/1.png&#34;&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
