初心者のためのゲームプログラミング
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001ー
02/06/04 00:45ID:cA3D98JA将来は、企画もできるゲームプログラマーになりたいと思ってます。
そこでなんですが、私はまだパソコン歴2年くらいしかありません。
また、プログラム歴は0年です。
なので、どこからどうやって勉強していいのかまったくわかりません。
そこでなんですが、みなさん私に
どこからどのような過程で勉強していけばいいのか教えてください。
RPGを作りたいです
0933932
04/04/01 03:09ID:ree+3Ujs0934929
04/04/01 03:44ID:KHDslUNrとりあえず、皆さんに教えてもらった方法を実践したいと思います。
本当にありがとうございました。
0935名前は開発中のものです。
04/04/03 11:35ID:CEwxIkewそのポインタのあぶねー使い方をやめろ。
0936名前は開発中のものです。
04/04/03 13:07ID:RGZrBuJ3とりあえず対案を提示してみてくれ。面白そうなので。
0937名前は開発中のものです。
04/04/03 20:39ID:CEwxIkew>Scene *currentScene; // グローバル変数
こんな怪しいものじゃなくて、管理クラス用意しろ。
0938名前は開発中のものです。
04/04/03 21:11ID:BY5/8S1Mで、その管理クラスを用意する利点はどこら辺にあるの?
0939名前は開発中のものです。
04/04/03 23:12ID:Z6SyAO1fてか、いちいち食ってかかるような手間じゃないと思うんだが
0940名前は開発中のものです。
04/04/04 01:27ID:2FxHnCxPまあ、>>939の言うとおりだ。
もちろん、管理クラスを作っても、
インスタンスをグローバルにおいちゃったら駄目だぞ。
0941名前は開発中のものです。
04/04/04 07:03ID:RKul7yqWまぁ、最低限インスタンスがないときは、NULLポインタで明示する
ような簡単な仕組みは必要かも。管理クラスのメンバーか
グローバルかってのは、あまり危険度と関係はないとおもわれる。
ようはちゃんと使用前にインスタンシエートされ、使用後にかたずけられる
ことさえ保証されていればいい。管理クラスのコンストラクタ・デストラクタ
でちゃんとやってなかったら結局危険なのには変わりはない。
Scene *currentScene = NULL; // グローバル変数
init(){ currentScene = new Scene; }
purge() { if( currentScene ) delete currentScene; currentScene = NULL; }
0942名前は開発中のものです。
04/04/04 07:17ID:K1YqnP+3え、じゃどうすんの??
・pImplで?
・シングルトンで?
・メソッドの引数渡しのみ
上二つはほとんど同じだしな
下みたいな徹底は果たして可能なのか?
0943940
04/04/04 14:54ID:2FxHnCxPもちろん「メソッドの引数渡しのみ」。
キチンと設計ができていれば、問題ないはずだよ。
また、「メソッドの引数渡し+受け取ったポインタのメンバ保存」もホントはしちゃ駄目。
必要ならその都度引数で渡してもらう。
徹底は可能かどうかってのは、その人次第だから勝手にしてくれ。
ちなみに俺はできてるよ。
0944931
04/04/04 15:12ID:F19YKyuz色々言われてるな(^_^;)
キチンと拡張性を考えるんだったら、遷移テーブルを作ってシーンオブジェクトが
終了するときに返すリターンコードで次のシーンを決められるようにしたほうが
いいと思います。各シーン間をつなぐインターフェース役の関数なりクラスを
ひとつひとつ書く必要があるんでちょっと面倒ですけどね
0945940
04/04/04 15:15ID:2FxHnCxP管理クラスを作ってもScene *currentScene = NULL;←こういうの作って
使いまわすってことは関数内でのみで完結するならやるけど
普通はやらないよ。(※)
処理的にも ポインタに突っ込む=カレントのチェンジ とするよりも
カレントのチェンジ処理をする場所を固定しておいて、
次のカレントチェンジのリクエストを出して、
カレントのチェンジ処理のところに来て、はじめてカレントのチェンジ処理を
実行するってしたほうがバグが出にくいんじゃないかな。
※糞設計にぶちあたって使わなきゃならないときもあるけど。
そのときはリスト・ツリー構造のくせに個々を識別するIDが無い。
配列で管理してるくせに時と場合によって順不同になる場合。とかだけかな。
ちなみにこーゆー場合は使うしかない。と思うw。
0946名前は開発中のものです。
04/04/04 21:08ID:v1VWQRb5「初心者のためのゲームプログラミング」だぞ
俺は質問した香具師じゃないが、初心者の俺には全く意味分からん
シングルトンって何?遷移テーブルって何?
(…いや別に知りたくなったら自分で調べるから教えてくれなくていいけどさ)
とにかく説明してくれるんなら、
もっと分かりやすく簡潔に教えてあげてくださいよ、先輩方。
0947名前は開発中のものです。
04/04/04 23:05ID:ENOyCk/Q1: タイトル画面 時間経ったら2へ スタートは5 オプションは3
2: デモ画面 終わったら1へ
3: オプション画面 EXITは1へ 操作コンフィグは4へ…
みたいの。
シングルトンてのわぁー、なんだ、
二ついらない一つでじゅうぶんなオブジェクト(うまい例が思いつかん)を、
一つだけ作るっていちいち覚えとくのがマンドクセので、オブジェクトに自分で何とかさせるd。
0948名前は開発中のものです。
04/04/04 23:56ID:8gl5+fjottp://www.interq.or.jp/moonstone/person/del/seki_00.GIF
0949名前は開発中のものです。
04/04/05 00:33ID:CGA6pWZs二つ要らないというか、あったら困るオブジェクトといえば入出力。
0950名前は開発中のものです。
04/04/05 01:16ID:2yX+Kvf5キチンと拡張を考えるなら
シーンを複数同時に再生できるようにするね。俺なら。
ゲームでは別々の世界(シーン)を同時に動かさなきゃならないなんてのがよくある。
画面に映すものはアクティブなカメラによって決定する。
こうすれば、クロスフェードや2画面以上のプレイなんかの設計も楽だ。
さらに次のシーンのロードを別スレッドで処理できるようにして
先読み処理なんかも入れられるようにするとこの辺は煮詰まってくるかな。
まだまだ修行がたりねーよ、にーちゃん。
シーンをネストのあるタイムラインとして考えればどう設計すればいいかはわかってくるはず。
Flashとかモデリングソフトのアニメーションツールさわってみなはれ。
0951942
04/04/05 10:25ID:LanhLWmnサンクソ
引数のみならず、ポインタ(オブジェクト)の保存もなしか?
# ハンドルオブジェクト(ユニークなIDを保持したもの)での保存もなしなのか?
しかし、徹底できたときのことを考えると、挑戦しがいははありそうだ
0952名前は開発中のものです。
04/04/05 17:22ID:svTBfR1P>>30への猛批判を見てたら、DirectXでゲーム作るのって難しいんだなって思ってたけど、
自分にあったライブラリを使ったら結構イケるものなんですね
簡単なゲーム(?)だけどできました。この調子でブロック崩しに挑戦してみます
0953名前は開発中のものです。
04/04/06 04:46ID:SYKT3ZhJ任意の時点で画面に表示されている全体の事象を「シーン」として
考えたほうがいいんじゃなかろうか?つまり絶対唯一のものとして定義するの。
ていうかそうしないで、シーンがネストするーとか言った途端にいったい何が「シーン」で
何が「シーン」でないのかわからなくはならないかな?
0954名前は開発中のものです。
04/04/06 06:01ID:SYKT3ZhJ何が一般的かといえば、ループはひとつだけ、
抽象化階層のできるだけ上に置いて、そのループの中で
UpdateFrameとかRenderとかいった名前がついたメンバの画面更新メソッドを
呼び出していくのが一般的だよ。某有名FPSもそうなってました。
0955名前は開発中のものです。
04/04/06 06:09ID:RiJS7OfKルートノードを、グローバルか別クラス内のメンバーのどっちに置くかは
実装次第で素直なやりかたでいいと思う。
class CSceneGraph
{
vector< CSceneGraph > childs; // N個の子ノード
CMesh* pMesh;
...
};
0956名前は開発中のものです。
04/04/06 06:54ID:mn+0E41T色々考えたことがあるけど
1つの世界を構成するのに必要なセットをシーンと
考えた方がわかりやすいので絶対唯一のものとすると
どうしても手詰まりになる。
ちなみに俺の考えるシーンはカメラがあってそこに映る世界があってこれで1つのシーン。
RPGなんかの動作だとワールドマップからステータス画面へなんてので
ワールドマップで1つ、ステータス画面で1つって感じで2つのシーンを用意しておく。
ワールドマップのシーンの動作を停止したまま、ステータス画面のシーンを動作させる。
ステータス画面のシーンを止めた後、ワールドマップのシーンの動作を開始する。
と、こんな感じで使う。
絶対唯一のものとした場合だとこの動作が1つのシーンの管轄内になるということなので
結局、俺の考えるシーンと似た概念が他に必要になるだけだと思う。
0957名前は開発中のものです。
04/04/06 08:46ID:SYKT3ZhJ>シーンと似た概念が他に必要になるだけだと思う。
カメラと一対一の関係が必要なものなのであれば、それはビューと呼ぶことを提案しますよ。
シーンという名前はもっと全体的な概念のためにとっとこう。
そうしないとDirect3Dのマニュアルが読みにくくなるよ?
0958名前は開発中のものです。
04/04/06 09:47ID:hOijVEpi0959名前は開発中のものです。
04/04/06 11:18ID:xIK77TWb0960名前は開発中のものです。
04/04/06 16:10ID:mn+0E41Tいや、カメラと1対1というわけではない。
>>958
学生の作るものではこんなことは必要にならないだろ。
0961名前は開発中のものです。
04/04/06 16:52ID:ngSbzNus0962名前は開発中のものです。
04/04/06 17:15ID:mn+0E41T´´
○/ //
/|/ Σ
|
0963名前は開発中のものです。
04/04/06 17:39ID:DsC04TsX何でだろ?
0964名前は開発中のものです。
04/04/07 03:56ID:Ui7ZoJNN∧_∧
( ;´Д`) 三三三三三三三 「初心者のための」
( つつ
r´ヽ ヽ
し´ (_)
0965名前は開発中のものです。
04/04/07 10:11ID:OLcSXc4Qそして、この警告は実に正しい。
0966名前は開発中のものです。
04/04/07 11:01ID:vzicT/hF20 print "OK"
30 end
0967名前は開発中のものです。
04/04/07 11:54ID:nJz78kEH見たことないな・・・
0968名前は開発中のものです。
04/04/07 12:49ID:6DasGiQpたしかコメントのためのだった希ガス
0969名前は開発中のものです。
04/04/07 14:26ID:t0mds04pand or の&& ||みたいなもんで
「rem」の省略形が「'」なのか。
0970名前は開発中のものです。
04/04/07 20:41ID:zIqvWm7A昔のBASICで「REM」でコメントを書くと「'」より実行速度が速くなるとか書いてあったよね。
*/
0971名前は開発中のものです。
04/04/07 22:50ID:6DasGiQp0972名前は開発中のものです。
04/04/08 13:59ID:r6Mgi8cJ0973名前は開発中のものです。
04/04/08 21:46ID:/mitHwmx0974名前は開発中のものです。
04/04/08 21:56ID:J2Kq5kWi0975名前は開発中のものです。
04/04/10 06:37ID:N0rIs2WL0976名前は開発中のものです。
04/04/10 12:11ID:pNKABB3n0977名前は開発中のものです。
04/04/10 17:16ID:9BVc8On10978名前は開発中のものです。
04/04/10 21:48ID:qf9IC58jinteger i,x
do i=1,10
x=1.0/real(i)
if(x.lt.0.5) then
goto 100
endif
enddo
100 continue
0979名前は開発中のものです。
04/04/12 18:08ID:wa+50rOyCは少なくとも必要だから必死こいて勉強せんといかんのぉ。
プログラムや企画も出来るクリエイターってどちらか疎かになるんで
絞った方が良いのぉ。特に企画職への応募は毎年物凄い数なんでプレゼン
能力、企画力等は当然でパワーポイントが使えたりVBでデモゲームなんか
が作れる能力位は必要じゃあ。
0980名前は開発中のものです。
04/04/13 20:39ID:WwA+Ieno0981名前は開発中のものです。
04/04/13 22:10ID:ECMuEzoDfopenでいいじゃん。
0982名前は開発中のものです。
04/04/13 23:10ID:DitXmy+K教えて下さい。お願いします。
0983名前は開発中のものです。
04/04/14 00:52ID:dAhCBAAmマルチスレッドなどで使用する排他処理手法のひとつで、クリティカル
セクション内をレベル分割し、それぞれを入れ子状にロックすること。
主にデッドロックを防止する目的で使用される。
0984942
04/04/14 05:12ID:DxoGl4Gpたまたま見たyaneSDK4Dのサンプルで使われていたよ
神クラスを渡しているだけに見えたけど、
それぞれをシングルトンにしたり、神クラスをシングルトンにするよりはよさ気だな
他にも参考になるものがあるといいのだけれど
0985名前は開発中のものです。
04/04/14 14:52ID:QzJ05j2pお答えいただきありがとうございます。
PPF-O-MATIC3でパッチを当てる時に
「Binblock Patchvalidation failed」
と表示されるのですが、どうすれば上手く当てることが
できますか?アドバイスお願いします。
レス数が950を超えています。1000を超えると書き込みができなくなります。