マガジンのカバー画像

ゲームプログラムの記事まとめ

17
ゲームプログラム に関する記事をまとめています
運営しているクリエイター

記事一覧

ゲーム開発時にあると便利なデバッグ機能

今回はゲーム開発時にあると便利なデバッグ機能を紹介します。 ■デバッグ機能の分類ゲーム開発中にあると便利なデバッグ機能はおおよそ以下の3つに分かれると思います。 1. エディット系 2. パフォーマンス測定 3. バグの検証・再現 ■1, エディット系これはゲームデータをゲームプレイ中にリアルタイム編集して、ゲームへ直接反映させるものです。例としては以下のものがあります。 * フラグ編集、パラメータの編集 * アイテムやお金の増減 * 無敵モード・コリジョン無効 *

PythonでTiledマップエディタのデータを読み込む

今回は、汎用の2Dマップエディタ「Tiledマップエディタ」をPythonで読み込む方法を紹介します。 例えばこのように Tiled に配置されたデータを読み込みます。 ■まずは日本語化Tiled を日本語化していない場合は、以下の手順で日本語化します。 メニューから「Preference...」を選んで設定画面を開きます。 「Interface」>「Language」>「Japanese」を選びます。 すると表示設定が「日本語」になります。 ■マップデータの新規

【GameMaker:Studio】円状のゲージの作り方

今回は2D向けのゲームエンジン「GameMaker:Studio」を使って、円状のゲージの作り方を紹介します。 こんな感じの円ゲージを作ります。 ■三角形をたくさん書いて円を作るGameMaker:Studio では円を描く関数はあるのですが、扇型を書くことができません。そこで、三角形を組み合わせて円を描きます。 三角形を複数組み合わせることで、擬似的に円を描くことができます。GameMaker:Studio では draw_triangle() という三角形を描画する

ゲームのプロトタイプを素早く作る方法

■なぜプロトタイプを作るのかプロトタイプは「試作品」という意味です。いきなりゲームを作り始めると危険がたくさんあります。それは例えば以下のものです。 ・そのゲームが本当に面白いのかがわからない ・そのゲームに多くの時間をかけて作ってよいかがわからない これらについて詳しく見ていきます。 ▼ゲームの面白さは作ってみないとわからないゲームの面白さは千差万別であり、作らないとわからないことも多いです。ただ、ある程度であれば、新しく作るゲームが面白いかどうかを推測することは可能

ゲームプログラマーになるためのロードマップ

今回は、ゲームプログラマーになるためにはどんなスキルをどのような順番で身につけると良いのかをまとめていきたいと思います。 大きな枠組みとしては、以下の通りです。 ・入門者:プログラムを始めたばかり ・初級者:簡単なゲームであれば作れる ・中級者:ゲームプログラムを仕事にできる ・上級者:一生食べていける(かも) 仕事ではなく個人でゲームを作る分には、初級〜中級あたりの知識で問題ないような気がしています。 ■入門者 Lv1まずはここから開始です。誰もが最初は入門者! こ

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

今回はイージング関数を使ったUIの動きの作り方を紹介します。イージング関数とは、0.0〜1.0 の値を渡すといい感じの曲線で推移するパラメータを返してくれる関数です。Tween や Easing と呼ばれることもあります。 上記画像は、cubeOut (3次関数) によるイージング関数の使用例です。横軸が時間の経過で、縦軸が値の変化となります。 イージング関数の一覧は以下のページにまとめられています。 イージング関数が簡単に使用できるかどうかは環境によりますが、プログラ

最もカンタンに作れるゲーム選手権

今回は、とにかく簡単に作ることができるゲームをランキング形式で紹介します。しっかりとゲームを作り込んでいると、ストレスが溜まったりするので、たまにはこういったお手軽なゲームを作ってみると、気晴らしになって良いかもしれません。 なお、ランキングの判定は、個人的な主観による「作りやすさ」と「面白くなりやすさ」を基準にしております。 ■第5位:クイズゲーム まず紹介するのは「クイズゲーム」です。クイズゲームは問題文とそれに対応する答えを用意して、正解・ハズレ判定をするだけで実

2次元配列管理クラスの実装について

今回はゲーム作りに役立つ2次元配列管理クラスを紹介します。 2次元配列は、2Dゲームにおけるマップ(フィールド)データを格納するためによく使われます。 例えば落ちものパズルゲームでは、各色のブロックを2次元配列の数値データとして扱います。 過去にQiitaに書いた記事では、Tiled Map Editorというマップエディタで作成したデータをこのクラスに格納したり…… A*での経路探索をする際に、このクラスを使って経路情報を求める、という使い方をしていました。 他にも

ジャンル別ゲームの作り方 (ラン&ジャンプ系)

今回はラン&ジャンプ系ゲームの作り方を紹介します。 手順としては以下の通りです。 1. プレイヤーを表示する。重力で落下させる 2. 床を表示する。プレイヤーが床の上に乗れるようにする 3. プレイヤーの横移動を実装する。それに追従して画面をスクロールさせる 4. 床を動的に生成する。当たり判定が正しくできているかを確認する 5. 画面外に落下したらゲームオーバー 6. 一定ラインを超えたらゲームクリア ■1. プレイヤーを表示する。重力で落下させるまずはプレイヤーを

ゲームオブジェクトとその管理の実装について

今回はゲームオブジェクトの管理方法について、実装方法を紹介します。 なお、コードの実装例は Python で行いますが、言語特有の機能は使わず、一般的なプログラム言語で採用されている機能のみ使うので、Python を知らなくても読み解くことは難しくないと思います。 ■ゲームオブジェクトとはアクションゲームやシューティングゲームでは、大量のゲームオブジェクトを管理する仕組みが必要となります。 ゲームオブジェクトとは、ゲームで登場するキャラクターやアイテムなどです。 例えば、

【Pyxel】セットアップ手順と基本の関数について

今回は、レトロゲームエンジン「Pyxel」の初期セットアップと、基本的な知識をまとめた記事となります。 ◾️PyxelとはPyxelは、WindowsとMacOS X、Linux環境で動作するゲームエンジンです。 使用可能なプログラム言語は Python です。 レトロゲーム風のゲームを開発することを意識しているため、色数が16色まで、同時に再生できるサウンドが4音までとなっていますが、その制限ゆえ、ゲームプログラムを学ぶ最初の環境としては、とても良いのでは、と個人的には思

ジャンル別ゲームの作り方 (落ち物パズル)

今回は落ち物パズルゲームの作り方を解説します。 ■落ちものパズル落ち物パズルとは、「テトリス」「ぷよぷよ」「ズーキーパー」「ツムツム」のようなゲームを表すジャンルです。落ちものパズルは、おおよそ以下のルールとなっています。 1. 消去可能なブロックが上から落下してくる 2. 一定ルール (同じ色をつなげるなど) でブロックの消去ができる 3. 1〜2を繰り返して出現位置がブロックでふさがったり、一定時間内に消せないとゲームオーバー 通常、ブロックは下に遮るものがないと重

ジャンル別ゲームの作り方 (2Dアクション・2Dシューティング)

今回はゲームジャンル別に、そのジャンルを代表する要素の作り方を紹介したいと思います。 ◾️シューティングゲーム シューティングゲームの基本的な面白さは、おおよそ以下の通りになるかなと思います。 * 動き回る敵を狙って倒すのが面白い * 自機がパワーアップして敵を蹴散らすのが楽しい。もしくはパターンを覚えて効率よく敵を倒す * 大量の敵弾をくぐり抜けた時のうまく操作した感、達成感 こういった面白さを実現するために、シューティングを作る場合、たいていは以下のステップでゲー

ゲームプログラム初心者が作ると勉強になる5つのゲーム

今回はゲームプログラムに不慣れな初心者のための記事です。 ゲームプログラムのスキルをアップするために、挑戦してみることをオススメするシンプルな5つのゲームを紹介します。 ■1. クリックゲーム これは画面内を飛び回るオブジェクトをマウスクリックで破壊するというゲームです。 * ゲームオブジェクトの移動 * 壁(画面端)との衝突判定と応答処理 * クリックした位置での消去判定 * 存在するオブジェクト数を計算してゲームクリア判定をする といったゲームプログラムの基本を学