マイコンマニヤックス/ニンテンドーDSで自作ゲームを作ろう

ニンテンドーDSで自作ゲームを作ろう

開発環境の準備

さて、前からほざいていたニンテンドーDSでのオリジナルゲーム作成に挑戦だ。
コレもマイコン内蔵機器の一種だよな。マイコンというよりはコンピュータよりかもしれないが。
CPUはARM系のはずです。まぁCで作るからあんまり関係ないけど・・・

CA381635.JPG

とりあえず道具を買った。GENOで3000円くらいだったか?いわゆるマジコンという奴だ。
この手のものはコピーゲームが動く動かないがいろいろあって、鉄板はR4とかいう奴らしいんだが、今回は自作ソフトの起動ができれば事足りるので安かったらなんでもいい。
あくまで自作ゲームを動かすための道具としての購入だしな。

さて、DSでソフトってどうやって作るんだ?いろいろググってみる。
すると日本語での開発情報をまとめてくださっているありがたいサイトがここにある。

http://void-main.org/dsprogram/index.php?%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8

開発ツールはここらへんで無料でダウンロードできる。

http://www.devkitpro.org/

デバッグ用のエミュはここで。

http://nocash.emubase.de/gba.htm

CA381636.JPG

とりあえず、マジコンそのものの動作確認してみる。
ここにあるフリーのゲームを試してみる。

http://www.mrdictionary.net/lemmings/

ちゃんと動きますね。
たぶん自分で作った奴でも動くんでしょう。
とりあえず「Nintendo DSでプログラミング」さんのチュートリアルどおりやってみよう。

devkitPro.jpg

ごく簡単な、画面に文字を出すだけのプログラムを作ってみたいとおもいます。*1
いわゆるHELLO WORLDって奴ですね。
ソースを適当に捏造してコンパイル。
エミュで動作確認してからマジコンに書き込んでDSを起動してみます。

CA381637.JPG

あっさり動きますね。
だいたいこの手の奴は、まず開発環境で物つくって起動さすまでが大事だったりするんですが、こんなにあっさり動いていいんでしょうか?
とりあえず付属のサンプルソースをゆっくりみてますが、簡単な2Dのパズルゲーム程度なら簡単に作れそうですね。
これはなかなか遊べそうです。もっともオイラ、DSは持ってないのですが・・・

さて実際ゲーム作ってみようじゃないか

さて、ゲームといえばどんなのを作るかだ。
まぁ、PONG(いわゆるテニス)、ブロック崩し、15パズルなんてのが定番だけど、今回はたまたまソースが手元にあったテトリスにしてみる。
原作の奴はDOSのテキストコンソールで動かす(文字で書いた)テトリスだ。
ANSIシーケンスでキャラクタを操って表示するのね。
これなら、機種依存する部分(画面への文字表示とかキー入力なんか)を移植すれば簡単に動くやろ。

画面表示自体はサンプルのこれをみれば、おおよその見当はつく。

C:\devkitPro\examples\nds\Graphics\2D\hello_world

キー入力はこれ。ゲーム機なんで押した離した押しっぱなし、のあたりがちょとパソコンと違うくらいかな?VSYNCでキーをひらっておくとか。

C:\devkitPro\examples\nds\input\keyboard

正直、あんまりゲーム機だから特別にどうとかというのはこの段階ではない。3Dとかを使いまくるわけでもないので。

CA581640.JPG

ということで、テキスト版テトリスが完成である。
実機に転送してプレイしてみるが、それなりに動く。まぁもともと動いていたソースなんで当たり前だけど。

さて、これだとさすがに画面が寂しい。(味があってこれはこれでいいんだけど)
つうことでグラフィックっぽくして音をつけてみようじゃないか。

まずプレイ画面のグラフィックだが、このゲームはキャラクタ単位の移動でことが済むので、フォントをオリジナルのグラフィックにしてやれば(いわゆるPSGって奴ですね。おっさんほいほいなキーワードです)それっぽく見えるだろう。
サンプルはこのへんですね。

C:\devkitPro\examples\nds\Graphics\2D\custom_font

で、テトリスだと使い道がない上画面は飾りのグラフィックでも表示してみよう。
Wikipediaあたりから版権フリーのクレムリン宮殿の画像をひっぱってきてVRAMにデータを転送する。
やり方はこのへんで。

C:\devkitPro\examples\nds\Graphics\2D\256_color_bmp

で音だ。これが一番苦労した。
最初、WAVを鳴らそうとしてたんだが、一曲まるごとだとデータがでかくなりすぎる。
MP3とかをライブラリがサポートしてくれてたらいいんだけど・・・
標準のライブラリではBGMに音楽を鳴らすときはアミーガMOD形式の音源ファイルを使うことはサンプルみてわかった。

C:\devkitPro\examples\nds\audio\maxmod\basicsound

とりあえずサンプルを参考に実装。本当はロシア民謡にしたいんだけど、適当なMODファイルがないしMIDIファイルからの変換がどうもうまいこといかないんで、とりあえずはサンプル付属のBGMを鳴らしておく。
ただループさせるだけならコマンド一発のようです。

CA581644.JPG

つうことで完成。まずはオープニング画面です。

CA581645.JPG

プレイ画面。なんとなくそれっぽいでしょ?

ということで製作過程とプレイ動画です。
まぁ作ってる間のほうが楽しいですね(w

マジな話。私は若い人、というか子供たちに真に伝えたい。
たかが3000円くらい出せばプログラミングが楽しめるのだ。
ぜひとも挑戦してもらいたいです。
攻略本みれば結末まで載ってる他人が作ったゲームばっかりプレイしてたらアカンぜよ。
世の中にないものを、どんなゴミでもいいから自分で作ることこそ楽しいゲームだとおもう。
ヤクザもいってます。「クスリはヤルもんじゃない、作って売るもんだよ」



コメント
書き込みモードの選択
(SPAM防止のために質問に答えてください)  [Q]ジーク・  [A]
     
コメント欄の使い方の説明(つかる画像一覧や質問の意味がわからない人はこちらを参考に)       カキコミの練習はこちらでどうぞ



「マイコンマニヤックス」に戻る



*1 これが出来ないと何も作れない。これさえできればできたも同然。

トップ   リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-04-23 (金) 00:14:15 (3102d)