ダークソウルみたいなオープンワールドみたいなゲームを作る時にさ?

1 : 2021/10/03(日) 04:26:31.198 ID:IxqYYFJp0
色んな武器や魔法とか攻撃パターンがあるけど
1つ変更するとなるとすべてのマップで変更って事だよな?
2 : 2021/10/03(日) 04:27:58.539 ID:D8Jc0GbK0
ステージ自体はそんなメチャクチャ広くはないんじゃないの
ロードとかあるし
4 : 2021/10/03(日) 04:30:11.689 ID:IxqYYFJp0
>>2
分けて作るとなると
関数やクラスを分けなきゃいけないわけで
そうなると修正が入るとすべての関数とクラスで書き直さないといけなくなる
5 : 2021/10/03(日) 04:30:20.094 ID:cMMownIq0
>>2
最古参コテ久しぶり

仕事はうまく言ってるか

3 : 2021/10/03(日) 04:28:57.369 ID:IxqYYFJp0
それとも尋常じゃないくらい大きな面を用意して
互いのマップをある程度一つにして作ってんのかな?
6 : 2021/10/03(日) 04:31:54.499 ID:IxqYYFJp0
あの膨大なロード時間って
とてつもないくらい大きな変数を用意して一つの面で表現してんのかな?
で、必要な背景と敵の変数と3DCGだけ読み込む
7 : 2021/10/03(日) 04:33:19.197 ID:PCYZNz1R0
何が言いたいのか分からん
例えばスケルトンが魔法を使うように変更したら
地上の墓地のスケルトンも、地下の墓地のスケルトンも魔法を使ってくるようになるよねって話?
9 : 2021/10/03(日) 04:35:38.592 ID:IxqYYFJp0
>>7
そういうこと
特定のマップだけで特定の動きをするだけなら
そのマップが表示されているの関数やクラスの中の条件式などを変更したら行けるけど
もしすべてのマップで適応となると
すべてのマップが表示されている条件式を変更しないといけなくなる
14 : 2021/10/03(日) 04:37:59.943 ID:PCYZNz1R0
>>9
別にマップで関数やクラスを分けたりしないから何を言いたいのかがうまく汲み取れねぇ
マップとキャラクターは完全に独立したオブジェクトだし
特殊な動作はAI関数に組み込んだり引数で渡したりするから
一つ一つを変えることはないよ
16 : 2021/10/03(日) 04:42:32.497 ID:IxqYYFJp0
>>14
そこなんだよ
別のオブジェクトだからこそ問題で
別のオブジェクトの場合条件式を書くとき
ダイレクトに条件式を書かないといけないから
条件式を使いまわせない
8 : 2021/10/03(日) 04:34:13.649 ID:IxqYYFJp0
例えば32ドットずつの四角形を一つのマスとして
スーパーマリオブラザーズを作ろうとすると
横に300、縦に20くらいでしょ?
これを横に300、縦に300にすると
一つの関数で15面まで作れる
もし何か修正や追加する場合は一つの関数だけで15面までは対応できる
10 : 2021/10/03(日) 04:35:48.977 ID:mjxqYvGx0
別キャラとして作るだけじゃねーの
11 : 2021/10/03(日) 04:36:03.963 ID:79cb1F1v0
アニメーション一つあればキャラクター変わっても使えるんじゃないの?
12 : 2021/10/03(日) 04:36:15.869 ID:2WS3zUP0a
ダクソってオープンワールドではなくね?
13 : 2021/10/03(日) 04:37:52.591 ID:ajRpF6NxM
そう言う何か変更する度に全部変更するってのをしないようにクラスを作るんじゃねえのか
15 : 2021/10/03(日) 04:38:09.398 ID:IxqYYFJp0
上の例でいうと
マリオを作っている時に
1面の横が300、縦20のマップを作り
一つの関数で条件式を描いて当たり判定からジャンプまでを作り
次のステージに行ったときに
別のクラスに移動させたとする
これを15個のクラスを作り15個のステージに合わせて作ればいいけど
例えばマリオが空を飛べるようにすると
15個すべてのクラスの条件式の書き替えになる
でも一つのステージを横に並列して作っておけば
一つのクラスだけで書き直しが不要になる
17 : 2021/10/03(日) 04:45:59.223 ID:IxqYYFJp0
一つの関数かクラスで書けるだけ書いていって
一定数を達したくらいでわけるみたいな感じなのかなぁ?
プロってどうやってんだろ
独学だとサパーリ
18 : 2021/10/03(日) 04:49:17.276 ID:IxqYYFJp0
例えばSTGで言えば
7面あるじゃんか?
あれを並列して横に置いて
一つの関数かクラスで書けば
一つの関数かクラスでいける
その時にキャラの追加とか仕様の変更をするとなれば
一つの関数かクラスの変更でいけるけど
1つずつ面を関数かクラスで分けると全部で書き換えが必要になるというか
例えばドラクエを作る時に町と洞窟とかをすべて一緒にして作れば
UIの変更の時とかもそのまま1か所直すだけで動く
物凄い強烈にコード数が増えそうだけど
19 : 2021/10/03(日) 04:50:50.219 ID:PCYZNz1R0
イマイチ>>1のイメージが掴めん

敵のAIはマップ別に分かれていて
「マップAの敵」みたいな感じで処理が用意されてると考えてる?
そしてマップ別にクラスを分けてしまうと共通する挙動の修正が大変って話?

22 : 2021/10/03(日) 04:54:14.892 ID:IxqYYFJp0
>>19
えーとさ
普通に考えると
街と城と世界マップの3つがあるとしたら
普通なら3つ関数かクラスで分けるよね?
ここまではわかる?
街の関数、城の関数、世界マップの関数と分けるよね?
これで分けないというと
一つの関数かクラスでシーケンスで分けてゴチャゴチャになりながら実装していく感じになるんだけど
20 : 2021/10/03(日) 04:51:03.313 ID:8qVaq4N00
何を言ってるかよくわからないけど根本的に勘違いしてる
21 : 2021/10/03(日) 04:51:24.602 ID:IxqYYFJp0
あの異常に長いコンシューマーのロード画面って
いくつかのマップを一つの面で作っていて
いらない画像や変数を呼び出さず
必要な画像と変数だけをロードしているから
あんなに長いロードになってんのかな?
23 : 2021/10/03(日) 04:56:44.312 ID:IxqYYFJp0
例えばUnityで言えば
スタート画面、ゲーム画面、ゲームオーバーの画面と3つあるとすると
3つ分けるよね?
これがRPGだと
城のマップ、町のマップ、世界マップと3つに分けるものだと思っていたんだけど
でもこれって分けないで一つで作ってんじゃないの?と気づいてしまったんだよね
25 : 2021/10/03(日) 04:58:55.791 ID:IxqYYFJp0
例えば分けるとどうなるかなんだけど
ゼルダとかをイメージしてほしいんだけど
武器とか、特殊攻撃みたいなのが冒険進めるたびに増えていくじゃないか?
これをマップごとに分けて作っていると
後から追加したものがあると
前のマップの関数やクラスに戻って実装させないといけないわけよ
それが50マップなら50個追加修正しないといけなくなるから
え?これマジで言ってんの?と思って前止まっちゃったんだよね
27 : 2021/10/03(日) 05:01:31.122 ID:IxqYYFJp0
逆に言えば分けてないからあんなにコンシューマーってロード時間が長いの?
ようするに必要なシーケンスの場面だけ必要なものをロードして
いらないのを消していってる感じなの?
29 : 2021/10/03(日) 05:06:09.556 ID:IxqYYFJp0
むしろ今考えれば小規模なゲームこそ分けて作ってる方がバカだよな
そんなにメモリを一度で消費してなそうだし
必要なものも何もすべてロードしてやる感じでいいもんなぁ
31 : 2021/10/03(日) 05:09:08.726 ID:IxqYYFJp0
というかこれはゲーム特有なのかな?
普通こんな事しないよな
WEBとかでも全部HTMLはわけるものだし
一つのHTMLで全部のサイトを書くなんて頭おかしい気がする
32 : 2021/10/03(日) 05:14:39.288 ID:IxqYYFJp0
例えばUnityでいえば一つ目のシーンで全部のマップの処理を鬼のようにコード数増やして
書いてるようなもんだけど
それが普通なのか

コメント

タイトルとURLをコピーしました