ゲーム開発における専用ツール開発の有用性

人類は道具を使うことによって大きな進歩をしてきました。石を削り刃を作り、それで肉を切ることで食べやすくしたり、さらにそれを使って新しい道具作りに活用したりするなど、道具による道具の発展という可能性も広げました。このような歴史をたどって今があるということを考えますと、現代人においても道具というのはとても重要な存在に感じられます。

コンピュータ分野においては、こういった「道具」的な役割を持ったものはソフトウェアとして提供され、これらは「ツール」と呼ばれます。

さて、ゲーム開発においてもツールというのはたくさん使われるものであります。ゲームに使われるツールの種類としましては、主に以下のものがございます。

  • グラフィック系ツール(2D/3D)
  • 音系ツール
  • プログラミングツール
  • テキストエディタ
  • 表計算という皮をかぶった「Microsoft Excel」という名の日本を支配している謎の統合環境。方眼紙として使われることも
グラフィックや音関連に付きましては、ゲームを表現するための素材を作るためのツールということになります。いわゆる飾り付け部分のための道具ということになります。

プログラミングツールの存在は、ゲームが実際にゲームとして動くための情報を記述したり出力したりするための道具になります。このツールによって、ゲームがゲームとしてルールに沿って動くことが出来るようになります。

さて、単純なルールと表現だけでゲームは作れるのですが、ゲームの内容の規模が大きくなってきますと、ゲーム内部で扱う情報の量が当然増えてくるわけですが、そういう情報をプログラムから取り出して外部のデータとして扱うというパターンが出てきます。そして、そういった外部のデータを記述するためのツールとして、テキストエディタや、Excelが使われる場面が出てきます。

ゲームで扱う情報の形式で多いパターンとしては、以下のものがあります。
  • リスト(行単位で情報が記述されたテキストなど)
  • テーブル形式(CSVなど)
  • 構造化形式(XML, JSONなど)
  • 独自のバイナリ
上記のような情報を記述するためのツールとして、テキストエディタやExcelを例に出しましたが、時には、扱う情報の種類に特化した専用のツールが使われるパターンがあります。そういったものの例としては、マップエディター、レベルエディターがあります。これらは言わば、ゲーム世界を構築するためのコンストラクションツールと言えるでしょう。

マップエディターに関しては、汎用的に使えるツールを見かけることがありますが、少しでもゲームの内容に特化した情報を付加させようとすると、そのツールでは物足りなくなります。レベルエディターについては、厳密にゲームデザインに沿った形になっていなければなりません。

ゲームデザインが固定化しているジャンルにおいては、いわゆるゲームエンジン、ミドルウェアといった形でレベルエディターが提供されているものがあります。

もしあなたが、あなたオリジナルのデザインによって世界を構築したいのならば、それを構築するためのツールを作るという選択肢を考えて下さい。それは単にデータ作りが楽になるだけではなく、むしろ、ツール無しでは作られることのなかった世界がそこで構築されることになるのです。

「制限があるほうが人は創造的になれる」という話を聞きます。まったくの無から有を生み出すことは非常にコストのかかる作業になります。厳密には無理でしょう。なぜなら、まったくの新しいものと思われるアイディアも、すでにある何かの組み合わせであるから、という話に由来します。もし、その組み合わせの元になる何かがすでに用意され、組み合わせの選択肢が制限されているとしたら、その作業コストはずっと少なくなります。しかし、それはとても創造的なことなのです。なぜなら、組み合わせこそが創造だったからに他なりません。その制限された創造的な空間を提供するのがツールなのです。

人は、創造のためにツールを使うのではなく、ツールの上で創造するのです。