ゲームライブラリを作ろう。 |
Text By TIMA(しまむら@書記さん) |
ゲームライブラリとは「ゲームを作成するにあたって、便利なルーチン※注1-1をまとめて置く」ものです。 ゲームを単品で作るならともかく、何作も作ろうと野望を抱いている連中※注1-2にとっては、 毎回同じようなルーチンを書くのはかなり面倒なのです。絶対バグが混入※注1-3するし。 統一しておけば、ゲームのメインルーチンの作成※注1-4に集中できるし、思いついたときに機能の追加が容易です。 また、モジュール化しているので、ライブラリにバグが無いと仮定※注1-5すれば、メインルーチンのバグの発見が簡単です。 (まあ、そこではまる事も多いんですけどね。)
※注1-1:ルーチン→C言語で言う「関数」。プログラム内で呼び出すサブプログラム。なに間違った日本語※注2-1かましているんですか(ワラ)※注2-2。 とりあえず、答えとしては、あります。 「EasyLinkLibrary」※注2-3とか「SimpleX」※注2-4とかそりゃもういろいろ。 正直言って既製品は山のようにあります。 広義の意味では「ツクールシリーズ」※注2-5もライブラリの一種ですね。広義の意味では。 もしこれを読んでいる貴方がプログラミング初心者ならば正直いって、この文章は役に立ちません。 これらの既製品を使ってゲーム作る方が絶対形になるのは速い※注2-6し、 デバッグもちゃんとなされているので、ライブラリにバグは多分ありません。 既製品でもセンスさえあれば面白いゲームは作れるものです。 逆に、センスが無ければクソゲーしか作れません。これ真実。
むしろ、ライブラリの何たるかが分かってないのに作ろうとしないで下さい。 ゲームを一度も作ったことの無い人はライブラリ使ってゲームを作ってから以下の文章を読みましょう。 あなたがもし茨の道を進みたいマ○ヒストさんなら止めませんが。※注2-7 ・・・まあ、茨の道を進む覚悟が無きゃプログラマさんなんてやってられませんが。
※注2-1:間違った日本語→馬から落馬、筋肉痛が痛いなど。俗称リアルリアリティ。そりゃ、自分が「ゲームだけ作れりゃOK」なんて考えてるならそれでもいいんですけど、 そんな人は「ツクール」でもやってて下さい。止めませんから。 まあ、そんなこと言って甘えてるようでは、どっかのPCサークル※注3-1と同類だと思いますけど。 プログラマたるもの内部構造に興味を持ちませんか?そうでもない?ふーん。 とりあえず、プログラマとして生きているからにはライブラリに頼っていては成長はありません。※注3-2 ライブラリべったりなヤツが「DirectX使ってプログラミングするぞー」なんて言っているのは絶対虚言です。 どーせ、その「既製品ライブラリ」がDirectX使っているだけでしょ? 正直「GetDC()でデバイスコンテキスト取得してそのメモリ空間にBlt()で転送」※注3-3とか使える奴らの方がよっぽどマシです。 「LPDirectDrawSurface」とかバリバリに使っている人達はかなり尊敬。(私は無理です。) ライブラリを作るには、そのOSでの基本的なプログラミングができなければいけない※注3-4ので、かなり勉強になります。
結論として、自らのレベルアップを図るプログラマならライブラリは作って当然です。 無茶か?
※注3-1:どっかの…→ツクール厨の溜まっている某コンピューター(伸ばしているのがミソ)サークル。まずゲームライブラリを設計しなければいけません。※注4-1 どこまで低レベル※注4-2な機能を 用意するかは知ったこっちゃありませんが(プログラマさんにお任せですが)、代表的に用意されている機能として、
で、実際コードを書いてください。 main()からシステム系、描画系、サウンド系とやって行くのがいいと思います。 当然、それぞれの系統が仕上がったら、テストをしてみるのは基本です。 ここでバグっていたら、出来上がったライブラリ、引いては作成したゲームにまでバグが入ってしまいます。
正直、抽象的にしか※注4-3語りませんでしたが、具体的に語れません(細かいところは作る人次第である)ので勘弁してください。
※注4-1:設計→ちゃんとできればそんなに苦労しない。ゴメンナサイ作ってません(爆)。 でも、とりあえず、Windows用ゲームライブラリ「SimpleX」をMac用※注5-1に移植しましたよ。根性で。 殆ど一から書き直してるので、まあ、自分で作ったといえなくも無いですよ。うん。 まあ、「pugoGL」※注5-2のソース参考にさせてもらったりとかしたけど。
また、自分でWindows,Mac,Linux兼用の可能なライブラリ※注5-3を作ろうという野望もあったり。 機能的にはMOD再生なんかサポートしてみたりして。まあ、まだ野望の段階なので、細かいことは突っ込まないで下さい。
※注5-1:SimpleXのMac用→拙作「SimpleMac」のこと。WindowsAPIに頼らずにSimpleXで書かれた2Dのゲームがそのままコンパイルできる。いろんな意味で便利。こんな戯言最後まで読んではいけないね。※注6-1
※注6-1:最後まで…→「こんなゲームにマジになってはいけないね。」のパロディ。