ページ 11

龍神録プログラミングを学んだあと

Posted: 2011年5月01日(日) 19:17
by SG
こんにちは、たびたびお世話になっております。SGと申します。

件名の通り、龍神録プログラミングを学んだあとの
ゲームプログラミングの勉強法をご教示していただきたく、書かせていただきました。

1.Cの基礎文法はだいたい分かっている。
2.龍神録プログラミングの館に書かれていることは理解している。新しい弾幕やエフェクトの追加もできる。
3.C++は「やさしいC++」などの初心者本は理解している(つもり)
4.しかし「ゲームプログラマになる前に覚えておきたい技術」は全く理解できない。(何がわからないのかもわからない)

龍神録の構成を真似してCでオリジナルゲームを作る方向でいこうかと考えていたのですが、
管理人さんは新ゲームプログラミングの館で”カプセル化”の重要性を説かれてますので、
C++をがっちりやっていくべきかと考えを改めかけています。どちらがいいでしょうか?

C++をやっていくべき、という場合は特に3、4の間の溝の埋め方を教えていただきたく思います。(4が難しすぎるので)
良い本や、サイトなど。(おそらく設計の仕方だとかそういう基礎的な部分がわかっていないんだと思っているんですが)

なお本サイトのファンとして管理人さんへ感謝・エールを送るとともに
龍神録をC++で解説してくれたらなーと夢想しています、と、メッセージを(笑)

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月01日(日) 20:45
by softya(ソフト屋)
とりあえず作ってみたいゲームをC++でカプセル化を意識して作ってみてはどうでしょうか?
継承とか難しい事は置いておいてちょっと便利なC言語として使ってみることから始めると良いと思います。

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月01日(日) 23:18
by たかぎ
SG さんが書きました:龍神録の構成を真似してCでオリジナルゲームを作る方向でいこうかと考えていたのですが、
管理人さんは新ゲームプログラミングの館で”カプセル化”の重要性を説かれてますので、
C++をがっちりやっていくべきかと考えを改めかけています。どちらがいいでしょうか?
ゲームプログラミングに限りませんが、ソフトウェアの開発はいろいろな要素が絡み合っています。
そのため、いくつかのことを並行して習得していかないと、すぐに手詰まりになります。
ですから、DXライブラリの使い方やゲーム特有の技法もやりつつ、C++の基礎も固め、Windowsプログラミングも習得し、数学や物理も勉強し、etc.
といった具合に進めていく必要があります。

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月02日(月) 00:30
by SG
ソフト屋さん<
コメントありがとうございました。やはり実践がもっとも効率が良いのですね。
ちょっと手を動かしてきます。
RPG講座楽しみに見ています。頑張ってください。

たかぎさん<
コメントありがとうございました。
やはりというか、必要な努力は怠ってはいけないようですね。
業界は違いますが開発職に就いているだけに耳が痛いです。

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月02日(月) 00:47
by Dixq (管理人)
SGさん

有難いお言葉恐縮です。
本サイトを熱心にご覧下さりありがとうございます。

>> C++をがっちりやっていくべきかと考えを改めかけています。どちらがいいでしょうか?
>とりあえず作ってみたいゲームをC++でカプセル化を意識して作ってみてはどうでしょうか?

私もsoftyaさんの意見に賛成です。
とりあえずクラスだけ使ってみてはどうでしょうか。
なるべく見せる必要のないクラスにはメンバ変数や関数を見せないようにすることを意識すれば自然にあるべき設計に落ち着いてくると思います。
それにがっちり勉強だと思って挑むと楽しさも半減してしまうこともあるでしょうから、
肩の力を抜いて楽しんで作りながら学んで良いかと思います。

抽象的な話ではありますが、良い設計の一つに「設計書無しで人に理解してもらえる」という基準があること教えられたことがあります。
モジュールがきちんと分けられていて、関数名や変数名にも統一性があるだけでもずいぶん読みやすくなることでしょう。
大きなシステムでもザッと見てなんとなく意味が分かるようにするためにも隠蔽化は必要でしょう。

TVのリモコンは例えば「電源ボタンを押したら電源が入る」という操作だけ表に出せばよく、電源ボタンが押されてから信号がTVに送られるまでのメカニズムを表に出す必要はないのです。
中身を理解しなくてもそのモジュールが使えるようになっていれば、よい設計になっている場合が多いです。

自分が作ったコードをオープンソースで公開した時、ユーザーが自分のゲームにモジュールをはがしてポン付け出来るような設計になっていれば再利用性が高い設計になっていると言えるでしょう。

その辺を意識されてはいかがかと思います。

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月02日(月) 00:51
by softya(ソフト屋)
SG さんが書きました:RPG講座楽しみに見ています。頑張ってください。
ありがとうございます。
一応、戦闘システムまでは完成して第一部完了しております。
RPG講座は、かなりカプセル化は意識して組んであるので良かったら参考にしてください。

それとある程度C++の理解が進んだら例えば龍神録をクラス化することはかなり勉強になると思います。
かなり再構成しないとクラス化は出来ませんので結構大変です。
途中までの章でも良いと思います。

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月02日(月) 18:44
by SG
Dixqさん

お返事ありがとうございます。龍神録のページはとてもためになります。
このページがなければ路頭に迷っていた趣味グラマの人はとても多いと思うのですよ。
私もとても助かっています。

ブラックボックス化を推奨という概念はとても興味深いですね。
私の業界では”現場の運転員の方にも機構は明らかに”という風潮が強いのでそのような思考にたどり着けていなかったように思います。
大変参考になりました。

当面はのんびりC++をいじっていくのを本筋にしつつ、あれこれやっていきたいと思います。

ソフト屋さん

コメントありがとうございます。
RPG講座、ちょっと難しいのでまだ最後まで追いつけていませんが地道についていっております。
よろしくお願いいたします。個人的にはとても需要の高い講座だと思っています。

ちなみに、一度龍神録をC++で書いてみようとはしたんですよ。
途中で全クラスのメンバがpublicになってしまったので、出直しです(笑)

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月02日(月) 22:12
by ISLe
カプセル化に関してはC言語の範疇で経験を積むこともできるかと思います。

・外部変数はすべてstatic宣言する
・ふるまいを関数で定義する
とした上で、externの記述を完全撤廃して機能単位・オブジェクト単位でソースファイルを分割していきます。
それができたら、ソースファイル単位でクラスに変換できるはずです。

Re: 龍神録プログラミングを学んだあと

Posted: 2011年5月03日(火) 02:43
by SG
ISLe さん

コメントありがとうございます。
なるほどなるほど。カプセル化自体は考え方であってツールにはよらないということですか。
了解しました。グローバル変数については(なるべく)使わないことにして、今後進めていきたいと思います。