2dgames.jp

ゲーム開発に役立つ情報とゲームを公開しています

ゲーム開発環境のまとめ

■このページについて

「これからゲームを作ってみよう!」と考えている人のために、自分が使ったことあるゲーム開発環境を紹介してみます。

■更新履歴
  • 2012-12-02 Objective-C / PHP を追加
  • 2013-10-28 GameMaker:Studio を追加

■言語一覧

完全に主観ですが、それぞれの言語を使ってみた評価をまとめてみました。

言語 Webでの情報量 お手軽さ 拡張性 言語仕様 実行速度 デバッグ効率 配布ファイルサイズ 環境整備
HSP
C/C++(DirectX)
C/C++(DXライブラリ)
Python(Pygame) ×
Ruby/SDL ×
D言語 ×
Flash(Flex) ×
Objective-C
PHP -
GameMaker:Studio

評価は、

  • ◎:とても良い
  • ○:まあまあ良い
  • △:あまり良くない
  • ×:全然だめ
  • HSP
    • 情報量:◎
    • IDE:○
    • ライブラリ:◎
  • C/C++(DirectX)
    • 情報量:◎
    • IDE:◎(VisualC++)
    • ライブラリ:◎
  • C/C++(DXライブラリ)
    • 情報量:○
    • IDE:◎(VisualC++)
    • ライブラリ:○
  • Python(Pygame)
    • 情報量:△
    • IDE:△
    • ライブラリ:△
  • Ruby/SDL
    • 情報量:△
    • IDE:△
    • ライブラリ:△
  • Objective-C
    • 情報量:○
    • IDE:○
    • ライブラリ:○
  • PHP
    • 情報量:○
    • IDE:○
    • ライブラリ:○
  • GameMaker:Studio
    • 情報量:△
    • 開発エディタ:◎
    • マルチプラットフォーム:◎

■言語詳細

▼HSP

私が一番最初にゲームを作っていた環境です。プログラム言語(正確にはスクリプトですが)としては非常にシンプルで分かりやすいですし、特にWeb上にチュートリアルがたくさんあるのが魅力的です。

例えば、「hsp ゲーム 作り方」でGoogle検索すると、凄まじい数の情報が出るのが素晴らしいですね

何よりも、絵を出したり音を出したりするのが、数行で記述できるのがすごいです。

例えば、

 picload ”hoge.bmp”

こう記述すると、”hoge.bmp”をロードして表示する、ができます。

WindowsAPIとかDirectXやってた人なら分かりますが、画像を表示するのはとても面倒なことなので(例えば、Windowの初期化だけで100行を超えるプログラムを書く必要がある)、いかに簡単に書けるのかが分かります。(それを回避するためにライブラリを作る必要があります)

…ただ、ですね。言語仕様が貧弱でやや独特、例えば、

  • 変数が全てグローバル(ローカル変数が書けない)
  • 構造体が書けない
  • 関数が書けない

というC言語などのプログラム言語をすでに習得している人からは、 「なんでこれができないの?」などと、とても不評です…。

まあ、裏を返せば、「余計な機能がないから分かりやすい」と言えますし、

フリーウェアゲーム作家のOMEGAさんの一部のゲームはHSPで作られていますし、

  • おまえらバランスとってふたご塔を作るゲーム
  • えぐぜりにゃ~ AGAINST

がHSP製ながら独創的で面白いゲームを作っています。結局はアイデア次第なんじゃないかと思います。

▼C/C++とDirectX

私が次に手を出したのが、この環境です。正直、HSPの楽チンプログラミングに慣れていたため、DirectXの初期化処理とか独特のお作法に苦労した記憶があります。

ただ、ライブラリを書くのはとても勉強になりますし、ゲーム会社(特にコンシューマー業界)に就職するならやるべきですね。個人的には、今の自分のライブラリ設計の基礎となっているので、無駄にはなっていない気がします。

ですが、今ならライブラリを一から書くよりも、使いやすいものが公開されているので、それを使うのがいいような気がします。

▼PythonとPygame RubyとSDL

「スクリプト言語でゲーム作ればクールなんじゃね?」そんなこと思っている時代が私にもありました。

実際、とても作りやすかったですけど、配布するときにランタイムを付属する必要があり、ファイルサイズが大きくなるのと、実行速度がやや遅いのが気になりました。

ただ、現在もツール(データコンバートなど)で仕事でも使っているため、スクリプト言語を覚えておくのは悪くないと思います。(特にRubyでYAMLが使えるのはとても便利です!)

▼Java

昔、携帯電話(iモード)のゲームを作る仕事をしていたこともありました。JavaにはEclipseという開発環境があったのでとても開発がしやすかった記憶があります。

携帯電話のゲーム作成ですが機種依存の不具合が多く、色々と面倒な事をする必要があった記憶があります。

最近のJavaの使い道としては、Androidの開発環境ですね。

▼D言語+SDL/OpenGL

D言語は一般的にはあまり知られていないですが、メリットとしては、

  • コンパイル爆速
  • GC搭載
  • モダンな書き方ができる

デメリットとしては、

  • VisualStudioやEclipseみたいな開発環境が整備されていない
  • Webの情報がやや少なめ
  • コンパイラにバグがある、、、らしい(個人的にはあまり気になったことはないですが)

という感じです。 特にWeb上に情報があまりないのが少し大変でした。(今はそれほどでもないかもしれません)

あとVisualStudioみたいなデバッガがないので、RPGのようなシステム重視のゲーム開発は大変かもしれません。(追記:VisualDというプラグインが開発されており、VisualStudioからコードの定義ジャンプ・コード補完、ステップ実行・変数のウォッチが可能となっていて結構快適にデバッグできます)

欠点ばかり書いてしまいましたが、言語仕様を調べたり開発環境の構築したりする手間がかかり、初心者向きではないのは確かです。

▼D言語+DXライブラリ

D言語でDXライブラリを使うというのも試してみました。D言語はC言語との親和性が高く、DXライブラリを使っている方もいます。

▼FlexSDK+FlashDevelop

Flashの開発環境の1つであるFlexSDK+FlashDevelopという開発環境です。FlashDevelopだと普通にコードの定義ジャンプや補完、ステップ実行・変数のウォッチができるので楽です。

ただ個人的には実行速度を60FPSまで上げられなかったのが不満でしたね。頑張れば高速化できるかもしれませんが、私の力では30FPSあたりが限界でした…。

ブラウザで動くこともありWebとの連携が強いのが強みですね。CGIと組み合わせてネットワークゲームを作るのも簡単そうです。

▼Objective-C

iPhoneブームで急速に普及している言語です。iPhoneでゲームを作る場合はObjective-Cを覚えることがほぼ必須です(Objective-CをラップしてJavaScriptで作ることもできるライブラリもありますが…)

個人的な印象ですが、言語仕様としては、C言語になれた人にとっては非常に分かりにくい記法となっており、とっつきが悪いです。

ただ、XCodeでのコード補完やデバッグ機能が協力なこと、iOS SDKで多くの機能が提供されていること、普及していることもあり情報が豊富というのが開発として非常にメリットがあると思っています。

▼PHP

最近はゲームの枠組みが広がり、ソーシャル・ネットワーキングサービスを活用したゲームが拡大しています。

そういったソーシャルゲームを作る際に、今一番使われているのがPHPです。まあサーバ上で動作すればいいので、PHP以外の言語でもいいのですが、WebサーバーのApacheやデータベースであるMySQLとの親和性を考えるとPHPが無難です。情報量の多さも圧倒的です。

個人的には、C言語が使えれば覚えやすい言語ではありますが、拡張による拡張で謎な言語仕様やハマりどころが多い(例えば比較演算子の扱いなど)、エラー処理をちゃんと組まないとバグりやすい(実行時エラーとならずにスルーしてしまう)、など大規模な開発に使うには危険な言語かなと考えています。

個人開発で使うには開発効率がよく、これで十分なのかもしれません。

▼GameMaker:Studio

長年理想のゲーム開発環境を探し求めていたのですが、ついにファイナル・アンサーを見つけてしまったのかもしれません(2013.10.28現在)。位置づけとしては「プログラムができなくてもゲームが作れる」といったツクール系に近いのですが、

  • GMLという独自言語でプログラム(スクリプト)をガリガリ書くこともできる
  • イベントコールバックによるすっきりとした記述ができる
    • 衝突判定もイベントなので、自分で衝突判定のコードを書く必要がない!
  • オブジェクト指向的なゲームインスタンスの管理
  • ファイルがすべてXMLのテキストなのでSubversionでの差分管理も可能

とプログラマが使っても満足のいく環境ではないかと思っています。

また、

  • ゲームを作るためのエディタが充実
  • さらにマルチプラットフォームへのエクスポート機能がある

ため開発効率もかなり良いです。(特にHTML5にエクスポートしたらほぼそのまま動いたのは感動でした…!)

欠点としては

  • 有料の開発環境(フリー版でも頑張れば作れるけど、凝ったゲームを作ろうとするとオブジェクト数制限に引っかかる)
  • GMLがスクリプト言語としては前世代的(リストやマップ、クラスの言語レベルでのサポートがなく記述が冗長)
  • 日本語の情報が少ない。IDEのメニューが全て英語

というところでしょうか。

とはいえ、リアルタイムゲーム(アクション・シューティング)が効率的に開発できることもあって、現時点ではかなり気に入っている開発環境です。




はてなブックマーク - ゲーム開発環境のまとめ

Tags: , , , , , , , ,


メニュー

よく見られているページ