[過去ログ] ゲームプログラミング相談室【Part5】 (970レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
119: 02/12/27 23:28 ID:1/oKDJhP(1) AAS
あんたらが 何話してんのか さっぱりだ
オレが悲しい 年末2ちゃん
当方C++歴5年、DirectX歴1年、4月から新人プログラマ
がっくり。
120: 02/12/28 01:08 ID:w/8XZg/Y(1) AAS
うんうん。イベントコントロール関係はスクリプトコンパイラ(独自)で
バイナリを吐いて、それを解釈しつつ実行というのが多いと思う。
UCSD PASCALみたいな感じか。
121: あぼーん [あぼーん] あぼーん AAS
あぼーん
122(2): 02/12/28 16:40 ID:XAkUMvyT(1/2) AAS
質問させていただきます。
私は最近Cをはじめた者です。一つ疑問があります。
アプリケーションなどを開発するのと
ゲームを開発するのは、まったく同じものと考えてよろしいのでしょうか?
使用する言語が同じだとしましても、アプリとゲームを開発するのでは、
何か違いがあるのでしょうか?最近非常に悩んでおります。
専門学校などでも、アプリ開発の学科もあれば、「ゲームプログラム学科」
省2
123(2): 02/12/28 16:55 ID:6+UzED5V(1) AAS
>>122
違いは無い。
124: 122 02/12/28 16:58 ID:XAkUMvyT(2/2) AAS
>>123さん
ありがとうございます!
コレで悩みが全て飛びました。
気がねなく勉強できます。ありがとうございました!!
125: 名無しは開発中 02/12/28 17:36 ID:6v0StEIP(1) AAS
中間言語というのはバイナリなのですよ。つまり
0102aabb...とかいう16進数なのです
プログラム中では定数をあてはめます。
#define command_1 0x01
#define command_2 0x02
.....
command_kaiseki(int no){
省9
126: 02/12/28 17:45 ID:9/qiHtyl(1) AAS
スクリプト言語作るにあたって、
yaccやlexを使えるようにしておくと楽でいいかもね。
あと、参考スレ
2chスレ:gamedev
127: 02/12/28 21:35 ID:a5KU/+oB(1) AAS
野球拳を作りたいのですが何を使えばいいと思いますか?
128(1): 02/12/28 21:43 ID:LbjIcZ3v(1) AAS
登場人物には女の子を使えばいいと思うよ
129: 02/12/28 22:26 ID:Q6tgt9eh(1) AAS
>>128
男の子もキボーン (笑)
130: 02/12/28 23:56 ID:/o2fnhX+(1) AAS
野球拳ってどんな拳法ですか?
131: あぼーん [あぼーん] あぼーん AAS
あぼーん
132: 02/12/30 13:32 ID:KFhb8kwQ(1) AAS
>>123
大きく人生を狂わせるような発言では?
133: 02/12/30 13:48 ID:c0Wr5svx(1) AAS
プログラムを学校で習おうとする時点で人生が狂っている
134: 02/12/30 23:20 ID:9kumBzua(1) AAS
プログラミングの知識がある方、興味を持たれた方、
ロックマン知らなくてもどんな人でもいいので少しでも手助けを
脳内ロックマンを作るスレ
2chスレ:nanmin
135: あぼーん [あぼーん] あぼーん AAS
あぼーん
136(2): 03/01/04 14:14 ID:Oaz/Glfr(1/2) AAS
あのさ、今シューティング作ってるんだけどさ。
敵の出現場所を定義するのがすごい面倒なんですよ。
ファイルに、敵が現れる時間、場所、種類などを書いて、それを読み込ませて
るんだけど、ちょっと間に敵を追加したいと思ったら、それ以降の敵の時間を
全部ずらさなければいけなくなります。
みなさんはどんなフォーマット使っていますか?
137: 03/01/04 14:18 ID:RYWMO7ZD(1/2) AAS
XMLみたいなmachine/human readableなフォーマットにして、
適切なツールを作るのが賢明じゃないかなあ。
138: 03/01/04 14:19 ID:Pe6gSFnI(1) AAS
>>136
直前の敵との相対時間
139: 03/01/04 14:36 ID:Oaz/Glfr(2/2) AAS
う〜ん。
相対時間ならそれはそれで、面倒になることはないかな…
一応やってみますか。
140: あぼーん [あぼーん] あぼーん AAS
あぼーん
141(6): 03/01/04 14:41 ID:Siq0Vq2w(1) AAS
2人で戦えるゲームを作ろうと思うのですが、二人が同時にボタンを押したら同時に処理しないといけないのでしょうか?
これだとペンティアム4のハイパースレッド機能という奴を使わないといけないのでしょうか?
最近PCをX68000からWindowsXPに変えたばかりなのでよろしくお願いします。
142: あぼーん [あぼーん] あぼーん AAS
あぼーん
143: 03/01/04 14:59 ID:RYWMO7ZD(2/2) AAS
>>141
mainloop()
{
一人目のキー処理();
二人目のキー処理();
時間を進める();
描画();
省3
144(1): 03/01/04 15:02 ID:HHCJx2gu(1) AAS
>>141
まぁマルチスレッドで処理するという手もあるが、見たところゲーム製作は
初心者(失礼)っぽいので、擬似タスクから勉強したほうが良いと思うよ。
参考URL
外部リンク[html]:www.hh.iij4u.or.jp
145: あぼーん [あぼーん] あぼーん AAS
あぼーん
146(1): 03/01/04 19:09 ID:b7FiLgbb(1/2) AAS
>>144
キー入力の処理とそれとは、まったく関係ないが…
147: 03/01/04 19:19 ID:b7FiLgbb(2/2) AAS
>>136
手を抜きたければ配列ってのもあり。
static unsigned int enemys[] = {
1, 0, 0, 0, 0, 0, 1, // 0 frame目
0, 0, 0, 1, 0, 0, 2, // 60 frame目
0, 0, 0, 0, 0, 0, 2, // 120 frame目
..
省6
148(1): 03/01/04 19:25 ID:Sa70MEqM(1/2) AAS
>>146
キー入力とは関係ないが、
> これだとペンティアム4のハイパースレッド機能という奴を使わないといけないのでしょうか?
こんなことを言ってる様だと、擬似タスクの勉強からはじめろって言いたくなる
気持ちもわかるだろ。
それじゃあーハイパースレッド機能のないX68000では二人用のゲームは
作れないのか?と問いたくなるけど(w
省2
149: あぼーん [あぼーん] あぼーん AAS
あぼーん
150(1): 03/01/04 20:57 ID:iAU/RP0w(1) AAS
そこで疑似タスクなんてチンケな物出してくる君の実力もそこまで。
ゲームのメインループとキー入力の関係を教えた方が百倍為になる。
151(1): 03/01/04 21:19 ID:tSU5Xw8/(1/2) AAS
入出力は、本気で考えると意外と深いぞ。
昔のようなハードウェアを 1 つのプログラムで占有できる環境なら
ポーリングさせれば良いんだが、今時の環境についてマジに理解しよ
うとすると、割り込みと OS 側の処理に関する知識が必須になる。
とりあえず「DirectInput では現在のキー入力状態を取得する API
が提供されてるから、それを使えば良い」ぐらいの理解で済ませてお
いて、細かい話は必要になるまで忘れといた方が幸せじゃないかね。
省9
152: 03/01/04 21:31 ID:mQYZkk6z(1) AAS
俺は151みたいなのが嫌いです。
153: 148 03/01/04 21:41 ID:Sa70MEqM(2/2) AAS
>>150
> ゲームのメインループとキー入力の関係を教えた方が百倍為になる。
ハァ?何それ?・・・って感じですがなにか?
>>151
141のレベルを推測するとそこまで考える必要は全然ないと思われ。
そんなのは逆に知識ひけらかせてるだけにしか見えないが。
そもそも質問にマジレスするとなると、まずほとんどの二人用ゲームで
省3
154: 03/01/04 21:59 ID:tSU5Xw8/(2/2) AAS
> 「同時に処理する必要はないし、厳密にはできない」
そもそも「同時」ってのが何を指してるのか考えないといかんよな。
>>141
現実世界だと時間は連続して流れてるわけだが、ゲームではふつー 1/60 秒なり
何なりの適当な間隔でゲームを進行させる。だから、入力を処理するのも「押し
たらすぐ」ではなくて、押したらそれを覚えておいて、次のゲーム進行のタイミ
ングで処理すれば良い。
省1
155(3): 03/01/04 23:09 ID:UD5seDi4(1) AAS
俺みたいなヘタレ高校生がゲーム製作で食っていけるように
なるにはどうしたらいいんだ!?
人生の先輩達よどうか教えておくれ・・・
156: 03/01/04 23:20 ID:9YV/5Oa6(1) AAS
>>155
マジレスすると、ゲーム以外のことを沢山勉強すべし。
157: 03/01/05 01:16 ID:BX37WwrG(1) AAS
プログラマになりたいなら、プログラミングはやっといた方が良いけど。
あと数学と物理と英語。
158: 03/01/05 02:04 ID:Y2P5Wwxz(1) AAS
>>155
ゲーム制作をさせてくれる会社に入りましょう
159: 141 03/01/05 03:22 ID:GM2t1dvX(1) AAS
んま!こんなに馬鹿が釣れましたわ!
160: あぼーん [あぼーん] あぼーん AAS
あぼーん
161(1): 03/01/05 07:23 ID:cPL0Ma17(1) AAS
>>155
プログラマになりたいなら、大学までプログラムは放って置いて
高校までに英語をネエティブ並みに話せる、書ける、読めるようになっておきたい。
俺が。
162: 03/01/05 20:39 ID:XJftI3rc(1) AAS
>>161
俺漏れも
163: 03/01/05 21:51 ID:+ZilYbBV(1) AAS
英語はプラスアルファに過ぎんから、本業のプログラミングできんと話に
ならんぞ。まぁ、英語も読むぐらいはできないと困るが。
164: 03/01/17 11:54 ID:zxXu494p(1) AAS
AA省
165: [age] 03/01/23 12:30 ID:B/UbhrUo(1) AAS
age
166: si 03/01/29 11:03 ID:03M+lMkZ(1) AAS
簡単なゲームのプログラミングぅpしてください。
C言語で希望です。
167: 03/01/29 13:57 ID:2TLqok57(1) AAS
ローグ・クローン2 日本語版 ソース
外部リンク[html]:www.vector.co.jp
168: あぼーん [あぼーん] あぼーん AAS
あぼーん
169(2): 03/01/29 21:03 ID:SdJpN0Xo(1/3) AAS
外部リンク:www.hh.iij4u.or.jp みながら勉強してるんですが、
ちょっと疑問に思ったので質問させてください
たとえば、飛行機を表すタスクがあって、飛行機が移動しますね。
で、3Dのゲームだとカメラから描画の順番とか決めたりする処理がきて、で、そのあとに描画本体が来ますね。
とうぜん、飛行機の描画処理は飛行機タスク自体がおこなっていると思うのですが、ここで疑問が生じました。
飛行機タスクは、1フレームの中で優先順位が変わるたびにリストの中を移動しているのでしょうか?
それだとリスト中の位置を特定するのにいちいちサーチをしているのでしょうか?
省3
170: 03/01/29 21:18 ID:fBpSUHac(1) AAS
>>169
>飛行機の描画処理は飛行機タスク自体がおこなっていると思うのですが
ダウト
171(4): 03/01/29 21:26 ID:SdJpN0Xo(2/3) AAS
はぅ。
そいでは、どうやって描画してるのでしょう?
飛行機描画関数に飛行機を渡しているのかな?
172: 03/01/29 21:36 ID:SdJpN0Xo(3/3) AAS
っていうか、聞きたいことずれました。
要するに、
1.タスクはリストの中を移動することがあるのですか?
Yes -> 2 / No -> 3
2.リストの中をどうやって移動するのですか?
3.そしたら(描画をするのが飛行機タスクじゃないにしても)どうやってタスク間で情報を共有していますか?
173(1): 03/01/29 23:11 ID:KEqojg40(1) AAS
タスクは前タスクと後タスクのアドレス情報を持ってるから
移動するとか考える必要ないんじゃない?
あと、タスク間での情報の共有って? 各タスクから共通の関数呼べば済むのでは?
174(1): 03/01/30 00:37 ID:L8+k5MAr(1/2) AAS
>>171
描画をタスク自身が行うとは考えにくい。
タスクというレベルにまで到達しているなら、
「描画専門タスクに描画を依頼する」
という方式になっていると思う。
描画されるものとしての飛行機と、
アプリ内でのオブジェクトとしての飛行機を、
省1
175: 03/01/30 02:17 ID:BqRtFvdb(1/4) AAS
>>173
2方向リスト処理ですよね。この場合、私の質問は、STLで書いちゃうと
std::list<task *> tasklist;
tasklist.remove(this);
tasklist.insert(newpoint, this);
の newpoint の位置をどうやってチェックしてるんですか?っていう意味だったのです。
listの先頭から全部なめていくのかなー・・・、それとも別の頭いいやり方があるのかな〜と。
省9
176(1): 03/01/30 02:20 ID:ZJQj5onM(1) AAS
>>171
そのページの概念は処理順が安定している内部処理に絞られた物なので、
描画には向かないです。つーか勝手に用語用法決められても(汗
描画系で言ったら、
フレーム毎に「TCBアドレス+カメラ距離のセット」のリストを作成し、
距離基準にソーティングした後、リストを順になめて描画をする
様な処理が必要です。(実際にはマルチパスレンダやらなにやらで、優先度
省1
177: 03/01/30 02:26 ID:BqRtFvdb(2/4) AAS
あ、情報共有のところ、修正って言うか追加です。
「飛行機作るときに、a1 に a2 へのポインタかませば良いんじゃないの?」
っていうのは、飛行機を構成する疑似タスクがたくさんになってくると、メモリ領域の中身が
ポインタだけで埋まっちゃう・・・とか思ったので、使わないんじゃないかなとおもいました。
178: 171 03/01/30 03:30 ID:BqRtFvdb(3/4) AAS
>>176 なるほどです。めもめも。
#これで書けたら、うれしなっとプチ
179(1): デフォルトの名無しさん 03/01/30 03:38 ID:dIfJNfqd(1) AAS
私は new 飛行機 でやってる人なので、参考になるかわからんけど…
newpointの位置
「ここから先は敵タスク」みたいな目印用のタスクを何個か加えて、
それのポインタをグローバルで持たせてる。
それ使って大雑把にサーチした後に細かく見てる感じでやってるけど… 他に良い方法あるのかな
情報の共有
基本的に、子が親のポインタを持つのみ。
省7
180(1): >>169 03/01/30 03:47 ID:Lo8nF9w1(1) AAS
3Dの場合、半透明部分は後で描画しないといけないとか、細かい処理があるので、
「3D描画エンジン(仮名)」というような割合高機能なクラス(もしくは関数群)を作って、
それに描画を依頼する形で考えると良いのでは。
1.各物体オブジェクト(タスク)は、「3D描画エンジン」に指定位置での指定3Dモデルの
描画を依頼する。
2.「3D描画エンジン」は、それらの情報(位置、方向+モデル)を総合してソートなどして
描画順などを決め、一気に描画する。
省3
181: 03/01/30 07:34 ID:xfHNFz6r(1) AAS
WM_PAINTで一気に描画するWindowsの基本と一緒だね。
タスクは結局ステートを変更するだけに過ぎない。
182: 171 03/01/30 13:02 ID:BqRtFvdb(4/4) AAS
>>179
>情報の共有
子同士で何かするときのイメージなんだけど、親を掲示板に見なして、
A「なんかすっぜ」
B「おー」
B「おれはやったぜ」
A「そかりょかーい」
省6
183(1): 03/01/30 14:45 ID:U9i8fY1r(1) AAS
>情報の共有
俺は、ポインタに1クッションおく「ハンドル」を使ってる。
Windowsのウインドウハンドル(HWND)なんかと概念は同じ。
ポインタを直接持たずに、ハンドルからポインタを得る。
安全だけど、面倒くさい。
参考URL
外部リンク[html]:www2.tky.3web.ne.jp
184: あぼーん [あぼーん] あぼーん AAS
あぼーん
185: 03/01/30 21:45 ID:L8+k5MAr(2/2) AAS
>>183
破滅的な状態を回避するには有効だと思う。
186: 03/01/31 10:15 ID:6VWpyBYm(1) AAS
要するにMVCモデルとかDocument-Viewモデルというやつだな。
187(2): 03/01/31 11:35 ID:4bR+Vd+q(1/3) AAS
すみません質問です。
CGIはサーバ&クライアントの関係を用いて
データのやり取りとりを行いデータの読み出しや書き込みをしていますよね?
ではGAMEではどのようにしてセーブをおこなったりしているのですか?
ゲームボーイやファミコンの本体にサーバとクライアントの機能が
備わっているとは思えないのですが…。
どのような仕組みで保存(セーブ)をしているのでしょか?
188: 03/01/31 11:37 ID:6ynLwhZo(1) AAS
いやすべてがクライアント/サーバ型じゃないから。
GAMEって例えば?
189: 03/01/31 11:40 ID:4bR+Vd+q(2/3) AAS
どんなゲームでもいいんですが
ドラクエでもなんでもデータセーブ機能がついているゲーム。
サーバ&クライアントの関係を使わないとしたら
どのようにして保存をするのですか?
どのような言語で書かれたプログラムを使うのかとかおしえてください。
あとできればその理論が知りたいです。
190: 03/01/31 11:40 ID:H1fkys7O(1) AAS
>>187
マルチうぜぇ
消えろ
191: 03/01/31 11:41 ID:NYWMKE8k(1) AAS
マルチポストじゃなければ答えてあげたのにね……残念。
192: 03/01/31 11:45 ID:4bR+Vd+q(3/3) AAS
すみません。
この時間では書込みが少ないと思いマルチにしてしまいました。
おしえてください。。。
193: 03/01/31 11:50 ID:Oks/Mlfb(1) AAS
答えてあげたいけど、マルチポストは大嫌い。
そのような abuse 行為は善意に支えられたネットワークにとって
最大の敵であることを知りなさい。
恥知らず。
194: 03/01/31 11:57 ID:yMAewiuo(1/2) AAS
あのさ、マルチポストってだけならば別にわるいことって、ネチケットのFAQで読んだことがあるよ。
それも一度や二度ではなく。URLなんか覚えてないけどね。
ただし、質問者がマルチポストした先の答えをまとめて、
全ての回答者にこれこれこーなりました、ありがとーと言って回るならばっておまけ付き。
195: 03/01/31 12:07 ID:Q0GDcsqu(1) AAS
メモリカードとかに記録してるんだろ?
なんでサーバ・クライアントの話が出てくるのか分からないんだけども
196: 03/01/31 12:46 ID:yMAewiuo(2/2) AAS
>どんなゲームでもいいんですがドラクエでもなんでもデータセーブ機能がついているゲーム。
んっとさー、おーざっぱに答えるから嘘ついてるかもだよ。
コンピューターっていうのは CPU と メモリ とそれらをつなぐバスっていうのが最低限の要素なんだよね。
ファミコンっていうのは、メモリをつけてないコンピュータを売りつけて、
遊ぶためにはメモリ(ROMカセット)を買ってくださいって仕組みだったんだよ。
で、ROMカセットの中に RAM も入れて、電池で連続起動しておけばセーブシステムのいっちょあがり。
197: 03/01/31 13:30 ID:nYsHWhwS(1) AAS
連投規制で書き込めないと見た。
198: あぼーん [あぼーん] あぼーん AAS
あぼーん
199(2): 03/01/31 19:18 ID:qsXaXa9v(1/2) AAS
Cを中心に簡単なゲームを作りたいと考えているのですが、
Game Programming Gems以外に何か参考になる図書はありませんでしょうか?
よろしくお願いします。
上下前次1-新書関写板覧索設栞歴
あと 771 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s