<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ゲーム開発 on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/%E3%82%B2%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA/</link>
        <description>Recent content in ゲーム開発 on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sun, 17 May 2026 12:37:30 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/%E3%82%B2%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Godot ゲーム開発入門：ノード、シーン、最初の 2D ミニゲームまで</title>
        <link>https://knightli.com/ja/2026/05/17/godot-game-development-beginner-guide/</link>
        <pubDate>Sun, 17 May 2026 12:37:30 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/17/godot-game-development-beginner-guide/</guid>
        <description>&lt;p&gt;Godot はオープンソースのゲームエンジンで、2D ゲーム、インディーゲームのプロトタイプ、中規模 3D プロジェクトに向いています。&lt;/p&gt;
&lt;p&gt;軽量で起動が速く、ノードとシーンの仕組みが分かりやすいのが特徴です。初心者には Unity より入りやすく、個人開発者にも扱いやすいエンジンです。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;p&gt;Godot 入門では、最初から全機能を学ぼうとしないことが大切です。&lt;/p&gt;
&lt;p&gt;おすすめの順序は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず 2D から始める。&lt;/li&gt;
&lt;li&gt;ノードとシーンを理解する。&lt;/li&gt;
&lt;li&gt;最初は GDScript を使う。&lt;/li&gt;
&lt;li&gt;開始、失敗、リスタートがある小さなゲームを作る。&lt;/li&gt;
&lt;li&gt;その後でアニメーション、音、UI、ステージ、エクスポートを足す。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;小さなゲームを 1 本完成させる方が、断片的なチュートリアルを大量に見るより効果的です。&lt;/p&gt;
&lt;h2 id=&#34;godot-に向いている人&#34;&gt;Godot に向いている人
&lt;/h2&gt;&lt;p&gt;Godot は、ゲーム開発をゼロから学びたい人、2D インディーゲームを作りたい人、すばやくプロトタイプを作りたい人、大きな商用エンジンの複雑なワークフローを避けたい人に向いています。&lt;/p&gt;
&lt;p&gt;大型商用パイプライン、豊富なアセットストア、モバイル広告 SDK、高品質 3D 表現が必要なら Unity や Unreal の方が成熟しています。ただし学習と個人制作には Godot で十分です。&lt;/p&gt;
&lt;h2 id=&#34;インストールとプロジェクト作成&#34;&gt;インストールとプロジェクト作成
&lt;/h2&gt;&lt;p&gt;Godot は公式サイトからダウンロードし、解凍して実行するだけです。&lt;/p&gt;
&lt;p&gt;最初のプロジェクトでは、デフォルト renderer、英語名、シンプルなパス、Git 管理をおすすめします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;first-godot-game
&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;p&gt;エディタでは Scene、FileSystem、Inspector、Script、2D / 3D ビューをまず覚えます。&lt;/p&gt;
&lt;h2 id=&#34;ノードとシーン&#34;&gt;ノードとシーン
&lt;/h2&gt;&lt;p&gt;Godot の中心概念はノードとシーンです。&lt;/p&gt;
&lt;p&gt;代表的なノード：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Node2D&lt;/code&gt;：2D オブジェクトの基礎。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sprite2D&lt;/code&gt;：画像表示。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CollisionShape2D&lt;/code&gt;：衝突形状。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CharacterBody2D&lt;/code&gt;：操作可能なキャラクター。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Camera2D&lt;/code&gt;：2D カメラ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AudioStreamPlayer&lt;/code&gt;：音声再生。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Label&lt;/code&gt;：文字表示。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;シーンはノードの組み合わせです。プレイヤー、敵、ステージをそれぞれシーンにできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Player (CharacterBody2D)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Sprite2D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── CollisionShape2D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── Camera2D
&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;p&gt;最初から RPG、オープンワールド、オンラインゲームを作らない方がよいです。&lt;/p&gt;
&lt;p&gt;おすすめは 2D 回避ゲームです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プレイヤーが上下左右に動く。&lt;/li&gt;
&lt;li&gt;敵が画面端から出る。&lt;/li&gt;
&lt;li&gt;敵に触れると失敗。&lt;/li&gt;
&lt;li&gt;生存時間がスコア。&lt;/li&gt;
&lt;li&gt;開始画面、ゲームオーバー、リスタートがある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これだけで入力、移動、衝突、生成、UI、Timer、音、シーン再読み込みを学べます。&lt;/p&gt;
&lt;h2 id=&#34;プレイヤー移動&#34;&gt;プレイヤー移動
&lt;/h2&gt;&lt;p&gt;プレイヤーには &lt;code&gt;CharacterBody2D&lt;/code&gt; を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;extends&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;CharacterBody2D&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@export&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;speed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;300.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;_physics_process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;delta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Vector2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ZERO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Input&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;get_axis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;move_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;move_right&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Input&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;get_axis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;move_up&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;move_down&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;normalized&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;velocity&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;direction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;speed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;move_and_slide&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&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;p&gt;入力 action：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_left  -&amp;gt; A / Left
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_right -&amp;gt; D / Right
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_up    -&amp;gt; W / Up
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;move_down  -&amp;gt; S / Down
&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;p&gt;キーコードを直接書かず、action を使うとゲームパッドやキー変更に対応しやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;衝突と物理&#34;&gt;衝突と物理
&lt;/h2&gt;&lt;p&gt;よく使うノード：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CollisionShape2D&lt;/code&gt;：衝突範囲。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Area2D&lt;/code&gt;：重なり検出。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CharacterBody2D&lt;/code&gt;：操作キャラクター。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RigidBody2D&lt;/code&gt;：物理で動く物体。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;StaticBody2D&lt;/code&gt;：壁や地面。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自分で移動を制御するなら &lt;code&gt;CharacterBody2D&lt;/code&gt;、接触検出だけなら &lt;code&gt;Area2D&lt;/code&gt; が分かりやすいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;_on_body_entered&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Player&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nf&#34;&gt;get_tree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;reload_current_scene&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&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;p&gt;シーンは prefab のように実体化できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@export&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enemy_scene&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;PackedScene&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;spawn_enemy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enemy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enemy_scene&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;instantiate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;enemy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;position&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Vector2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;800&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;randf_range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;550&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;add_child&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;enemy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&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;p&gt;&lt;code&gt;Timer&lt;/code&gt; と組み合わせれば、一定間隔で敵を生成できます。&lt;/p&gt;
&lt;h2 id=&#34;uiスコア音&#34;&gt;UI、スコア、音
&lt;/h2&gt;&lt;p&gt;UI は &lt;code&gt;Control&lt;/code&gt; 系ノードを使います。&lt;code&gt;CanvasLayer&lt;/code&gt;、&lt;code&gt;Label&lt;/code&gt;、&lt;code&gt;Button&lt;/code&gt;、&lt;code&gt;Panel&lt;/code&gt; がよく使われます。&lt;/p&gt;
&lt;p&gt;スコア例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;score&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;_process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;delta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;score&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;delta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;$CanvasLayer/ScoreLabel&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;score&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&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;p&gt;音は &lt;code&gt;AudioStreamPlayer&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript&#34; data-lang=&#34;gdscript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;$HitSound&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;play&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&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;p&gt;ゲームは機能だけでなく、音、点滅、揺れ、ボタン状態などの反応で気持ちよくなります。&lt;/p&gt;
&lt;h2 id=&#34;プロジェクト構成&#34;&gt;プロジェクト構成
&lt;/h2&gt;&lt;p&gt;最初から整理しておくと楽です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;res://
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── scenes/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── scripts/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── assets/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── ui/
&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;p&gt;シーン、スクリプト、画像・音声、UI を分けておきます。&lt;/p&gt;
&lt;h2 id=&#34;よくある失敗&#34;&gt;よくある失敗
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;ノード種類を間違える。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CollisionShape2D&lt;/code&gt; を忘れる。&lt;/li&gt;
&lt;li&gt;キーを直接書く。&lt;/li&gt;
&lt;li&gt;すべてを &lt;code&gt;Main.gd&lt;/code&gt; に詰め込む。&lt;/li&gt;
&lt;li&gt;最初のゲームを大きくしすぎる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;小さくても完成したゲームの方が、途中で止まった大作より価値があります。&lt;/p&gt;
&lt;h2 id=&#34;学習順序&#34;&gt;学習順序
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;エディタ基本操作。&lt;/li&gt;
&lt;li&gt;ノードとシーン。&lt;/li&gt;
&lt;li&gt;GDScript。&lt;/li&gt;
&lt;li&gt;入力 action。&lt;/li&gt;
&lt;li&gt;2D 移動。&lt;/li&gt;
&lt;li&gt;衝突と &lt;code&gt;Area2D&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Timer&lt;/code&gt; と生成。&lt;/li&gt;
&lt;li&gt;UI とスコア。&lt;/li&gt;
&lt;li&gt;音とアニメーション。&lt;/li&gt;
&lt;li&gt;デスクトップまたは Web へのエクスポート。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Godot 入門の鍵は、全機能を覚えることではなく、ゲームの組み立て方を理解することです。ノードがシーンを作り、シーンがゲームを作り、スクリプトが動作を与え、シグナルがイベントをつなぎます。&lt;/p&gt;
&lt;p&gt;まずは 2D ミニゲームを完成させましょう。移動、衝突、UI、音、リスタートまでできれば、次に TileMap、セーブ、状態機械、3D、Shader、エクスポート最適化へ進めます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 FlashでGodotゲームDemo：数セントでどこまで動くのか</title>
        <link>https://knightli.com/ja/2026/05/06/deepseek-v4-flash-godot-game-demo/</link>
        <pubDate>Wed, 06 May 2026 09:22:18 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/06/deepseek-v4-flash-godot-game-demo/</guid>
        <description>&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; をGodotゲームDemoの開発に使うと、どこまでできるのか。&lt;/p&gt;
&lt;p&gt;焦点ははっきりしている。実行でき、観察でき、物理効果を備えた小さなGodot Demoを作れるのかという点だ。&lt;/p&gt;
&lt;p&gt;結論から言えば、動く。商用レベルの品質ではないが、ゲームプレイのプロトタイプや物理インタラクションDemoとしては十分に使える。さらに重要なのは、コストが非常に低く、アイデアの素早い検証に向いていることだ。&lt;/p&gt;
&lt;h2 id=&#34;demoの表現&#34;&gt;Demoの表現
&lt;/h2&gt;&lt;p&gt;このDemoの中心は物理インタラクションだ。&lt;/p&gt;
&lt;p&gt;直感的に確認できる効果は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ロープを切断できる。&lt;/li&gt;
&lt;li&gt;箱が地面に落ちる。&lt;/li&gt;
&lt;li&gt;質量を大きくすると、箱の衝突がより激しくなる。&lt;/li&gt;
&lt;li&gt;ロープには比較的はっきりした弾性がある。&lt;/li&gt;
&lt;li&gt;摩擦と弾性を調整すると、箱に明確な滑りや反発が出る。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;見た目の挙動からすると、これは単に「Godotスクリプトを数本生成した」だけではない。実行でき、物理挙動を観察できる小型プロトタイプになっている。&lt;/p&gt;
&lt;h2 id=&#34;使える度合い&#34;&gt;使える度合い
&lt;/h2&gt;&lt;p&gt;このDemoの価値は「動く、見られる、直せる」ことにある。完全なゲームでも、そのまま商用化できるプロジェクトでもないが、いくつかの点は示している。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; はGodot Demoの基本目標を理解できる。&lt;/li&gt;
&lt;li&gt;AI Agentは要求を実行可能なプロジェクトに変換できる。&lt;/li&gt;
&lt;li&gt;Godotの物理インタラクションのような非Web系タスクも、低コストなプロトタイプ段階に入っている。&lt;/li&gt;
&lt;li&gt;個人開発者にとって、アイデアを素早く「見えるもの」に変えられる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;正式なゲームを作るにはもちろん不十分だ。しかし「この遊びは面白いのか」「物理効果はだいたい作れるのか」を検証する目的なら、このDemoはすでに使える。&lt;/p&gt;
&lt;h2 id=&#34;コスト面の意味&#34;&gt;コスト面の意味
&lt;/h2&gt;&lt;p&gt;注目すべきなのは、画面がどれだけ精緻かではなく、コストだ。&lt;/p&gt;
&lt;p&gt;Godotの物理Demoが数セント程度のモデルコストで実行可能な形になるなら、その意味はプロのゲーム開発を置き換えることではない。プロトタイプの試行錯誤コストを大きく下げることにある。&lt;/p&gt;
&lt;p&gt;以前なら、小さなゲームアイデアを検証するだけでも、Godotを理解し、スクリプトを書き、シーンを組み、物理パラメータを調整する必要があった。いまはAI Agentに実行可能な版をまず作らせ、人間が方向性を判断できる。&lt;/p&gt;
&lt;p&gt;インディー開発者にとって、この種の低コストな試行は役に立つ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ゲームプレイのコンセプトを素早く検証する。&lt;/li&gt;
&lt;li&gt;他人に見せる一時的なDemoを生成する。&lt;/li&gt;
&lt;li&gt;Godot APIや物理システムを探索する。&lt;/li&gt;
&lt;li&gt;アイデアを実行可能な初版プロジェクトに変える。&lt;/li&gt;
&lt;li&gt;方向性が固まる前の手書きコードコストを減らす。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;deepseek-v4-flashの表現&#34;&gt;DeepSeek V4 Flashの表現
&lt;/h2&gt;&lt;p&gt;注目したいのは、使っているのが &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; であり、より高価で重いフラッグシップモデルではない点だ。&lt;/p&gt;
&lt;p&gt;低コストなプロトタイプという位置づけでは、十分よく機能している。最強でも、最も安定しているわけでも、プロダクション工程の納品に最適なモデルでもないが、予算に敏感で、方向性を素早く試したい場面では魅力がある。&lt;/p&gt;
&lt;h2 id=&#34;向いている場面&#34;&gt;向いている場面
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash + Agent + Godot&lt;/code&gt; がより向いているのは、次のようなタスクだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小規模なゲームプレイプロトタイプ。&lt;/li&gt;
&lt;li&gt;物理効果Demo。&lt;/li&gt;
&lt;li&gt;UIまたはインタラクションのコンセプト検証。&lt;/li&gt;
&lt;li&gt;教材用サンプル。&lt;/li&gt;
&lt;li&gt;Godotプロジェクト構造の理解補助。&lt;/li&gt;
&lt;li&gt;実行可能な初版プロジェクトの生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、次のようなタスクを直接任せるのには向いていない。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大規模なゲームアーキテクチャ。&lt;/li&gt;
&lt;li&gt;複雑なキャラクターコントローラー。&lt;/li&gt;
&lt;li&gt;ネットワーク同期。&lt;/li&gt;
&lt;li&gt;商用プロジェクトの中核コード。&lt;/li&gt;
&lt;li&gt;高精度な物理シミュレーション。&lt;/li&gt;
&lt;li&gt;人間のテストを経ない自動コミット。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;言い換えれば、第一稿や実験場には向いているが、プロダクション工程の責任者には向いていない。&lt;/p&gt;
&lt;h2 id=&#34;何を示しているのか&#34;&gt;何を示しているのか
&lt;/h2&gt;&lt;p&gt;これは、AIコーディングがWeb、スクリプト、バックエンドAPIから、ゲーム開発やインタラクティブプロトタイピングへ広がり続けていることを示している。&lt;/p&gt;
&lt;p&gt;かつてゲーム開発の参入障壁は高かった。特にエンジン、スクリプト、アセット管理、物理システムが絡み合うと、初心者は詰まりやすい。いまはモデルとAgentツールで先にプロジェクトを組み立て、開発者はゲーム性の判断や効果の調整に集中しやすくなっている。&lt;/p&gt;
&lt;p&gt;この変化は、主に三つの影響をもたらす可能性がある。&lt;/p&gt;
&lt;p&gt;第一に、ゲームプロトタイプが安くなる。多くのアイデアは完全開発まで待たずに、まず実行可能なDemoとして検証できる。&lt;/p&gt;
&lt;p&gt;第二に、インディー開発者がより試しやすくなる。Godotを知らない人でも、AIの助けでプロジェクト構造と基本フローに触れられる。&lt;/p&gt;
&lt;p&gt;第三に、モデルの安定性がより重要になる。ゲーム開発はコードが動くだけでは足りない。効果が自然で、操作感がまともで、パラメータを制御できる必要がある。今後、実際の画面や実行状態とよりうまく結びつけられるモデルほど、この種のタスクに向く。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 FlashでGodot Demoを作ることは、一言で言えばこうだ。&lt;strong&gt;完璧ではないが、十分安く、十分速く、プロトタイプには十分向いている。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;商用ゲームにはまだ遠いが、非常に低いコストで小さなゲームアイデアを検証する目的なら、すでに価値がある。&lt;/p&gt;
&lt;p&gt;個人開発者にとって現実的な使い方は、ゲーム全体をAIに任せることではない。まずAIに動く工程を出させ、その後の判断、取捨選択、磨き込みを人間が担当することだ。この使い方なら、DeepSeek V4 Flashのような低コストモデルはかなり魅力的になる。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
