【ゲームで、この処理ってどーやってんの?】
■ このスレッドは過去ログ倉庫に格納されています
ゲームを作ってるor作りたい人が、自分のゲームに実装したい処理や、既存のゲームのこんな処理ってどーやって実現してるの?と質問すると、心優しい誰かが説明してくれるスレです。
質問は、これこれこういう処理、〇〇のゲームのこれみたいな、とか、△△のこの面のこれってどーやってんの?という感じで既存のゲームなどを例示したりして、分かりやすい質問を心がけましょう。
説明は、コード羅列は禁止しましょう。長文でも良いので、このようにできている、又は、こんな感じでできるんじゃない、という風に文章で分かるような説明を心がけましょう。
■ゲーム開発会社がゲーム製作技術を伝授するスレ
https://mevius.5ch.net/test/read.cgi/gamedev/1520381891/
↑上記スレを見ていて、現スレのようなのがあれば、便利かなと思って建てました。 >>76
んんー、10未満であることを判定して実行してるから、確かにIF文であることもないのだけど・・・普通、IF文とは区別する。
だってそうしないとfor文もwhile文もIF文ってことになっちゃうじゃん?
>>3を忠実にCで書き表せば、
a++;a=a%10;
って表現にした方が正しいというのなら、その通り。 >>77
論点がずれている。
なんで、>>3が意味あるのか考えろ
なんでIF文だとツッコミいれたか考えろ 処理というよりは、どちらかというと作業の段取りについてなんだが、
スターオーシャンセカンドストーリーやテイルズ オブ デスティニー2の難易度設定は、どうやったら実現可能なんだろう
あれらのゲームはRPGなのに、戦闘はリアルタイム性が強いアクションゲームなので、バランス調整結果の確認の手間は大変だと思う
にもかかわらず、最初に選べる難易度によって敵の強さが変わってくる。よく検証してないんだが、攻撃パターンも変わってくるんだろうか
敵キャラのパラメータを設定する作業だけでも大変だと思うが、難易度に応じて単純に何倍とかにしているだけなだろうか
しかし関門を突破する為のプレイヤーのレベルが足りないが、安全に稼げる経験地が少ない状況に陥り、ゲーム進行が滞る可能性もあるだろうし
どういう体制で、どういう段取りで難易度設定作業を行い、また遊べるかどうかの確認をしているんだろう
人海戦術頼みななんだろうか >>78
>>3配列の添字ループはmodだよね(y=x[++a%10])
>>70俺は三項演算子だな(y=x[++a>=10?0:a])
>>74それif(三項演算子)やんけ
何度考えても、74のツッコミの意図がわからん
(プリインクリメントが気持ち悪いけど気にするな) 超初心者の俺には話題がハイレベルすぎて
まったく意味がわからんぜ・・・ ちょっと聞きたい。snesのロックマンのデータのパスワードと記録方法ってどうなってるの?ランダムで敵を動かしてると配置までランダムになっちゃう >>83
見てないからわからんけど、ランダム使ってるなら単にSEEDを記録してるんじゃないの? >>83
せめて、パスワードを入力した後にどんな状態になるのかわからないと、仮説すら立てられないぜw
パスワードは、敵の座標を格納できるほど長くないってことでいいんだよな? すまんな外出してた
>>87
サンクス。ちんポジで長ったらしくやってるのか・・・こりゃ自動セーブが捗りますわw total warのような大量のオブジェクトがかなりリアルに描写されてるようなやつって、どこをどうやって負荷を軽減してるんですかね?
animationや兵士の隊列の処理やら負荷すごそうなんだけど
https://www.youtube.com/watch?v=KUWJwh5yulo 自分も戦略戦術系シミュレーション作りを志向してますので、考えてますが。
今のところ考えてるのは、
・拡大描写時→画面に映る人の数は少ない→画面から外れる人の描画処理はカット(戦闘によるダメージ計算や座標移動計算のみする)
・縮小して広い範囲を描写→個々の物体が小さくなるので、物体の画像(3Dモデルなども)は低容量のものに差し替えて描画する。
基本3D空間では遠くにあるものは低容量画像を使えばイイのかな、と思ってます。
言うのは簡単だけど、これって、拡大時、縮小時、中間時と、同じキャラを3種類用意しないといけないってことですね。3倍面倒だ〜
隊列とかについては、、、なんだろ、そんなに大変ですかね。
一人一人に、中心となる人との相対座標持たせて、戦闘以外の時、隊列に戻ろうとする時その座標を目指させればいいだけ?
その際、倒されて隊列に穴が空いた箇所があれば、他で補う処理を噛ませる。
リーダーと部隊全員だと、部隊員数が増えた時アレなので、サブリーダー、場合にとってはサブサブリーダーを階層的に追加できるようにして、リーダー、サブ、隊員と、上位者との相対座標を持たせれば隊列はそれっぽく見えませんかね。
処理の軽減、高速化はうまくできると楽しいですよね。
では、長文失礼しました。 >>89
俺はunityしか知らんから、その目線でしか答えられんが
まず上からの目線だと錐台のカリングと言うのが行われる。
これによって画面外の個別なオブジェクトは描画されない。地形も適度に切っておけば、この錐台のカリングにより思ったよりも頂点数を抑えられている。
一番不味いのは、錐台に多くオブジェクトが入る可能性がある、地平線が見えてる時。
今回のようなフィールドはこの時の事だけを考えるのが良い。
次点で重いのはオブジェクト描画。更に遠景になる事による遠くのオブジェクト描画の頂点数だ。
これを軽減するには、遠景時に自動で頂点数が減るテッセレーションがあるが負荷を考えたり、負荷をCPU側に持って行く事を考えると、現実的にはlodと言う選択になる。
次に考えるのは、アニメーションだね。
これがまた重い。何が重いかと言うと、スキンメッシュやアニメーション間のモーフィング技術が重くなってくる。
これの打開策として昨今着目されてるのが、頂点アニメーション。
つまり、アニメーションは伸張自在なスキンメッシュを使わずにメッシュの動きを焼き付けるんだね。
また、ブレンドを諦めればアニメーションをコントロールするアニメーターも消せる。
彼らの技術を複合的に使う事で、数百オブジェクトを高FPSで動かす。何て事も、可能になってくる potalの仕組みは実際にpotal買ってクリアしてみ
製作者の解説が聞けるぜ 自前でゲーム作ってるんですが最近のゲームではほぼ必須の、チュートリアルで、
「○○の練習だやってみよう!」このボタンだけ押す、次はこのボタン、次は、、、というのはどう考えれば良いのでしょう。
単純に、矢印やそのボタン辺りだけ明るく周りを暗くして、他の操作は無反応にするってだけでもいけそうですけど。。。 それでもいい
深く考える必要はない
チュートリアル用の入力処理通りの一本道しか受け付けないんだし
一度しか使われないんだから、メインルーチンいじらずに
追加プログラムで乗っ取りかければよい >>94
レスありがとうございます。
作る前から難しそうって考えちゃうんですよね。実際作り始めるとそれほどでもない、ということ多々あるのに。
悪い癖だ。作り始めて考える、なんてのも導入しなきゃですね。
よーし、やるぞー、おー。 つーかシナリオの第1章第2章とか
どうやって実装するつもり?それと同じだぞチュートリアルも >>96
ごめんなさい。章があるゲームではないもので。 ドラクエなどゲーム中の文字が1つづつ順番に表示されていくメッセージ方法はどうやるのでしょうか? 文字じゃないけど俺も気になる
タイマーでも使うのかな
イベントドリブンなプログラムって面倒だ 文章データの〇番目を表示させるだけだろ
タイマー時間後〇をインクリさせて呼ぶだけ ゲームだったら何かしらのメインタイマーは動かしてるだろうから、
単純に文字列を配列に入れて1文字ずつ取り出せばいい
順番に配列の要素を取り出す命令があるだろうし、なくてもindex番号の変数用意してインクリメントすればいい。
このスレだとcっぽい動作になるからかわからないけど、昔言ってたけど今はほとんど使わない用語使ってる人多いね。
ゲームもオブジェクト指向で書いた方が楽だよ。 開発が始まって忙しいと言いつつも
連投までして答えてくれるのにね 最近のゲームって海の波とかの表現凄いけど、あれもポリゴン処理なのかな?
まぁそれ専用の商業ライブラリとかありそうだけど、船が白波立てたりとか、設定した水面に物体が干渉するのとか設定出来るんかね 水面や波はシェーダで
しぶきはパーティクルが基本やね 下の毛の処理ってどーやってる?剃ったらチクチクするんだよなぁ >>105
>海の波とかの表現
荒いのはジオメトリレベルで表現してる
(ちょっと古いけど)2Dの高低地図の計算結果を元にジオメトリをいじるやり方もある
https://news.mynavi.jp/article/graphics-56/ >>3
亀で申し訳ないが、n がある程度自由に決められる数なら、2^n の数にすれば
AND でマスクするだけで済む。割り算って重たいからね。
経験上どうしても 2^n 以外にしないといけない場合ってめったにない。 【本家が完走したけど、このスレってどーなってんの?】 c#触り始めてるんだけど、明示的な型の定義とかナントカがめんどすぎる。
とりあえず何でも入る型とかってないのか。
VBでいうobjectとかvariantとか。 >>113
それ知りたいです。
なんてキーワードで検索すれば良いですか?
割り算の高速化、とかかな。 >>116
そのレスでほとんど語ってるが語ってる内容がわかんないってならビット演算子で検索するといいよ >>117
え、マジですか。空っぽを返すとしか認識してないのですが。
>>118
なんとなく分かりました。0101ニシン数を右にシフトすると基本半分になる奴ですね。ちょっと調べて割り算関係のところを改良するのは楽しそう。 あ、間違った。AND関数でマスクというのは、ビット演算で、任意の箇所だけ残す的なやつか。
勉強してみます。ありがとうございます。 >>119
c#のdynamic型。
ただし、動的型付けじゃないと困る場面でなければ使う必要ない。素直に型定義しとけ >>119
まあ void じゃなくて void * だけどね
趙亀レス ゲーム作りたいな、と軽い気持ちで調べて、このスレ読んでいきなり心折れそうなんやが 1です。
>>3についての>>70や>>77の記述に対して、コメしようと思ったけどやめました。
3の式は5に発展して、送る数が複数でもよくなったり逆順でも大丈夫になって、0〜nを前後にループさせることができるようになったんですよね。
自分的には、74さんのツッコミの意図は、自分(1)はなるべく汎用的な数式で表わそうとしていたんですが、それに対し70,77さんが、書き方と処理の流れが分かってないと理解しづらい三項演算子や、Cでの書き方を記述したからではないのかなあ、と思いました。 主さんはそろそろユニティに移行したのかな?それともまだVBなのかな? ■ このスレッドは過去ログ倉庫に格納されています