[過去ログ] ゲームプログラミング相談室【Part5】 (970レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
538
(2): 03/11/26 10:47 ID:ueZRq0X0(2/7) AAS
>>537
そんなもの必要ないから知らなくていいよ。

ゲーム制作者がいってるタスクってのは
擬似タスクとか誰かがつけた奴だな。(まぎわらしいしはずかしいからやめてほしい)

>今の理解では関数ポインタを持つ線形リストなのではないかと思っているのですが……
ああ、そんな感じ、そんな感じ。

もういい加減糞設計だって気づいてほしい今日このごろ。
539: 03/11/26 11:21 ID:RsfevxOF(1) AAS
てか、JAVAで携帯のシムシティ風ゲームつーか、シムシティ作りたいんだけどね、今のJAVAでつくれるのかと。どうでしょうか。
540
(1): 03/11/26 11:52 ID:PfSyQyV9(1/2) AAS
>538
単にstateパターンでいいんでない?
541
(2): 03/11/26 12:08 ID:ueZRq0X0(3/7) AAS
>>540
いや、つーかさ、結局、種類が増えると
「switch caseをずらずらたくさんかかなくてはならない」
ってところが複雑になる要因であって、
これ↓って

外部リンク[html]:member.nifty.ne.jp

何も解決してないと思うんだけど。
542: 541 03/11/26 12:11 ID:ueZRq0X0(4/7) AAS
541はタスクの話と繋がるまでちと長めの補間がいるかも。
Stateパターンだけの話ね。
543: 03/11/26 14:46 ID:Weo6peER(1) AAS
JavaのSwingか何か使ってNetHack風のゲーム作ってみませんか?
544
(2): 03/11/26 14:56 ID:gp+Vdr2Y(1/3) AAS
>>538
>もういい加減糞設計だって気づいてほしい今日このごろ。

設計の善し悪しは気付いたり感じたりするもんじゃねぇんだ。ヴォケ。
おまえが無益性を論じて証明してみせろ。
545
(2): 03/11/26 16:44 ID:ueZRq0X0(5/7) AAS
>>544
>設計の善し悪しは気付いたり感じたりするもんじゃねぇんだ。
いや、設計はそういうもんだよ。
直感でわかりやすくなければその時点で破棄して間違いない。
546: 03/11/26 16:49 ID:TJpicHgi(1) AAS
>>544
>>545
もしもこの二人が分かり合えたら、
イスラエル - アラブ間での長年の抗争を解決する銀の弾丸が見えてくるような気がする
547
(1): 03/11/26 17:07 ID:gp+Vdr2Y(2/3) AAS
>>545
直感で、というのはいったい誰の直感で?
ある設計に直面したときに誰もが同じ直感を得ると思ってる?
548: 03/11/26 17:20 ID:ueZRq0X0(6/7) AAS
>>547
>誰の直感で?
自分のでいい。

>誰もが同じ直感を得ると
なんで誰もが同じでなければいけないの?

大事なのは「わかりやすい」ということかどうかだ。
同じである必要はない。
省3
549
(1): 03/11/26 17:26 ID:ziRRWzvj(1) AAS
他の人にはわからないけど自分だけにはわかりやすい設計なのですか?
550
(2): 03/11/26 17:35 ID:ueZRq0X0(7/7) AAS
>>549
ちがうな。
そもそもオブジェクト指向自体
「現実に則したものにのっとって設計すればみんなだいたい同じになってわかりやすいんじゃね?」
みたいないい加減なものなんだから、これにのっとって組む限り
どうあがいたってキャパシティはこんなもんだろ?
逆にこれを超えようと努力するな。
省1
551: 03/11/26 17:56 ID:gp+Vdr2Y(3/3) AAS
>>550
脱力しちゃって突っ込む気もおきないよ…
頼むから、せめて初心者も見ているこういう場所でだけは
そういういい加減なことを自信満々で書き込むのは我慢できないか?
他ではやっても構わんから。
552: 03/11/26 18:38 ID:PfSyQyV9(2/2) AAS
550=OOスレの48 とみた。
553: 03/11/26 18:46 ID:zEqLFBTd(1) AAS
俺は、>>550は、
まともな事いってると思うけどな。
MだかVだか言ってる奴の方が脱力するわ。
554
(1): 03/11/26 19:57 ID:xTI5bNZ5(1) AAS
むかしアイボのソースみたら、case文の羅列で萎えたことがあるなぁ。
たくさんのcase文と、たくさんのclass、どちらが幸せなんだろう。

MVCモデルも、いわゆる「最近の」ゲームには向かないだけなので、
一概に否定するのはどうかと思う。
555
(2): 03/11/26 22:07 ID:Hfp/lcva(1) AAS
まぁ、一般的にゲームは、業務系プログラムよりは「保守」を考える必要が無いからね。
だから、書きっぱなしに特化した方法論が有効だというのもうなずける。
純粋にコストの問題だけどね。
556
(1): 03/11/26 23:25 ID:kCY8Ly/h(1) AAS
>>555
いつもこの類の発言が出るが、比べる事自体が無意味。

一般的に業務系プログラムは、ゲームプログラムと違って
パッチ当てたりバージョンアップしたりして何度もコードいじれるから
「保守」の名目のもと、バグがあっても直せるって感じで作るからね。
だから、ゲーム見たく発売後は修正は無理だからって徹底的にバグチェックしないしね。
純粋にコーディング姿勢の問題だけどね。
省2
557: 03/11/26 23:45 ID:Tq38HXMm(1) AAS
>>556
ええと…、>>555>>556が言っていることを否定しているように読めましたか?
比べてるって言うか、その分野にはその分野のやり方があるっていう>>556
同じことを言ってるんだけど…
558: 03/11/27 00:40 ID:j94eY1vB(1) AAS
……どうも最近、勝手に脳内で仮想敵を作り上げて
それに見下すように反論する性癖のヤツが常駐している気がするよな。OOスレもそうだが。
559: それはそれで面白いんだが 03/11/27 00:56 ID:ghFgKWyL(1) AAS
「ゲーム」「プログラマ」とそういう香具師が集まりやすい板のテーマだからね。。。
自戒自戒っと
560: 03/11/27 09:18 ID:7MaG36fL(1/2) AAS
自我崩壊
561: 03/11/27 09:47 ID:1HzzDQie(1) AAS
list<VE*>brain;
brain.push_front(static_cast<VE*>(558));
562: 03/11/27 09:53 ID:fhZO2C7/(1) AAS
pSoNet* = new SoNet2;
pSoNet->Destructor();
void SoNet::Destructor(){Attack(brain)}
563: 03/11/27 20:05 ID:wD8LR/s0(1) AAS
ゲームでもネトゲの場合だと、後々までの機能追加や修正に耐えられるような姿勢が求められるけどね。
それこそ途中でPGや開発会社が替わっても保守できるようにプログラムの整理やドキュメント化といった作業が必要になるし、
DB(ユーザーのデータ)が絡んでくる都合上、最初の設計段階でかなりキチンとしてないと、いずれ破綻するしね。

ネトゲ開発はゲームの知識に加えて、業務系の高度な知識も要求される、かなり難易度の高い分野だと思うぞ。

そういう意味じゃ、
 ネトゲ開発>>>>業務>>>>コンシューマ>>>>携帯アプリ
(ま、煽りだけどな)
564: 03/11/27 21:10 ID:7MaG36fL(2/2) AAS
ネットゲの方がバグだらけでも、パッチで継ぎ接ぎできる。
失敗したら再パッチ。
そういう意味ではプログラマに緊張感がない。
565
(1): 03/11/27 21:43 ID:BoqYAr6p(1) AAS
>ゲームでもネトゲの場合だと、後々までの機能追加や修正に耐えられるような姿勢が求められるけどね。
ついでにいうと、継続的に運営し、かつアップデートすることも求められるね。
大変すぎ。

>失敗したら再パッチ。
>そういう意味ではプログラマに緊張感がない。
そうかねぇ?ビッグネーム以外は、それやると速攻で寂れると思うんだが…
566: 03/11/27 22:05 ID:xI+aEUwA(1) AAS
>>554
おそらくswitch文の羅列の方がコンパクトで速く動くよ
567: 03/11/28 02:52 ID:zaH9w9Q9(1) AAS
組み込みだしね
見た目がオブジェクト指向してるけどw
568: 03/11/28 02:59 ID:9gvB7mcn(1/2) AAS
ホンダの二足歩行ロボのソースも、case文の羅列が何十画面も続いていたぞ。
まさか制御系の常識なんてことはないだろうが。
569: 03/11/28 03:02 ID:9gvB7mcn(2/2) AAS
>>565
ネットゲーのパッチ当てほど緊張感を要するものはないと思うよ。

俺がJavaアプレットのゲームくらいしか経験ないけど、
下手なことしたら、二次災害で一挙に全プレイヤーのデータがおかしくなるから。
570: 03/11/29 23:15 ID:pBEeDpxB(1) AAS
アルゴリズム関連になるけど、いいですか?
縦シューティングゲームを作ろうと思うんですけど
リプレイを記録するには如何すれば良い?
自分ではコントローラーから入力された信号を
そのまま記録してtxtファイルにでも出力すれば良いと思ったんだけど、
それでは処理落ちの時やら
ゲーム内での自機の動作に関わらずランダムに動作する敵の行動が把握できない。
省4
571: 03/11/30 00:36 ID:+XdWbi7E(1) AAS
ランダムは本当にランダムなわけではないのだから、記録するときに何の障害にもならない。
ついでに入力そのものではなく、それをどう処理したかを記録すればいいだけの話。
572
(1): 03/11/30 00:59 ID:qgJCqKCU(1) AAS
>>ランダムは本当にランダムなわけではないのだから、記録するときに何の障害にもならない。

それは何故ですか?
ランダム=規則性がない → リプレイが表現できない
になるんじゃないでしょうか?
何か間違ってます?
573: 03/11/30 01:16 ID:qCnBVWJj(1) AAS
逆にソフトのみで規則性の無い乱数を
作成する方法があったら教えてほしい。
574
(1): 03/11/30 01:26 ID:N9tcc+S+(1) AAS
>>572
現状の乱数ルーチンは、ランダムのシードが同じなら乱数ルーチンを呼び出した回数ごとに値は常に同じ値になる。
(例外があるかは知らん。メルセンヌツイスター辺りは違うんだっけ?)
なので、ゲームを開始した時点で特定の値をシードに設定しておけば、基本的にはまったく同じ乱数が発生するので問題ない。
逆に、毎回違う値を出したい場合はシードに日付や時間を設定してやる。
コンシュ−マなんかでタイマーが無い場合は、タイトル画面などのユーザー入力を伴う部分で毎フレーム乱数を発生させておくことで
乱数に変化を持たせるようにしたりします(毎回まったく同じフレーム数でボタンを押せる人はいないので)
575: 03/11/30 03:48 ID:zskFBT42(1) AAS
リプレイが必要なゲームでは、ランダムシードも一緒に保存しておくので、
再現できます。

処理落ち:
描画も入力も全て処理落ちするのが原則なので、CPUにとっては処理落ちは無視できます。
人間が見たときに処理落ちしているように見えるだけ。
ま、おかしな作り方されてれば処理落ちでリプレイ狂うこともあるだろうが、それは設計を見直せ。
576: 03/11/30 07:28 ID:wLSg/D/g(1) AAS
フレームレート固定のゲーム(シューティング、アクション)でリプレイつけました。
・再現性のある乱数を使う
・キー入力の記録
だけでできます。

例えフレームレート固定でなくても、
更新時間とかdtも一緒に記録しておけば問題ないはず。

FPSのネットゲーでリプレイ記録できのは、あれはどうやってるのかな。
省1
577: 03/11/30 21:28 ID:8v/2nacI(1) AAS
>>574
メルセンヌはシードの桁がものすごく大きい(=周期がものすごく長い)だけで
普通の乱数と同じだよ。(あれは乱数の「質」のほうが本質)
578
(1): 名前は開発中のものです 03/12/01 15:57 ID:k4JdNCPO(1/2) AAS
PCで作成しているのですが、リプレイデータの保存はどうするのが
一般的なのでしょうか?

プレイ毎にデータ長が違ってくるので、現在、プレイ開始時に
ファイルを追加モードで開いて、プレイデータを直接ファイルに
書き込んでいき、プレイ終了時にファイルを閉じるという方法を
取っていますが、方法としてはどうなのでしょう。今のところ
トラブルはないんですが…。
579
(1): 03/12/01 16:09 ID:BBKzfG41(1) AAS
ファイルに書き出しながらってのはパフォーマンス的によくなさそう。

・いっぱいリプレイ用のメモリを確保しておいて、足りなくなったら記録打ち切り
・ある程度のメモリを確保しておいて、足りなくなったら新たに確保していく。
 確保したメモリはリストなどにして管理する。
で、プレイが終わったら一気にファイル保存(+開放)、あたりかな?
580: 578 03/12/01 17:09 ID:k4JdNCPO(2/2) AAS
>>579
ありがとうございます。
幸い、パフォーマンスの面でも特に問題はなかったのですが、実行環境
によって大きな差が出るようだと困るなと考えていました。メモリを
リストで管理する案がいいですね、無駄も少なく済みそうですし。
こちらを採用しようと思います。
参考になりました。
581: 03/12/03 01:41 ID:loFrTj4I(1) AAS
すみません
任意で処理落ちさせたいときはどうすればいいんでしょうか?

main(){
for(;;){
game(){ //ゲーム実行部分
if(処理落ちさせたい状況) return 0; // 処理落ち部分
// コマンド入力受付やら衝突判定等の処理
省5
582
(1): 03/12/03 07:39 ID:GBUksMAa(1/2) AAS
システムによりけり

うちのだと、処理が遅い場合に描画を飛ばすので、
単に待つわけにいかない。
FPS管理させているオブジェクトに、FPSの変更を要求する感じ。
583
(2): 03/12/03 13:14 ID:xnKuHohi(1/2) AAS
質問。
ゲームのBGMをMIDIでやってるんですが、
繰り返し再生の為に頭出しをして再生させると、
再生した直後に1秒ほど固まります。
これって何が原因なんでしょう?

言語はVC++で、MIDIはmciを使用して鳴らしてます。
こんな感じ。
省6
584
(1): 03/12/03 14:42 ID:YS6bl20k(1) AAS
>>583
・mciSendCommand(...)を使えば改善されるかも。
・自前のMIDI解析ルーチンを書いてmidiOut系APIで演奏。
・MIDIをやめてoggなどの波形データを演奏。
MIDIデバイスドライバ側の問題だと自前で組んでもどうしようもならない気がするけど。
585
(2): 03/12/03 15:42 ID:0OppputG(1) AAS
処理が止まるのはデバイスドライバの問題だが、
デバイスドライバを初期化する際に固まるだけなので、
自前で組んでどうしようもないということにはならない。
MCIは必要もないのにご丁寧に初期化を入れる。
自前で組んでループ時にデバイスを初期化しなければいいだけの話。
586
(1): 03/12/03 15:56 ID:bmqPDPad(1) AAS
>>583
>>585の言うとおり自前で組めば問題はないっての聞いたことあるけど、
「自前ぇ〜?え〜、面倒臭ぇ〜」
っていうときは
BGMに使うmidiファイルをあらかじめ糞長いファイルにしておくといいかも。
頭出しを含む30分ぐらいの長い曲にしておくとか・・・。
よほどのものを求めない限りこれで足りた。駄目?
587
(1): 03/12/03 17:28 ID:GBUksMAa(2/2) AAS
長いmidiほど初期化に時間が掛かる気がする
mciを使わず midiOut するのが俺の結論

ま、今は、ogg vorbisに切り替えたけどな
588: 03/12/03 21:15 ID:xnKuHohi(2/2) AAS
>>584 >>585 >>586 >>587
レス感謝。
mciとかデバイスドライバが原因とは思ってましたが、
やはりそうでしたか。
midiOutで何とか頑張ってみます。

ちなみに、
・mciSendCommandは同じでした。
省2
589: 03/12/06 16:19 ID:4bWKg8eo(1) AAS
お客からみれば、MIDIってだけで萎えないか?
ほとんどの人はいい音源持ってないわけだし。
590
(2): 03/12/06 18:01 ID:EO4hEUp+(1) AAS
>>582
それってリプレイの見た目も実プレイ時に左右されるってことだよね?
遅い環境ではまともに再生できない気もする。
たとえば、FPSやゲーム全体を制御しているマスタータイマー
(システムでもCPUクロックでも何でも)を基準にすれば
描画はその時点での最高状態で、動作はプレイ時に忠実に再現されるんじゃないの?
591: 03/12/07 01:22 ID:fcdwlAwb(1) AAS
言葉は少し違うけど、同じ事いってない?
592: 03/12/07 10:19 ID:Jd1VJ/+b(1) AAS
毎回全座標のデーターを記憶させるだけじゃダメ?
593: 03/12/07 12:53 ID:bmrLDONK(1) AAS
>>590
何言ってるのかわからん とりあえず組め
594: 03/12/07 13:40 ID:Rno+nzv+(1) AAS
582では、描画処理を飛ばすと書いているけど、
描画処理以外はフレームレート固定処理だったりします。

とはいえ、>>590は何いってるかわからん
595: 03/12/08 03:49 ID:NMX1XHQq(1) AAS
STGの敵キャラの出現タイミングなどを記述した簡易スクリプトの実行方法について。

1. 実行時にifでキャラクタ名を判定してnew CEnemy1。
2. 1を発展させキャラクタをnewするファクトリクラスをキャラクタ名をキーとしたハッシュリストに突っ込んでおいて、
  実行時にハッシュリストからファクトリクラスを得て間接的にpEnemy1Factory->NewInstance()。
3. キャラクタIDと個々のファクトリクラスの対応関係を示す定義ファイルを読み込み、その対応間を元に配列にファクトリクラスを
  突っ込んでおく。スクリプトのキャラクタ名をキャラクタIDに置き換えるなどして予めコンパイルしておき、
  キャラクタIDを添え字として配列からファクトリクラスを得てpEnemy1Factory->NewInstance()。
省2
596: 03/12/08 10:42 ID:m+V0WGeU(1/2) AAS
時間とキャラ名とパラメータが書いてあるだけのスクリプトなら、
それらとファクトリクラスをまとめて敵出現リストを作るってのは?

俺はめんどくさいので2.だが。
597: 03/12/08 22:25 ID:mzGfPbsW(1) AAS
よくハッシュハッシュ聞くけどふつーのリストとどう違うの?
598: 03/12/08 22:43 ID:m+V0WGeU(2/2) AAS
連想配列と配列の違い。
厳密には、リストと配列も違うけど。
599: 03/12/08 22:56 ID:VTZ87dv3(1) AAS
Down板に行くと、クレクレ君がハッシュハッシュと騒いでます。
600
(2): [あああああああああ] 03/12/09 14:06 ID:GAJG/7qG(1) AAS
申し訳ないのだが 画像の出力の仕方を教えてくれないだろうか
ファミコン程度の画像でいいから誰か教えてくれう
C++でお願い
601
(1): 03/12/09 15:03 ID:eq3RAG/L(1) AAS
>600
外部リンク:www.kumei.ne.jp
外部リンク[html]:www.kumei.ne.jp
602: 03/12/09 18:23 ID:t6oW0f2A(1) AAS
AA省
603
(1): 03/12/09 22:50 ID:WfZiY/0G(1) AAS
>>600
あなたが2Dゲームを最も効率よく生産するための
最良の選択肢の一つである(by俺)

外部リンク[htm]:mpulip.cool.ne.jp
604: 600 [あああああああああ] 03/12/10 18:12 ID:eJ544RAW(1) AAS
>>601 >>603
とても勉強になった 素直にありがとう
605: 03/12/11 15:56 ID:1yRvOvyV(1) AAS
>>541
吐き気するコードだな
そんなもん見るな、いや見せるな
606
(2): 03/12/11 21:00 ID:GP77MA8t(1) AAS
プログラム書いたんで、コンパイルすて軌道したらエラー(´・ω・`)
どこが変とかわかるようなのないでつか?(つД`;)
607: 03/12/11 22:48 ID:Au4/Ez5E(1) AAS
エラーをよく読む。
608: 03/12/11 22:57 ID:YX3Hip/p(1) AAS
>>606

今日はもう寝る
609: 03/12/12 01:44 ID:FkR56qTt(1) AAS
>>606
エラーメッセージは慣れないとわからない場合が多いからね。
ある程度英語が読めなければ、慣れる以前の問題だけど。
とりあえずスペルミスと、半角スペース・全角スペースをチェックしてみたら?
あと、作業環境を書かないと。
610
(7): 03/12/13 01:35 ID:vZuyHI4l(1/2) AAS
ゲームブックをブラウザで楽しめるようにHTMLに移植したいのですが、
せっかくパソコンで遊ぶのでアドベンチャーシートの更新は自動化したいですよね。
ゲームブックプレイに特化したアプリを開発すれば簡単なのですが、
あえてNN、IEのような一般的なブラウザだけでプレイできるようにしたいのです。
HTML、CSS、javascriptといったクライアント技術だけで実現できますでしょうか?
CGI、SSIは、借りてるサーバが対応してないので・・・
611
(1): 03/12/13 02:23 ID:r4wUzSVx(1) AAS
Flashで良いのでないかと
612
(1): 03/12/13 02:25 ID:QNEM2G11(1/3) AAS
ノベルツールとかでは出来ないかな?
苦労するだけ?
613
(1): 610 03/12/13 02:45 ID:vZuyHI4l(2/2) AAS
>>611
Flashは高くて手が出ません。
テキストエディタだけで作りたいんです。

>>612
ブラウザだけでプレイできるようにしたいんです。

やっぱり無茶かなあ・・・
614: 03/12/13 04:03 ID:q/JWkGSg(1) AAS
>613
簡単なFlashファイルを作成するフリーのツールがあったはず
名前は忘れた
615: 03/12/13 09:32 ID:zWKnFblv(1) AAS
Javaアプレットは?
616
(1): 03/12/13 09:34 ID:QNEM2G11(2/3) AAS
>>610
>HTML、CSS、javascriptといったクライアント技術だけで実現できますでしょうか?
IE専用でいいなら出来ると思うよ。
NNにも対応となると…こっちはわからん。
617
(2): 03/12/13 11:30 ID:KAN5T8i8(1) AAS
タダで作れるのに高いなんて言い訳するのは良くないな
外部リンク:www.google.co.jp
618: 03/12/13 11:52 ID:QNEM2G11(3/3) AAS
>>617
ActionScriptもちゃんとかけるんだね>ming
なかなか凄いかも。
1-
あと 352 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.027s