「作りたいゲーム」と「売れるゲーム」を両立する方法

ゲーム開発においてしばしば語られるのが、「作りたいゲームを作るべきか」それとも「売れるゲームを作るべきか」という対立です。 automaton-media.com しかし実際には、この二つは敵対するものではなく、異なる出発点をもつ創作の軸です。 それぞれの特徴…

優れたゲームのアイデアを見つける方法

今回は「How to find amazing game ideas (素晴らしいゲームのアイデアを見つける方法)」というが動画がゲームデザインに役立つのでその内容をまとめたいと思います。 動画の概要 この動画は大まかに以下の3つのパートに整理できます。 ゲームアイデアの発想…

【Godot4.x】埋め込みゲームビューの使い方

今回はGodot4.4 (macOSは4.5) から実装された「埋め込みゲームビュー」の使い方を説明します。 埋め込みゲームビューとは 埋め込みゲームビュー (Embed Game View) は、Godotエディタから実行したときに表示されるゲーム画面のことで、埋め込みゲームビュー…

【Godot】敵の移動アルゴリズム

今回はGodot Engineで敵の移動アルゴリズムを作る方法を解説します。 追跡 まずはプレイヤーの方向に愚直に向かってくる方法です。 このパターンは近距離攻撃と得意とする敵が使います。 この実装をするのは簡単で、プレイヤーの座標がわかればそこに向かっ…

【Godot4.x】gdscriptを静的型付け言語として使う方法

今回は、gdscript を静的型付け言語(っぽく)使う方法について紹介します。 gdscriptは本来は型を決めずにプログラムを書ける動的型付け言語ですが、書き方や設定方法によってはC#のように型に厳しい書き方ができます。 1. 明示的な型アノテーションを使う …

なぜ96%のインディーゲーム開発は失敗するのか

Why 96% of Indie Games Fail (なぜ96%のインディーゲーム開発は失敗するのか) という動画が面白かったので内容と個人的な感想をまとめておきます。 www.youtube.com 動画の内容 1. 情熱の置き所を間違えている インディーゲーム開発者が、ゲームを作る動機…

【雑記】Suno AI (音楽生成AI) が得意・苦手とする音やジャンル

最近、Suno AIという音楽を生成するAIを使用しているのですが、いくつか試してみて得意な音やジャンル、苦手な音やジャンルがわかってきたのでそれをまとめたいと思います。 Suno AIが苦手とする楽器・シンセ表現 まずは苦手な表現の紹介です。 Suno AIの仕…

【Godot】弾幕2DSTGの基本

今回はGodot Engineで弾幕2DSTGを作るときに知っておきたい基本をまとめておきます。 数学 ベクトル これは2Dゲームを作るときに共通することですが、座標や速度などはベクトルを使います。 ベクトルとは「向きと大きさの2つを同時に持つ量」のことで、物体…

【Godot4.x】AudioStreamGeneratorを使ったサウンドの生成

波形からサウンドを生成する AudioStreamGeneratorというのを使って、簡単な波形を生成するプログラムを書いてみました。 ソースコード ソースコードはGitHubにアップロードしています。 github.com 作成方法 作成方法は「AudioStreamGeneratorリソースを作…

【Godot4.x】フラッピーバードを作るチュートリアル

この記事ではフラッピーバードを作るチュートリアルを紹介します。 プロジェクトの作成 まずはプロジェクトを作成します。 ここでは「FlappyBird」という名前にしました。 まずはゲームのメインとなるシーンを作成します。 「2Dシーン」クリックします。 2D…

なぜゲーム業界はGodotをゲームエンジンとして採用しないのか?

「Why Does the Games Industry Reject Godot?」 (なぜゲーム業界はGodotを拒否するのか?) という動画が面白かったので内容をまとめておきます。 www.youtube.com 動画の主題 この動画内で投稿者は Godot Engineを「個人的に最も気に入っているゲームエンジ…

ChatGPTでメッシュデータを作る方法

今回はChatGPTでメッシュデータを作る方法について紹介します。 ChatGPTでメッシュデータを作る方法 ChatGPTのそのものにメッシュデータを作る機能はないのですが、以下のようなプロンプトを投げるとメッシュデータが作れます。 XXX のメッシュ (obj) を pyt…

【Godot4.x】インタラクティブミュージックの使い方

今回はGodot4.3以降で追加されたインタラクティブミュージックの使い方を説明します。 インタラクティブミュージックとは インタラクティブミュージックを簡単に定義すると、ゲームとの相互作用によって変化するBGMのことです。 具体的には、RPGにおいて街に…

【Godot4.x】オーディオ再生の基本について

今回はGodotにおけるオーディオ再生の基本について書きます。 オーディオ再生までの流れ まずはGodot Engineにおけるオーディオ再生までの流れについて確認しておきます。 DAWなどのサウンド作成ツールでオーディオデータを作成します。そしてそれをGodotで…

PixiEditorの基本的な使い方

この記事では、2Dアートにおける最強ツールを目指している (らしい) PixiEditorの基本的な使い方を説明します。 PixiEditorとは PixiEditorを一言で説明すると、ピクセル アートからベクター、幅広いアニメーション、プロシージャルアートなど、あらゆる種類…

2DSTGを作るときに使えそうなボスの死亡パターンまとめ

アクションやSTGで使えるボスの死亡(爆発)パターンをまとめてみました。 だいぶ前に X (Twitter)にポストしていたのですが、文章化していなかったので改めてまとめておきます。 2DSTGを作るときに使えそうな ボス死亡演出 のパターンをまとめてみました pi…

【Godot4.x】VSCodeと連携する方法

VSCodeの設定 VSCodeのインストール まずはVSCodeをインストールします。 Download Visual Studio Code プラットフォームに合ったインストーラーをダウンロードして、インストールを行います。 拡張機能のインストール 続けて拡張機能をインストールします。…

【雑記】わかりやすいUIのコントラスト比の決め方

UIの色を決めるときにはデザイン的な要素(かっこいい、わかりやすいなど)が重要ですが、それとは別の軸として「コントラスト比」もまた重要であるということを知ったので、それについてのメモ書きとなります。 コントラスト比とは コントラスト比とは明る…

【Godot】Lambda式でキャプチャした変数の値が書き換わらないときの対処方法

Lambda式の使い方で少しハマったので、メモ書きです。 Lambda式でキャプチャした変数の値が書き換わらないときの対処方法 例えば回復アイテムを使用する際、ステータスパラメータによる補正を加えたい場合に、補正の条件が複数あると、foreachで処理をしたい…

【Godot4.x】スイカゲームのアレンジサンプル

スイカゲームのアレンジサンプルを作ったので、簡単に解説する記事となります。 スイカゲームのアレンジサンプル ソースコード ソースコードはGitHubにアップロードしています。 https://github.com/syun77/gd_suikagame MITライセンスなので、基本的に自由…

【Godot4.x】シーン・リソースの指定を文字列以外にする方法

Godotのサンプルコードでは、シーンやリソースのパス指定を文字列にしていることが多いです。例えば以下のようなコードです。 ## なすシーンの読み込み. const NASU_OBJ = preload("res://src/fruit/FruitNasu.tscn") ... # なすの生成 var nasu = NASU_OBJ.…

【Godot4.x】CharacterBody2Dの is_on_floor() と One wayコリジョンの使い方

この記事では、地面への着地判定を行う CharacterBody2Dの is_on_floor() の使い方と、One way 床 (一方通行床) の使い方を解説します。 CharacterBody2D.is_on_floor() の使い方 CharacterBody2Dについて CharacterBody2Dとは、物理エンジンで動作するノー…

【Godot4.x】RigidBody2Dで衝突の検知をする方法

この記事では RigidBody2D で衝突の「検知」をする方法について書きます。 RigidBody2Dで衝突の検知をする方法 デフォルト状態では衝突検知はできない RigidBody2Dはデフォルトでは衝突検知はできないようになっています。(正確にはget_colliding_bodies()…

【Godot4.x】セーブデータの保存方法

このページでは Godot Engine 4.x系で、ゲームデータをセーブ・ロードする方法について説明をします。 セーブデータの保存方法 セーブデータのファイル操作の基礎知識 ファイルの読み込み ファイルの書き込みは以下の記述で行います。 extends Node2D func _…

【Godot4.x】OKダイアログ / YES・NOダイアログの使い方

今回は Godot標準ノードに含まれている OK ダイアログと YES・NOダイアログの使い方を解説します。 OKダイアログ (AcceptDialogノード) の使い方 Godot Engine では "AcceptDialog" ノードで OKダイアログを表示できます。 AcceptDialogノードについて まず…

Godot Engineで今まで作ったゲーム(サンプル)まとめ

Godot Engineで作ったゲームが増えてきたので、まとめのページを作ってみました。 なおどれも MIT ライセンスですので、基本的にはソースコードは自由に使っていただいて問題ありません(画像データは一部例外があります)。 Godot Engineで今まで作ったゲー…

【Godot4.x】神経衰弱サンプル

神経衰弱のサンプルを作ったのでソースコードと簡単な解説をします。 神経衰弱サンプル ソースコード ソースコードは GitHub にアップロードしています。 https://github.com/syun77/gd_memory コードの記述内容の難易度は少し高いです たいぶややこしい実装…

【Godot4.x】UIに使えそうな2D図形ノード

今回はUIに使えそうな2D図形ノードを作ったので公開しておきます。 UIに使えそうな2D図形ノード Godot Engine デフォルトだと、図形ノードは "ColorRect" の四角形のみです。 これはこれで便利なのですが、円や扇形や角丸四角形、アウトラインをつけるには画…

【Godot4.x】ブロック崩しサンプル

プロック崩しのサンプルを作ったので、簡単に説明をします。 プロック崩しサンプル プロジェクトのダウンロード プロジェクトファイルは GitHubにアップロードしているので、こちらからダウンロードできます。 https://github.com/syun77/gd_test_breakout M…

【Godot4.x】アクションゲームの基本ギミックの実装方法 (Part.2)

Godot Engine でアクションゲームを作るとき、あると良さそうなギミックの作り方をまとめてみました。 この記事は以下の内容の続きとなります。 アクションゲームの基本ギミックの実装方法 (Part.2) プロジェクトファイル プロジェクトファイルは Github に…