TODAY'S DATE IS 2012年5月21日 (Mon)/07時57分42秒 (PM)
|
|
SINCE 2009.1.2
twitter 始めました
気軽にフォローしてね

|
寄付をしろ!
|
お勧めサーバー
■RapidSite
■フレッツ光
■VPS仮想サーバー
■CPIレンタル
|
|
|
|
■新Mac mini - 静音性は抜群で、スペックも申し分ない。そして何より超お手頃価格
■Logic Studio - 音楽を始めたい人は、これを買っておけばOK。必要な物がほぼ揃ってる
★SDLゲームプログラミング講座★
このコーナーでは主に、プログラミングのプの字も知らない超初心者の為に、C言語+SDLを使ってのゲームプログラミングを解説しています。以前はほぼMacオンリーなページでしたが、現在はMac/Winは問いません。ゆくゆくは、OpenGLまで解説したいと思ってます。
ご意見等ありましたら、BBSまで。
□ゲームプログラミングの心得
全くの初心者がゲームプログラミングを始めるにあたり、心の準備や疑問等を思ったままに綴って参ります。気付いたりした時点で随時更新して行こうと思います。
- 初心者でもゲーム作れるようになるのか?
まずこれが疑問ですな。
なります!!
わたしも、初めは出来るようになるのか疑問でした。プログラムのプの字も知りませんでしたから。しかし、思ったよりも敷居は全然低いように思います。もしかしたら、私が勝手に敷居の高いモノだと思い過ぎていたのかもしれません。日曜ゲームプログラマーへの道に私がゼロから一つのゲームを作るまでの経過が書いてあるので、良かったら読んで見て下さい。印米田 ver.1くらいのゲームなら頑張れば1日で作れますョ。
わたしでも出来るようになったので、他の人でも必ずや出来ると思います。因みに私が初めて作ったのが、KUSOGERINEです。
- 最初は試行錯誤の連続
最初のウチはこれでもか!!っつーくらい上手くいきません。しかし、それが当たり前だと思ってやると良いです。最初にネガティブなイメージを持っておくと、やっちまったとき凹まないっw
- プログラム言語は何がいいか
まずはC言語でよいと思う。C++は必要ならちょっと囓ればいい気もするなぁ。最近流行りのiPhoneアプリ開発ならObjective Cだった気がする。
私の場合、最初の頃はクロスプラットフォームが魅力だと思いJavaをやってみたのですが、動作が重く快適でなかった。快適でないゲームなんてあり得ないと思ったので、結局一番標準だと思われるC言語に。C言語の本は、手元に一冊あると良いと思う。C言語の解説はWeb上にも沢山あるけど、勉強するなら本、その時すぐに情報が欲しいならWebかな。
この講座ではC言語の解説は行っていないので、C言語の習得がまだな方は、このページの右上と左側に良書などをリストアップしたので、良かったらクリックして購入して下さい。必ず役に立つ本だと思います。
習得なんですが、印米田 ver.1くらいの物を作るとして、学生のよーに丸1日使える時間があれば、2、3週間くらい、社会人なら一ヶ月で十分だと思う。ま、人によっては、C言語習得に必要な時間は一週間って言う人も居るしね。C言語の取得は難しくないです。難しいのは開発できるようになって、欲が出てきてから。
因みにわたくし、C++は全然判りません。
- プログラミングは難しい?
難しいとゆーよりは、判りづらい感じ。プログラムは英数字の羅列なので、その見た目が難しいとゆー先入観を倍増させてると思う。私の場合は表面的な事しかやってないし、もっと奥深くやろうとすると難しいのかもしれない。
個人的に一番のネックとなったのは、周りにプログラミングしてる人がいない事で、書籍とHPだけを頼りにやっていた。プログラミングのbbsとかSNSのコミュニティーなんかは、初心者すぎて質問するだけ無駄だと思ったので全く活用しなかったです。だから、良書が一冊手元にあると良いんです。C言語をやる上で多くの方が挫折すると言われるポインタも言うほど難しい事もないと思う。これも深くやってないからかもしれないが。
君なら必ず出来る筈だ!!m9(—@_@)☆キラーン
- 読むよりやる
最初は参考書なりを読むところから始まると思うけど、自分の場合は書籍を読むのとプログラムを実際に打ち込むのを同時に始めました。訳が判らなくても取り合えず打ち込んでは実行、打ち込んでは実行って感じで。
当然、最初は何が何だかわからなかったけど、判らないと色々試すので結果的には早いペースで憶えられたと思う。なので、やりながら憶える事を心掛けると良いと思う。あと読んでても理解できない所が多々出てくるだろーけど、そーゆーのはやってみると一発で理解出来たりするので、やはり読むよりやる事だと思う。
- サンプルは丸コピしない
簡単なサンプルプログラムを弄ってでどう動作してるのかを憶えるのは非常に効率が良かったです。わたしは一度たりとも丸コピした事ないです。いやホントに。
上達のコツとゆーと人それぞれだと思うけど、私なりのコツとしては、丸コピしないで変数名でも{ }の付け方でもよいので、少し弄ってみるとプログラムがどう動作してるか判って、非常に憶えが早かったです。一発で頭に入る。個人差はあるかもだけど。
- 上手く動作してたら弄るな
プログラミングが上達してくると、過去に書いたのを清書したくなってくると思う。見やすい書き方も憶えるだろうし。でもこれをやると正常に動作してるものでも、そのせいで思わぬバグが発生してしまう事もあるので、やらなくて良いことはほっとく方が良いと思う。どうしても書き直したい場合は必ずバックアップ。
- あまり簡潔に書きすぎると訳判らん
効率のよいプログラムを書く事を憶えると、見た目も綺麗だし気持が良いです。しかし私のよーにやる気にムラがあると2,3ヶ月放置なんて事もある。そこで問題なのが、放置した後に見ると何が書いてあるのかサッパリ判らないとゆー事。細かくコメントを入れておいても、簡潔に書きすぎると結局、解読が必要になるので、簡潔よりも判り易い方を優先した方が良いかと思います。
- ソースは汚かろーが動いてなんぼ
ソースが汚いなんて事は気にする必要なんてナッシン。まずは正常に動くかどうか。多人数でプログラミングするなら別だろーけど、個人でやる分には全然問題ないと思います。慣れないうちに一々そんな事気にしてたら面倒臭くなるし、他に憶えなくてはならない大事な事とか見落とす。誰かの価値観に従う必要なんてこれっぽっちも無いと思うよ。
- グラフィックはどうする?
絵が描ける人は描けばよいのですが、描けない人はどうするか。お薦めは3Dアプリ。テクスチャなくても□とか組み合わせてモデリングしたものだけでもイイし、それだけでも一つのキャラクターになります。個人的にお薦めはワイヤーフレームです。要は線画です。線画(ワイヤーフレーム)とゆーのは、既にデザインされているよーなモノで、それだけで一種の独特な空気感を醸し出すのはそーゆー事なわけ。エッジング(平面美術の一つの手法)に近いと言っていいかな。
3Dプログラミングが判らなくても、3Dアプリでモデリングしたものをスクリーンショットを撮るなどして使用すれば、絵が描けなくても問題ないと思う。
あとは単純な図形○△□などの図形を組み合わせても良いですし、ローグのように文字と記号だけで表現してもよい筈。ゲームはアイディア第一だと思うし、グラがなくても脳味噌がそれを補完する。昔のゲームはとにかくショボかった。しかし脳がそれを補うので、ショボグラフィックでも感動出来たのさ。
- 音関係はどうする?
私の場合は、音楽が出来るので全然問題なかったですが、出来ない人はフリー素材集などを頼るが良いかと。しかし極端な話、無音でもそれは効果音となるので無くてもいいっちゃいいと思う。まぁホント極端かもだけど。しかし無音でもそれを補う程のゲーム性があればいいのではないか、無音を逆手に取る仕掛けも出来るのではないか、と思う。
しかし、個人的には音の影響って絶大なので、出来る事ならカッコイイBGMなり効果音なりあった方がステキ。聴覚効果って、思ったより凄いよ。
もしどうしても自分でBGMを作りたいのであれば、リズムマシンやTB-303等のループ系音源に頼ると良いと思う。音楽できなくたって、適当に打ち込めば勝手に音楽になってしまいます。これホント。流石にTB-303をゲットするのは難しいと思うけど、今ならフリーのソフトシンセ/プラグインで似たようなのがあるんじゃないかなぁ? 個人的には Logic Studioを進めたいけどね。これ一つで他に何もいらないです(飽く迄も個人的な感想だよ)。
因みに、私が作った簡易BGM自動作成アプリ:音楽室を興味があったら試してみて下さい。
- 数学の知識は必要か?
私が作ったアプリ程度のモノであれば必要ないと思われる。でも人によっては、必要なのかもしれない。例えばシミュレータ作るとか。よくは判らないけど。私の場合は全然ダメなので、必要なモノだけ憶えた感じ。atan2とゆう関数(ある一連の命令の事)くらいかな、必要だと思ったのは。
そのatan2とゆー角度なんかを求める関数があるのですが、実行したときに内部で実際どんな計算をしてるのか…私は全然わかっていません。しかし2箇所くらいしか弄る所がないので、そこを弄って結果を確かめて使い方を憶えました。あー、こーゆー使い方するモノなのねって感じで。なので数学の計算式は分かってないけど、欲しい結果は得られる訳です。アホ丸出しのやり方ですが、こんなんでも上手くやれてるから良いのです。感覚的に覚えた感じ。
でも、もしかしたらこのやり方では通用しない事も出てくるかもしれない。そん時は勉強するしかないね。
- SDLって何?
平たく言うと、SDLはゲーム・プログラミングする時に、色んな必要な事柄を簡単にするモノと思っておけば良いと思います。この講座でメインに使用していくものです。これがあると非常に開発が楽になる。Winでいう所のDXライブラリに当たるものかな(たぶん。詳しく知らない)。マルチプラットフォームなライブラリなので、コードを書き直す必要なくMac/Winなどのクロスプラットフォームなアプリ開発にも超お勧め。
SDL自体はとてもシンプル設計で、他のゲーム用ライブラリと比べると決して多機能ではありません。SDLは、他ゲームライブラリが始めから多機能なのに対し、やりたい事に合わせて必要なモノを追加して行くといったスタイルなのです(多数のSDL系ライブラリが公開されている)。そして、シンプルがゆえ習得が楽なのがSDLの良い所。
中級者以上になると他のSDL系ライブラリを使用し、より高度な事ができるようになるのではないしょうか。個人的には一つのコードを書いただけでマルチプラットフォームに自動的に対応してしまう所が素晴らしいと思う。ウチのアプリの全てがMac/Win両対応なのはその為。特定のプラットフォーム依存じゃ、折角良いアプリ作っても財産にならんし。OSの仕様が変わったらゴミだし。
- OpenGLって何?
OpenGLとゆーのは、
OpenGL(おーぷんじーえる、Open Graphics Library)とは、Silicon Graphics社 (SGI) が中心となって開発した3Dグラフィックスのためのプログラムインターフェイス。2Dグラフィックスも可能である。
と、wikiにあります。
SDLを使用して3DやるならOpenGLではないでしょうか。大体のPCでは標準でサポートされてるので、すぐ使うことができます。
利点としては、3Dグラフィックが出来る、勿論2Dグラフィックも出来る、習得が楽ちん、処理が高速、オープンな仕様(Mac/Winなどのクロスプラットフォームなアプリ開発に向いている)、画像などオブジェクトの拡大縮小、回転なども簡単にできる、故にグラフィックの扱いが楽。
こーゆーのは使い方とアイディア次第で面白いモノが出来ると思う。出来れば使いたいライブラリです。SDL+OpenGL+C言語で、他に何もいらない気がするなぁ。
因みに、OpenGLで3Dに挑戦にて私がOpenGLを習得する過程を書いてます。よかったらどうぞ〜。
- とにかくWindowsを参考に開発
Winな人は読み飛ばしてOKです。ゲーム開発を解説しているWebサイトは殆どがWinをベースにしたものです。MacやLinuxの人はどうしたらいいか。簡単です。どうするかっつーと、考え方だけを参考にすれば良いのです。開発環境が違うだけでプログラムの考え方とゆーか、組み方には殆ど違いがないと思われます。ですので、Winの開発ページであっても全然参考になります。でもまぁそれも最初の頃の話で、取り合えずプログラムが組めるよーになったら、あとは自分で考えて組める筈。
- 自分専用のテンプレートを作る
ある程度事が進んでくると、自分が必ずやる事が決まってきます。こーゆーのをその都度やるのは非常に面倒臭いものです。なので、自分なりのテンプレートを作ると良いです。プログラミングにかかわらず、画像、効果音、BGM、等々。
こーゆーの作っておくとホント楽なんだよ〜。
- 大志を抱け!!
ある程度プログラムが出来てくると、それだけで結構満足しちまいやす。そして満足した結果、やらなくなると。これでは時間を無駄に消費しただけで意味がない。なので初っぱなから完成度の高い作品をを作る事をお薦めします。
すると壁は幾つも出現するのですが、それを乗り越えようとするので、いつの間にかスキルが身についてたりする。まぁ完成度の高い作品っつっても自分なりにって事だよ。
自分の場合は完成度の超低い糞ゲー作品を作ろうと思ってたのですが、でもだんだん凝り出してしまってそれなりに時間を掛けて作りました。でも初めの作品で凝りだしたせいで、大変だったのは最初の頃だけだでした。
でも大変なこと自体も楽しめたと思う。日記のネタにしたりして。そーゆーのって大事だと思うよ。
- 推奨スペックは低めに!!
最新のPC環境があるユーザーは、そうはいないっす。なので、推奨スペックは可能な限り低く設定すべし!! これを怠ると、多くのユーザーに遊んで貰えません。
因みにウチは、現在でも2001年製のPC(Macだけど)をよく使います。なので、ウチのアプリはそこらへんのPCスペックを基準に開発してるざんす。でも、厳密にいうとCPUスピードが300MHzくらいあれば動くよウチのは。スゲェぜ!!(そうでもない?)
|
1個戻る←
→次を見る
目次へ戻る
|
|
|
|
本サイトの全部を無断使用する事を禁じます。紅音製作所より。COPYRIGHT(C)VENIO WORKS. ALL RIGHTS RESERVED.
|
|