ゲームプログラム

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

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

【Godot】弾幕2DSTGの基本

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

読みやすいゲームプログラムを書くための 7つの基本テクニック

この記事では、可読性が高く機能拡張しやすい(保守しやすい)ゲームプログラムを書くための 7つの基本的なテクニックを紹介します。 読みやすいゲームプログラムコードを書くための7つの基本テクニック 今回紹介する方法は以下のものです。 1. ローカル変数を…

PythonでExcelをCSVに書き出す方法

今回は Excelファイルを CSVに書く出す方法について解説します。 PythonでExcelをCSVに書き出す方法 Excelでゲームデータを管理するときの問題点敵のパラメータを管理する場合、表計算ソフトである "Excel" を使用すると楽に管理ができます。例えば敵のパラ…

グリッド制のゲームでよく使う座標系について

今回は Grid-based (グリッド制) のゲームを作るときによく使われる座標系とその変換方法について書きます。 グリッド制のゲームでよく使う座標系について グリッド制のゲームとは グリッド制は、パズルゲームやターン制ストラテジー、昔ながらのターン制ロ…

Kindle Unlimitedで読めるゲーム開発に役立つ本

今回は電子書籍が読み放題になるサービス Kindle Unlimited で読めるゲーム開発に役立つ本についてまとめてみました。 Kindle Unlimited は定期的に割引キャンペーンを行います Kindle Unlimited は定期的に割引キャンペーンを行っているので、その期間だけ…

落ちものパズルの作り方

この記事では落ち物パズルゲームの作り方を解説します。 落ちものパズル 落ち物パズルとは、「テトリス」「ぷよぷよ」「ズーキーパー」「ツムツム」のようなゲームを表すジャンルです。落ちものパズルは、おおよそ以下のルールとなっています。 1. 消去可能…

ラン&ジャンプ系ゲームの作り方

この記事では Jump ’n’ run game (ラン&ジャンプゲーム) の作り方を紹介します。

FPSカメラの作り方

フィールドを歩き回るような3Dのゲームを作る際に、主観視点で周りをグルグル見渡せるカメラがあると便利です。ちょうどFPSゲームで使われるカメラです。この記事では、そういったFPSカメラの作り方を説明したいと思います。 作り方概要 FPSカメラを作るには…

Unityで2Dゲームを作るのにおすすめな参考書

今や世界で最も使われている(日本でもダントツ人気)のUnityのおすすめの参考書を紹介します。 なお、主に2Dゲームを作っている開発者としての個人的な視点からのおすすめとなる点にご注意いただければと思います。 入門者向け Unityの教科書 Unity 2023完…

2Dプラットフォーマー実装ガイド

このページでは、2Dプラットフォーマー(2D横視点のジャンプアクションゲーム)の作り方を解説します。

賢いAIの作り方

「賢いAIの作り方(What Makes Good AI?) |Game Maker’s Toolkit」という、AIを作るためのためになる動画を見つけたので内容をまとめてみました。 賢いAIの作り方(What Makes Good AI?) |Game Maker’s Toolkit 賢いAIの話になると、FEARやHaloのようなFPSの効…

穴掘り法によるダンジョンの自動生成

はじめに ダンジョンの自動生成では、最もお手軽と思われる穴掘り法を解説します。このアルゴリズムは、迷路ゲームや Roguelike (ローグライクゲーム) 、 Dungeon crawler (3DダンジョンRPG) のダンジョンとして利用できる仕組みなのではないかと思います。 …

RPGの作り方 (マップ・イベント編)

この記事ではRPGの作り方を解説します。 なおRPGすべてを網羅するのは大変なので、この記事ではRPGの核となる「マップとイベント」のシステムについて解説します。 「マップとイベント」のシステムを作る 「マップとイベント」のシステム構築に必要な要素は…

2D矩形マップとの当たり判定

この記事では、矩形状に区切られたマップとの衝突・応答判定を行う方法の解説します。 2D矩形マップとは? 矩形マップは、縦軸・横軸からなる2次元の表です。なので、たいてい矩形マップを読み込むと、2次元の配列になり、以下のように「座標」をキーに、…

Unityでタワーディフェンスを作ったのでアルゴリズムや手順を公開

Unityで Tower defense (タワーディフェンス) を作りました。ソースコードは以下のURLから取得できます。 https://github.com/syun77/Unity2D_TD 採用したルール 最近ではいろんなジャンルが混ざり合ったタワーディフェンスが多いですが、今回作ったのは古典…

イージング関数を使ったUI挙動の作り方

イージング関数を使ったUIの動きの実装例を紹介しています

ゲームプロトタイピングのよくある落とし穴

Common Game Prototyping Pitfalls http://www.lostgarden.com/2005/08/common-game-prototyping-pitfalls.html を翻訳した記事となります。 ━━━━━━━━━━━━━━━━ 私はゲームのプロトタイプの利点と処理を記述した以前の記事で、いくつかの時間を費やしてきまし…

秒速でプロトタイプを作成する方法

Rapid Game Prototyping: Tips for Programmers http://gamasutra.com/blogs/HermanTulleken/20140119/208901/Rapid_Game_Prototyping_Tips_for_Programmers.php を翻訳した記事となります。 ━━━━━━━━━━━━━━━━ 2013年11月、私と2人の同僚は30ものゲームを作…

有限状態機械(Finite State Machine)

1.はじめに 有限状態機械とは、 複数の「状態」を持ち、その「状態」により「振る舞い」が決定される抽象的な機械 のことです。 具体的な例を挙げると、パックマンのモンスターがそれに該当します。 モンスターは、 移動 追跡 逃避 3つの「状態」を持ちます…

自動生成コンテンツをゲームで使うときの5つのヒント

自動生成(プロシージャル)コンテンツをゲームで使うときの5つのヒント(5 tips for using procedurally-generated content in your game)を個人的にまとめた記事です 5 tips for using procedurally-generated content in your game 自動生成コンテンツゲ…

多関節の作り方

多関節を実現する方法は、 CCD法 インバースキネマティクス(IK) などの方法があるみたいです。 シューティングゲームアルゴリズムマニアックス(Cmagazine)にIKでの実装方法がのっていたので、その実装方法の紹介となります。 シューティングゲームアルゴリズ…

A-starアルゴリズム

A*(A-star)アルゴリズムとは A*アルゴリズムとは、探索アルゴリズムの一種です。経路をノードで表現して、スタートノード(開始地点)からゴールノード(目標地点)までの経路を計算し、この経路が最短であることを保証するアルゴリズムとなります。そしてス…

戦術SLGの作り方(AIの思考ルーチン)

1.はじめに ここでは、戦術SLGの作り方について説明をします。 上記の記事では移動範囲の求め方を紹介しましたが、今回はその応用として、AIの移動アルゴリズムを紹介します。 2.基本編 まず最初は、「移動可能な範囲にプレイヤーがいる」といったシンプルな…

戦術SLGの作り方(移動範囲を求める)

1.はじめに ここでは、 Grid-based (グリッド制) の戦術SLGの作り方について説明をします。 戦術SLGとは、将棋やチェスのように、自分のコマを動かして相手のコマを倒すゲームのことです。将棋やチェスと違うのは、コマに色々なパラメータがあることです。例…

曲線の作り方

曲線を使うメリット 例えば、放物線を描いて動く敵を作るとします。その場合に、 x 0 1 2 3 4 5 6 7 8 y 16 9 4 1 0 1 4 9 16 という座標のパターンを持つとします。 そのとき、この敵の移動を直接数値で保持すると以下のようなテーブルが必要となります。 x…

ゲームの設計手法

1.はじめに 今回はゲームの設計手法について解説します(参考:ゲームクリエーターズバイブル) ゲームクリエーターズバイブル 作者:Andrew Rollings,Dave Morris インプレス Amazon これを使うのは「ゲームデザイン」完成した後の「基本設計~詳細設計」あ…

擬似3Dダンジョンの作成方法

今回は、Dungeon crawler (3DダンジョンRPG) を擬似的に表現する方法を解説してみます。 今どきのゲームエンジンであれば、標準で3D描画ができてしまうのでここで紹介している方法は必要ないですが、2D描画機能しかない環境の場合はこの手法が有効です。 疑…

テトリスの作り方

1.はじめに ここでは、テトリスの作成方法について説明します。テトリスは、説明するまでもないですが落ちゲーの代名詞ですね。テトリスが出た後の数年間は落ちゲーブームを作り、今や定番のジャンルとなっています。 何が新しかったかというと、下に落下す…

クォータビューの作り方

概要 この記事は斜め上からの視点 Isometric (クォータービュー) の作り方について解説します。 なお Unity で実装する場合は、平行投影にしてカメラを斜め上にするだけで実装できるので、ここで紹介しているような対応は不要となります。 2D描画のみ可能な…