2008/02/03
初級ゲームプログラミング完全マニュアル [vol.0031 2008/02/03]
┏┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
┣┛ ┗┫
┃ 挫折不可能! 初級ゲームプログラミング完全マニュアル ┃
┃ ┃
┃ 第 31 号 2008/02/03 ┃
┣┓ ┏┫
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻┛
- Ads space -
┌┬───────────────────────────────┬┐
││ はじめに ││
└┴───────────────────────────────┴┘
みなさま、こんにちは!
個人ゲーム制作アドバイザーの Byerkut です!
いつまで経っても寒いです。
聞けばこの時期は1年でもっとも寒い時期なんだとか、
そんなことを聞いてしまったらよけい寒くなりました。
春が待ち遠しいですね。
さて、今回はプログラミングの基礎についてです。
┌┬───────────────────────────────┬┐
││本日のラインナップ ││
└┴───────────────────────────────┴┘
・今日のメインテーマ【プログラミング最初の一歩】
・あとがき
┌┬───────────────────────────────┬┐
││ みんなの備忘録 ││
└┴───────────────────────────────┴┘
■Visual C++ 2008 Express Edition をインストールする手順
http://www.game-create.com/archives/235
------------------------------------------------------------------
以前の情報
------------------------------------------------------------------
■Visual C++ 2005 Express Edition をインストールする手順
http://www.game-create.com/archives/12
■Microsoft Windows SDK をインストールする手順
http://www.game-create.com/archives/13
■Visual C++ 2005 Express Edition でプロジェクトを新規作成する手順
http://www.game-create.com/archives/19
■VC++ 2005 EE でプロジェクトにソースファイルを登録する手順
http://blog.mag2.com/m/log/0000240151/108824854.html
┏┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
┃┃ ┃┃
┃┃ 今日のメインテーマ ┃┃
┃┃ ┃┃
┃┃ 【プログラミング最初の一歩】 ┃┃
┃┃ ┃┃
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻┛
今週から1からのゲームプログラミングに入っていきたいと思います。
本来はメルマガの初期にテーマとして取り上げる方が自然かと
思ったのですが、退屈なお話なので、まずはいろいろと
ゲームにふれてもらうところから始めていました。
「何事も基礎から固めたい」という方には今回からのお話の方が
重要性を感じていただけるかもしれません。
それでは、基礎の基礎からお話しさせていただきます。
まず、再確認していただきたいのは、
「プログラミング言語というのはゲームを作るための道具ではない」
ということです。
今までみなさまには C++ というプログラミング言語を
使っていただいていました( Visual C++ 2005/2008 Express Edition )。
~~~
これはコンピュータ上で動作するソフトウェアを作るための
プログラムであって、ゲームを作るためのツールではありません。
つまり、ゲームプログラミングというのは、
プログラミング言語の「応用」に当たるわけです。
何が言いたいのかと申しますと、
「 C++ 言語の習得=ゲームが作れる」という
図式は成り立たないということです。
ときたま、ゲームプログラミングを志された方が、
書店で C++ の専門書を買ってみたはいいものの、
肝心のゲームの作り方がわからず挫折してしまうという
パターンがあるのですが、これは非常に残念な例です。
そこで、今回は C++ は何であって何でないのかをお伝えしたいと思います。
ゲームが作りたいだけなのに長い前置きは退屈かと思われますので、
いきなり要旨をお伝えします。今回重要なのは、ずばり…
「 C++ は計算と記憶しかできない」
…ということです。
以前にも書いたことがあるのですが、改めてお伝えします。
ゲームと聞いてイメージされるのは、
華やかなグラフィックや、プレイを盛り上げる音楽や効果音、
ジョイスティックやマウスやキーボード、
最近では Wii リモコンのようなコントローラを使った
独特のインタフェース、またはネットワーク通信を使った、
人と人とのふれあいを提供するインフラストラクチャ。
ゲームを作るという作業はこれらの技術をコンピュータ上で
実現していくということなのですが、
実は C++ は、これらのことが一切できません。
できるのは計算と記憶のみです。
もちろん計算と記憶もとても重要です。
計算ができないと RPG を作ったときに敵の HP を減らしたりできませんし、
記憶ができないと敵に遭遇して戦闘画面に入ったはいいが、
戦闘終了後にプレイヤーがマップ上のどこにいたのか
覚えていることができなくなります。
(戦闘が終わるたびにアリアハンに戻ってしまうドラクエは
プレイしづらいですよね?)
つまり、ゲームを作る際にプログラミング言語である
C++ などが採用される理由は、この計算と記憶の能力を
高く評価されているからなのです(ちょっと極論ですが)。
では、どうやれば C++ でゲームを作ることができるのでしょうか?
たとえばグラフィックはどうやって表示すれば良いのでしょうか?
みなさまは今まで Windows でゲームを作ってきましたので、
Windows で説明させていただきます。
まず、グラフィックを表示しているのはパソコンについている
ビデオボードという装置です。
ビデオボードはパソコンの中に「画用紙」のようなイメージの
メモリ空間を作って、その中に描かれた絵を忠実に
ディスプレイに再現する役割を担っています。
では、その絵は誰が描くのでしょうか?
それが Windows です。
つまりこういうことです。
Windows ―(絵を描く)→画用紙―(読み込む)┐
┌─────────────────────┘
└→ビデオボード―(表示する)→ディスプレイ
ということは Windows に「画用紙に図形をかけ」と命令できれば
ゲームを構成するための重要な要素である
「グラフィック」を制御することができるとは思えませんか?
「でも C++ は記憶と計算しかできないんでしょ?」
その通りです、しかし、できないのなら外部から借り受ければいいのです。
C++ のソースファイルから外部の機能を借り受けるためには
#include という命令を使います。
たとえばソースコード中で次のように書くと、
計算と記憶しかできない C++ に Windows を操作する機能を
組み込むことができるようになります。
------------------------------------------------------------------
#include <windows.h>
------------------------------------------------------------------
たったこれだけです。簡単ですよね?
これだけで C++ から Windows に「画用紙に図形を描け」、
つまり「ディスプレイにグラフィックを表示しろ」と
命令することができるようになります。
たとえば「画用紙に四角形を描け」と命令するには次のように書きます。
------------------------------------------------------------------
Rectangle(hdc, 100, 100, 200, 200);
------------------------------------------------------------------
同様に「画用紙に円を描け」と命令するには次のように書きます。
------------------------------------------------------------------
Ellipse(hdc, 100, 100, 200, 200);
------------------------------------------------------------------
これ、実はシューティングゲームのサンプルでたくさん使っています。
enemy.cpp を開いてみてください、
e001_draw() 関数の中で使っていますよね?
これはまさに Windows から機能を借り受けて
ディスプレイにグラフィックを表示している部分なのです。
今回の内容で重要なポイントはふたつです。
・C++ は計算と記憶しかできない
・外部の機能を借り受けるには #include を使う
途中のビデオボードの説明は忘れてしまっても問題ありませんが、
この2点だけは忘れないでください。
特に #include <windows.h> で C++ から Windows の機能が使える
という事実は来週以降のメルマガでは前提の知識となります。
かならず覚えておいてください。
来週は小さいプログラムをひとつ作っていきます。
小さいプログラムをひとつ作ったら、
それをベースに小さなゲームへと発展させていきます。
白紙のソースコードからどうやってゲームを完成させるのか?
その手順をひとつひとつ押さえていきましょう。
今回も最後まで読んでいただいてありがとうございます!
それでは!
Byerkut.
┌┬─────┬─────────────────────────┬┐
││ あとがき │ 発行者のつぶやきです ││
└┴─────┴─────────────────────────┴┘
わかる人だけ笑ってください。
先日スパロボ MX をプレイしていたのですが、
スターライドセレナーデのステージでクリアに 50 ターンも
かかってしまいました。
増援で登場したマイヨとミンが弱すぎて死にそうになりました。
あのステージを普通にクリアするにはどうしたらいいのでしょうか?
┌┬───────────────────────────────┬┐
├┘ └┤
│ 購読の解除はこちら↓ │
│ http://www.game-create.com/contents/gp_beginners_ml │
├┐ ┌┤
└┴───────────────────────────────┴┘
- Ads space -
┌┬───────────────────────────────┬┐
├┘ └┤
│ 「挫折不可能!初級ゲームプログラミング完全マニュアル」は、 │
│ 「いちばんやさしいゲームの作り方」が運営しています。 │
│ │
│ サイト : http://www.game-create.com/ │
│ 発行元 : http://www.game-create.com/menu/about │
│ 発行者 : http://www.game-create.com/menu/profile │
│ コンタクト : http://www.game-create.com/menu/contact │
│ 利用規約 : http://www.game-create.com/informations/agreemen │
├┐ ┌┤
└┴───────────────────────────────┴┘
POWERED BY LIBERTIASTER GAME STYLE.


