トップページgamedev
986コメント314KB

ゲームプログラミング相談室

■ このスレッドは過去ログ倉庫に格納されています
0001プチ9627m01/11/06 18:47ID:G6Fk/ND/
ゲームプログラミング全般についての質問スレッド。
駄スレ立てる前にココで聞きましょう。

■旧スレ(プログラミング技術板より)
○パート1
http://piza.2ch.net/tech/kako/969/969984472.html
○パート2
http://pc.2ch.net/test/read.cgi/tech/985540361
○パート3
http://pc.2ch.net/test/read.cgi/tech/1002894129/
0679ひきプロ ◆8fhky/PGis 02/10/08 00:55ID:???
NPCの属性決めて、(店か人か)
店の場合は汎用的な店の親父のメッセージ表示、
人だったらメッセージ文字列へのポインタ持っておいて
そのポインタ参照したらメッセージ出てくる感じにしたらどうでしょ
0680名前は開発中のものです。02/10/08 00:56ID:???
>>677
その種のヘヴィな処理にGDIを使うのは狂気の沙汰です。

描画順序については「フィールド」「キャラ」といった
モジュール化的な分割を諦めて画面生成のみをモジュール化する形をとります。

えぇえぇ、ゲームのコードなんてスパゲティ作ってナンボですから。
0681名前は開発中のものです。02/10/08 00:58ID:???
他にも解決策はあるけどね。
ZバッファやZソートを使った陰面処理を行うとか
始めからDirect3Dで描画しそのへんの処理をハードウェアに任せる方法とか。
遅くなるけどね。
0682ひきプロ ◆8fhky/PGis 02/10/08 01:00ID:???
>>680
ご返事ありがとうございます。

やっぱGDIでは無理でしょうか…。
一応モジュール化的な事をしているんですが果たして
使いやすくなってるのかどうか藁
今んとこスパゲッティになりまくりです
0683ひきプロ ◆8fhky/PGis 02/10/08 01:02ID:???
>>681
3D空間にポリゴン一枚出す処理すらよく分かりません(;´Д`)
0684ひきプロ ◆8fhky/PGis 02/10/08 01:05ID:???
あ、読み間違えてた…
諦めて ですね藁
0685名前は開発中のものです。02/10/08 01:06ID:???
>>683
死ね
0686名前は開発中のものです。02/10/08 01:15ID:???
>>678
RPGツクールは体験版があるので、どんなものか見てみるだけなら
それで充分だと思うよ。
体験版のあるURLは、適当に検索してちょ。
0687名前は開発中のものです。02/10/08 01:15ID:???
>>679
とりあえずその考えでやってみる。
0688名前は開発中のものです。02/10/08 01:16ID:???
お、体験版もあるのか。さがしてくるよ。
0689名前は開発中のものです。02/10/08 03:06ID:???
体験版ならエンターブレインのHPにないか?
もしみつからないようならMXかなんかで拾って
参考にしたら破棄しちまいな。
0690名前は開発中のものです。02/10/08 21:06ID:???
>>677
素直に DirectX 使って 3D で描画しろ。CPU <-> バス <-> グラフィックカード
間を流れるデータの量、桁が違ってくる。
0691名前は開発中のものです。02/10/08 22:12ID:???
>>690
流れるデータ量の桁って変な知ったかするのヤメレ

この場合問題はバスに流れるデータ量ではなく
Zバッファがハード的に使えるか
CPU側で自前計算しなければならないかの差
0692名前は開発中のものです。02/10/09 21:07ID:???
>>691
前後関係無視して単純に全画面 BitBlt するだけでも、GDI だと
すぐにサチるぞ。
0693名前は開発中のものです。02/10/09 21:14ID:???
サチるってわけのわからないオナニー用語を使うのはヤメレ
0694名前は開発中のものです。02/10/09 21:16ID:???
律速といったほうがいい?
0695名前は開発中のものです。02/10/09 21:51ID:???
このスレはテンプレは無いの?

それぞれの言語の長所・短所・難易度
BGMのそれぞれの記録形式の長所・短所・難易度
作りたいゲームを再現するにはどの言語がいいか

こんなテンプレがあったらいいね。
0696名前は開発中のものです。02/10/09 22:21ID:???
>>695
無いのじゃなくて必要だと思った奴が自分で作れば良いだろ
あったらいいねじゃなくて言いだしっぺのお前が作れ
何でも人任せにするな
069702/10/09 23:27ID:s4kqpcbZ
初心者なので作れません。
0698名前は開発中のものです。02/10/09 23:33ID:4GQZ2WlT
この手の話題はプログラミング板で盛ん。しかも最後は荒れる。
とりあえずJava。
実行速度が遅いんで、アクション・シューティング系は避けた方が良いかも。
ダンジョンマスターJavaは素晴らしかった。
0699名前は開発中のものです。02/10/09 23:37ID:???
>>697
初心者とそれを理由にする怠け者は違う
自分で初心者を名乗る奴は後者
0700名前は開発中のものです。02/10/09 23:48ID:???
>>693
ハードウェア屋さんとか物理屋さんなんかが良く使う用語だな>サチる
saturation (飽和) の略式表現
0701ひきプロ ◆8fhky/PGis 02/10/09 23:55ID:???
>>690
7のDirectDraw使うことにしますた。
3Dはムズイのでまたの機会にします
070202/10/09 23:55ID:???
Java 実行速度が遅く、アクション・シューティング系には向かない。
    (ダンジョンマスターJavaは素晴らしかった)

    公式サイトhttp://www.cs.pitt.edu/~alandale/dmjava/
    ダンジョンマスターをやろう!http://home8.highway.ne.jp/galzo/game/danmasu.htm
0703名前は開発中のものです。02/10/10 00:08ID:???
>>701
確かに DirectDraw なら(ビデオメモリがある限りは)ビデオメモリ上に
サーフェイス作るから、BitBlt は速いやね。フレーム毎に全部書き直し
にしても、そこそこの fps が出せる。
0704名前は開発中のものです。02/10/10 00:10ID:???
パーツを動的に弄らないという前提なら
0705_02/10/10 02:32ID:???
>>702
遅いのはJavaアプレット。
Javaアプリケーションといっしょにするな!ボゲェ!!
0706名前は開発中のものです。02/10/10 07:50ID:???
>>705
今現在Javaでゲーム作ってる漏れが言うのも何だが、
起動とGUIは非常に遅いっす。色々工夫しないと話にならんです。
0707要ブックマーク02/10/10 11:15ID:buBBvKiZ
Computer Programing(日本語)
http://www.realdigital.co.jp/densi2/progindex.html
>C言語・C++言語・WINDOWSプログラム・DirectX Draw・DirectX 3D・ソフトウェアライブラリー
>各言語の説明と、サンプルソース。

YaneuraoGameScript & SDK本体
http://www.sun-inet.or.jp/~yaneurao/links/ygs/

yaneuraoGameScript2000
http://isweb19.infoseek.co.jp/computer/yaneurao/ygs/
>初心者向けC言語によるゲーム制作指南

C言語初心者向けリンク集
http://www3.mahoroba.ne.jp/~seibi/gad_cgi/html/16_02.html

ヒューマンアカデミー
http://www.athuman.com/a/it/course.html
>3ヶ月コースなど

初心者向けゲーム制作講座"Delphi de GAME"TopPage
http://www.din.or.jp/~koudai/Delphi/Delphi.html
0708名前は開発中のものです。02/10/10 12:07ID:???
>701
はぁ?DirectX8にスプライト関数(ラッパークラス)あるだろ?
非常に簡単に半透明使えるし、回転拡大縮小できるし、ポリゴンみたいなこと
できるし、いいんじゃないの?エフェクトはかけられないけど・・・。
DirectDrawより簡単ではるかに便利。2Dならこれを使えや
0709名前は開発中のものです。02/10/10 12:11ID:???
>>701はもうプログラム諦めたに1000マンセー
0710名前は開発中のものです。02/10/10 12:28ID:???
DirectX8以降だとWin95を切り捨てる事になる。
0711名前は開発中のものです。02/10/10 13:02ID:???
>>708はID3DXSpriteまともに使った事無いに10万ペリカ
0712名前は開発中のものです。02/10/10 13:45ID:???
おまえら、相談室で煽りあうのは寄席。
0713名前は開発中のものです。02/10/10 16:22ID:???
煽りあいできるクソスレは他にいくらでもあるだろう
0714名前は開発中のものです。02/10/10 16:37ID:???
(´-`).。oO(くどい)
071570802/10/10 16:41ID:???
DX8のスプライト関数使うとよく叩かれるんだけど
なんか理由あるの?
drawPrimitiveUPと比較しても速度変わんないんだけど?
抜き色指定とかでDDS使わない分、楽でいいだろうに・・・。
071670802/10/10 16:42ID:???
アゲハチョウ
0717ひきプロ ◆8fhky/PGis 02/10/10 16:49ID:???
>>703
ためしに作ってみたら毎フレーム全部描画しても
GDIの時より軽くなりますた。
>>708
そういえばアルファブレンドができなくて悩みました
8のヘルプも読んでみようと思います
0718名前は開発中のものです。02/10/10 17:02ID:???
>>715
ID3DXSpriteを使うと叩かれるのか。謎だな。
それはどこでの話だ。
071970802/10/10 17:43ID:???
>>718
2ch
0720名前は開発中のものです。02/10/10 17:51ID:tjuH/a8v
ID3DXSpriteで、scaleで拡大率変えてたんだけど、
他の環境で動かしたらscaleが有効になってなくてしょぼんだった。
072171802/10/10 17:54ID:???
>>719
スレのリンクを貼るほどの価値もない話題ということか。
それなら気にしねーほうがいいんじゃねーの。
 
どうせ具体的な指摘は何も無かったんだろ?
0722名前は開発中のものです。02/10/10 18:08ID:???
( ´,_ゝ`)プッ
0723名前は開発中のものです。02/10/10 19:04ID:???
708=722?
072471802/10/10 19:15ID:???
>>723
違うだろ。さすがに。
0725名前は開発中のものです。02/10/10 20:45ID:pMa8asNt
ID3DXSpriteだと256*256以上の大きさのテクスチャを扱えないからじゃねーの?
0726名前は開発中のものです。02/10/10 20:50ID:???
そんな制限は無い
0727名前は開発中のものです。02/10/10 22:57ID:???
>>726
あるぞ。

0728名前は開発中のものです。02/10/10 23:53ID:???
>>708
> DirectDrawより簡単ではるかに便利。
DirectDraw は初期化と、ロスト時の再初期化処理だけで意外と面倒。
0729名前は開発中のものです。02/10/11 00:28ID:???
>>727
無い
サイズの制限はハード依存であってID3DXSpriteそのものの制限とは関係ない
0730名前は開発中のものです。02/10/11 00:33ID:???
どのみち相対的な話である。
073173002/10/11 00:46ID:???
730は728へのレス。
0732名前は開発中のものです。02/10/11 02:21ID:???
>725 :名前は開発中のものです。 :02/10/10 20:45 ID:pMa8asNt
>  ID3DXSpriteだと256*256以上の大きさのテクスチャを扱えないからじゃねーの?
>726 :名前は開発中のものです。 :02/10/10 20:50 ID:???
>  そんな制限は無い
>727 :名前は開発中のものです。 :02/10/10 22:57 ID:???
>  >>726
>  あるぞ。
>729 :名前は開発中のものです。 :02/10/11 00:28 ID:???
>  >>727
>  無い
>  サイズの制限はハード依存であってID3DXSpriteそのものの制限とは関係ない
 
このやりとりは不毛だな。まず具体例書いてくれ。
 
 Windows98SE + DirectX8.1(debug runtime)
 GeForce256 (Detonatorドライバ 40.72)
 D3DCAPS8.MaxTextureWidth  = 2048
 D3DCAPS8.MaxTextureHeight = 2048
 
 Windows98SE + DirectX8.1(debug runtime)
 ATI RADEON ALL-IN-WONDER (ドライバ 4.13.01.9039 7.72-020524M-004273C)
 D3DCAPS8.MaxTextureWidth  = 2048
 D3DCAPS8.MaxTextureHeight = 2048
 
上記2つ例ではID3DXSprite固有のテクスチャサイズ制限(256x256)は確認できない。
0733名前は開発中のものです。02/10/11 02:45ID:???
チュートリアルの5だと多少の変更で実行できるので、とりあえずコード書いて動かしてみたが、
Drawだと左上から256×256の部分が表示されるだけだな。
GeForce2MXだからVoodooのような256×256の制限はない。

確かDirectX7の時にはこの制限がなかったと思うが。


0734名前は開発中のものです。02/10/11 03:43ID:???
Geforce3(32MB)で512*512テクスチャを試した。問題なく表示された。
ドライバは40.72 Beta
0735734(補足)02/10/11 03:44ID:???
環境はWin2k+DirectX8.1SDK
073673402/10/11 03:50ID:???
>>733
2MXで問題が出るってことは結構メジャーな問題ぽいね。
HALドライバ依存の問題はいつも頭痛の種になるから欝。
0737名前は開発中のものです。02/10/12 08:41ID:???
テクスチャサイズが256x256に制限されるのは、
VooDoo系チップの場合じゃ、ホゲェェェ!!
そういうハード特有の事情を知らんやつが、
Direct3D触るとろくなことがない。
0738名前は開発中のものです。02/10/13 01:22ID:???
>>737
だからハードウェアの制限とID3DXSpriteの制限を分けろよ(藁
0739名前は開発中のものです。02/10/13 03:02ID:???
>>737
おまいのまなこたんは、ふしあなさんでつか?
0740名前は開発中のものです。02/10/13 03:30ID:???
要点は256×256以上のテクスチャサイズを扱えるにも関わらず、
ID3DXSprite・Drawだと256×256以上のテクスチャは使えないだな。


0741名前は開発中のものです。02/10/18 08:11ID:Zt+yBkdj
>>733
DirectX8.1bのランタイムと
nVidiaの最新ドライバを使ってみたか。
0742名前は開発中のものです。02/10/22 20:32ID:cC1V2h4q
ゲームで、プログラム以外のファイルからデータを読み出したいのですが、
データを生で置きたくないのです。

他のゲームを見てみたら、結構暗号化(?)されてたりして読めないのがあるのですが、
あれはどうやっているのでしょうか。

セーブデータや環境設定。
jpeg画像。
midやwavファイル。

についてそれぞれ教えてください。
0743名前は開発中のものです。02/10/22 20:33ID:???
すいません、環境は

VS.NET
C++
DirectX8

です。
0744名前は開発中のものです。02/10/22 20:41ID:???
どうやるもなにも自分で好きなように変えれば良いだけ
0745名前は開発中のものです。02/10/22 20:43ID:???
>>742
初心者スレ向けの内容だね。

「普通に読めない」というのは、暗号化(スクランブル)の場合と
圧縮の場合がありますが、それぞれについて。
スクランブルに決まったやり方はありません。
なぜなら、決まった暗号化の手続きがあるのであれば、
決まった複号の手続きで簡単に戻されてしまい、暗号化の意味が無いからです。
ですが、全部1bitローテートするだけで普通に読めなくなるので
簡単なものでも問題なしかと。

圧縮については、辞書圧縮や動的ハフマン法、ランレングス法といった
有名なアルゴリズムがありますのでそういったものを利用する場合が多いようです。
具体的なアルゴリズムは文献を調べるなりネットで調べるなりしてください。
0746名前は開発中のものです。02/10/22 22:57ID:???
マップの書き方はどういうのがいいのやら
0747名前は開発中のものです。02/10/22 22:58ID:???
先頭に余分なものを追加するなり1ビットずつ反転するなり好きにするよろし

拡張子だけ変えて実はgifそのもの、なんてのもあったなー。すぐばれるけど。
0748名前は開発中のものです。02/10/22 23:38ID:???
>>746
どんなマップ?
平面なら二次元配列でいいと思うが。
0749名前は開発中のものです。02/10/23 00:55ID:XrIoI0Co
逆汗すれば終わりだなー
名かには逆汗ブロックするものもあるけど
0750名前は開発中のものです。02/10/23 01:44ID:???
>>749
ん? 発想が逆だと思うよ。

「リバースエンジニアリングされたら終わり」じゃなくて、
「リバースエンジニアリングされなきゃ大丈夫」。
平文で読まれなきゃ読める人は大きく限定されるわけだからね。

でも、解析されても、個人製作のソフトにそこまで情熱を傾けてくれるのなら
それはそれで嬉しい気もする。
0751名前は開発中のものです。02/10/23 21:37ID:rAqnFbe+
ゲーム製作者に質問です。

正直、Vectorにある数多くのフリーゲームで、何割くらい(または、いくつくらい)が
遊べるゲームだと思っていますか?

人によってかなり答えが異なると思いますが、みなさんの意見を聞かせてください。
0752名前は開発中のものです。02/10/23 21:50ID:???
プログラミングとの関係がないなら雑談スレでやろうよ・・・
0753名前は開発中のものです。02/10/23 23:47ID:???
>>751
http://game.2ch.net/test/read.cgi/gamedev/1007129482/84n-
0754名前は開発中のものです。02/10/24 16:35ID:???
>>751
個人的にはゼロ。
ぜんぜん遊べん。
0755名前は開発中のものです。02/10/24 17:51ID:???
タスクあるいはジョブコンと呼ばれるリアルタイム処理なプログラミング技法上で
再帰処理が必要な思考ルーチンを組まなければならない場合、どうやってますか?
0756名前は開発中のものです。02/10/24 17:57ID:???
製作中断
0757名前は開発中のものです。02/10/24 19:21ID:???
>>755
ageないと質問に答えてもらいにくいよ
急いでいないならいいが
075875502/10/24 19:37ID:???
>>757
急ぎではないのでマターリ待ちます。
0759名前は開発中のものです。02/10/24 19:44ID:???
>>755
・マルチスレッド
・再帰処理をタスクシステムへ載る様に組み直す

パッと思いつくのはこれぐらい。
0760名前は開発中のものです。02/10/24 20:59ID:???
>>754
そんなことはない。少なくともゼロではない。

>>760
必死だな(w
0761名前は開発中のものです。02/10/24 21:41ID:???
>>760
なんでそんなに必死なの
0762名前は開発中のものです。02/10/24 22:06ID:???
warata
0763名前は開発中のものです。02/10/24 22:50ID:???
ワロタ
0764名前は開発中のものです。02/10/25 02:42ID:???
こんな事で笑っていてはいけません。
もっとおかしい事はたくさんありマンコ。
076575502/10/25 10:46ID:???
>>759
2番目の奴の詳細解説キボン。
擬似スタックを作るんだっけ?
0766名前は開発中のものです。02/10/25 11:11ID:???
おまいらは、そんなにも擬似とつけたいのでつか?
おまいらが、いまよんでいるのは 擬 似 文 字 でつか?
0767名前は開発中のものです。02/10/25 14:59ID:???
擬似じゃなくて仮想なら無問題?
0768名前は開発中のものです。02/10/25 15:06ID:???
いまここにある文字は
おまいらにとっては 仮 想 文 字 なんでつね?
0769名前は開発中のものです。02/10/25 16:06ID:???
ごめん、virtualにしといて
077075502/10/25 16:07ID:???
仮性ホーケーは黙ってて欲しいな >768
077175902/10/25 17:17ID:???
>>765
そういうことです。配列にスタックを作って自前で管理し、ローカル変数を
そのスタック上に置きます。
再帰を単純なループに開いた上、タスクシステム上でまわす事になります。
0772名前は開発中のものです。02/10/25 20:04ID:???
DirectXフルスクリーン@C言語で、
ユーザーからの入力文字(漢字変換とかもアリ)をげっちゅーするには
やっぱりInputBoxのAPIしかないのでしょうか?
0773名前は開発中のものです。02/10/26 01:01ID:vJSal2rR
XindowsXP HomeEditionを使っているのですが、
自分のプログラムを実行するごとに重くなっていきます。
プロセス自体はちゃんと終了しています。

windowsって、プログラム終了時にメモリの解放って行ってくれないんですか?
まぁ、自分がメモリリークをつぶさなければいけないのですが。

特に、大き目の画像を扱った後にそのような現象がおきるみたいです。
どうなんでしょう。
0774名前は開発中のものです。02/10/26 01:14ID:???
>>773
タスクマネージャに該当プロセスがないことは確認したかい?
0775名前は開発中のものです。02/10/26 01:14ID:???
はい、確認しました。
0776名前は開発中のものです。02/10/26 01:28ID:???
解放は自動的に行われることになってるし、XPはNT系だからさらに安全なはず。
ただしこれはドライバが正常に動作していればの話。
ディスプレイドライバを更新するとかしてみれば?
0777名前は開発中のものです。02/10/26 01:46ID:???
メモリ確保して開放せずに終了したら駄目じゃん。
0778名前は開発中のものです。02/10/26 02:48ID:???
>>777
プロセス終了時のメモリ解放は
OSの管轄ですが何か?

メモリリークが問題になるのは
長時間常駐するプロセスだけ
■ このスレッドは過去ログ倉庫に格納されています