さて、今までの記事で防衛軍は iPhone の OpenGL 機能を使って、C言語でプログラムを作る話をして来ましたが、今回はその辺の所を少し掘り下げて分析してみましょう。

まず、OpenGL と言うのは、iPhone や Android でネイティブ実行される3Dエンジンの事です。通常のツール系アプリを作る場合には殆ど意識する事は無いですが、ゲーム系アプリを作る時は意識して使う事も出来る機能です。

OpenGL を使わないゲーム

ん?意識して使う事も出来るって事は、ゲームでも OpenGL を使わない場合があるの?っていう質問が出そうですが… はい、その通りです。動きの少ない簡単なゲームなどは OpenGL 機能を使わず、ツール系アプリの作り方の延長(Objective-C)で作成される場合も多いです。

ただ、OpenGL は画像を高速に沢山表示するのが得意なのに、それを使わないでゲームを作るとゲームの動きが遅くなってしまう場合があるんです。

だったら、ゲームを作る時は必ず OpenGL を使えば良いじゃん!となる訳ですが、実は OpenGL を使ってプログラムするのって初心者には結構難しかったりするので、最初から OpenGL を諦めて、表示画像を少なくして処理が遅くならない様なゲームに限定して作るって事は良く在る事なんです。

最初の難関を乗り越えて…

でも、やっぱり、沢山の画像を高速でガンガン動かすのってゲームを作りたい人には魅力的ですよね。OpenGL を使ったプログラムが難しいと言っても最初だけです。最初だけ少し苦労して OpenGL の処理の部分だけをプログラムパーツとして作ってしまえば、後は 「C言語」でそのパーツを呼び出して使えるので、逆に簡単にゲームを作る事が出来るんです。

OpenGL の機能

  1. 画像を沢山、高速に描画出来る
  2. 2D表示、3D表示のどちらも高速描画出来る
  3. 3Dポリゴン演算、描画が得意
  4. iPhone も Android も、60fpsで動く

ちなみに、60fps と言うのは、1秒間に60回アニメ処理出来るという意味で、ゲームとしては最高の処理速度の事です。良くゲームで「処理落ちした!」というのは、1秒間に60回以下のアニメしか出来なくて、アニメがカクカク動いてしまう事が見えてしまう事を言います。OpenGL を使うと、よほど大量の画像を表示しない限り60fpsが保証されます。

OpenGLの2D機能だけを使う

そんな3Dポリゴンをガンガン表示出来る凄い能力を持った OpenGL ですが、我々が作るクソゲーでは3D機能は使いません。敢えて2D機能だけを使うんです。勿論使う気になれば何時でも3Dポリゴン機能を使えるんですが、下記の理由によりワザと使わないんです。

クソゲーで3Dゲームは売れない

というジンクス?が在るんです。もの凄く良く出来ている3Dゲームを作るのであれば売れるんですが、我々が目指すクソゲーでは売れません。クソゲーは2Dゲームの方が売れるんです。

逆にこれって初心者に取っては打って付けですよね。初心者は元より3Dゲームなんか難しくて作れませんから、単純な2Dクソゲーさえ作れば良いんです。何度も言いますが欲張って3Dの凄いゲームを作ろう!なんて理想を追ってはダメです。我々は「悪ガキ」か「極悪ダースベーダー」に成り切って、マジでくだらない、超シンプルなクソゲーを2Dで作るんです。

そうやって、何本か2Dのクソゲーを作って行くうちにプログラムにも慣れて来て、将来必要であれば2Dゲームの中に少し3D要素を組み入れる… なんて事が出来たら最高です。それまでは優秀で高速な OpenGL 機能を敢えて抑えて使うのですから、余裕で60fpsゲームが出来ちゃう訳ですね。

まとめ

  1. 難しい OpenGL プログラムは一度作ってしまえば、後は簡単
  2. OpenGL は2Dも3Dも、超高性能
  3. クソゲーで3Dゲームは売れない
  4. クソゲーは敢えて余裕で2D機能しか使わない
  5. クソゲーでも実は OpenGL 使ってる所がカッコいい