C/C++ゲーム製作総合スレッド Part7 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/01/11(日) 10:19:31.85ID:RDQlUyF+
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その18
http://peace.2ch.net/test/read.cgi/gamedev/1399459468/

前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
C/C++ゲーム製作総合スレッド Part6
http://peace.2ch.net/test/read.cgi/gamedev/1404815419/
2015/01/11(日) 10:39:11.80ID:lPY833F2
2015/01/11(日) 18:56:29.39ID:Q8fjCZ3C
おつん
2015/01/12(月) 16:06:35.67ID:skthRk+e
基本的にゲーム内で使う文章を外に書くメリットはないよな?
で、セーブファイルは専用の構造体を用意して
そこに保存が必要な数値を片っ端からぶっこめばいいんだよな?
なら今のゲームでテキストファイルを使う場面って、
セーブデータ等のテキストデータのエクスポートくらいだと考えていいんだろうか?
2015/01/12(月) 16:37:57.91ID:7zQT7KO5
文章校正のたびにいちいちコンパイルすんの?
2015/01/12(月) 16:41:38.11ID:2JI68Ytd
海外のゲームやったことないのかね?
大抵テキストデータは外に置いてあって日本語化Modとか作られてたりする。
日本国内しか相手にしないならそれでも良いと思うけど
2015/01/12(月) 18:56:00.81ID:+4zBZCv5
テキストデータでデータ構造作っておくと色々と便利だよ
テキストエディッタ使えばデータを書き換えられるから、
わざわざ専用エディッタを作らなくてもいいし
2015/01/13(火) 02:13:15.64ID:NQh/p/ub
lua,Squirrelなどを使って、シナリオ・文章などを、
読み込んだりしているんじゃないの?

これらを修正する度に、
コンパイルするのは時間の無駄
2015/01/13(火) 02:51:46.58ID:z6JNQND6
ウチの会社では、基本的にゲーム内で使う文章は外のツールで作成してるな。
わざわざソース内に置くメリットがむしろ感じられない。誤字修正の度にプログラマが手を入れる必要が出てくるし、ビルドに時間もかかるし、別の言語に移植する際に面倒じゃないか。
あ、あと、文章の問題であればそのツールを開けばいいという、問題の修正箇所を局所化できるというメリットもあるから。


セーブは確かに専用の構造体(というかPODクラス)を用意して必要なデータをぶっこむ、シリアライズして吐き出す形だな。

それらの吐き出す形は結局単純なテキストではなく、何らかの形式に則ったバイナリ(テキストエディタで開いても意味不明な部分が交じるファイル)だけど。
2015/01/13(火) 08:36:10.29ID:u897FUjW
プログラマ1人で造るミニゲームとかで、メニュー程度の文章量しかないなら
たしかにハードコーディングのほうが楽ではある
2015/01/13(火) 11:20:25.68ID:tklViF/V
>>9
そういう文章ってどうやってプログラム中から識別するの
"会話0001"?
2015/01/13(火) 12:40:45.14ID:x0mM86eW
4 :名前は開発中のものです。:1985/01/12(土) 16:06:35.67 ID:skthRk+e
基本的にゲーム内で使う画像を外に書くメリットはないよな?
で、描画手順は専用の構造体を用意して
そこに開始点・終了点の座標や塗る色の数値を片っ端からぶっこめばいいんだよな?
なら今のゲームで画像ファイルを使う場面って、
画面紹介等の画像のスクショくらいだと考えていいんだろうか?
2015/01/13(火) 18:27:31.65ID:u897FUjW
>>11
ユニークな名前で管理するのが面倒な規模なら
ロジックの部分もある程度は外に投げるようになるんでね
2015/01/13(火) 18:40:16.59ID:RKeKGf32
画像ファイルでそれやろうって奴はいないだろ…
テキストは定義された物を書き出すだけだからやろうって考える人がいるだけで
あと、MOD作ってもいいよとか多人数でやるよとか
追加含めて大量に書くよってんならテキスト外置きなんだろうけど、
逆に言えばこのどれにも当たらないならいらないかなって
一部でもオープンソースにする気はないって人もいるだろうし

壊せる壁って破壊済み相当の状態で床などに変化するオブジェクトだけど、
これはダメージを与えていくと壊せる物はマップチップ扱いなのかキャラクター扱いなのかよく分からない
キャラクターをマップチップに正確に重ねてチップを隠すんならいけそうだけど、
そうするとマップ情報をキャラクター生成部に送る必要があるんだろうか?
2015/01/13(火) 19:39:05.23ID:MdTOZHze
>>14
普通に居るけど
Mod作りやすいってことは本編も作りやすいって事がわからんのだろうかね。
あとオープンソースの使い方おかしい
2015/01/13(火) 22:57:29.48ID:RKeKGf32
それ、一部の場面でレイヤーの代わりに使ったりする物のことを言ってるんだろ?
描画画像を全部内部で0から生成なんかやってたらそのコードだけでものすごい量になっちゃうよ
逆にそれが部品として小さいなら、外に置かなくても組み込んじゃえってのはありだとは思うし
それを実行しているのが一行目ってわけだ

非現実的な案ではあるけど、できるんなら画像の隠蔽は完璧だな
あと、一部ならオープンソースじゃなくてシェアードソースね、おk覚えた
2015/01/13(火) 23:22:24.12ID:tklViF/V
お前は勘違いをしている
2015/01/13(火) 23:48:10.98ID:QJSitgs3
ソース違い
2015/01/13(火) 23:48:23.40ID:yF9v46c2
たとえ話は
通じなかった時に双方ともに間抜けなことになるのが辛いな
2015/01/14(水) 00:25:45.86ID:8sU4Ec1w
スレを流し読みしたが、>>14-16の辺りが話が噛み合ってないよな
これお互いに誤読してるだろ。推測するに大凡の所お前らの間には
目立った意見の食い違いはなさそうだから仲良くしろよな
2015/01/14(水) 01:05:05.22ID:8sU4Ec1w
>>14
>壊せる壁って破壊済み相当の状態で床などに変化するオブジェクトだけど、
>これはダメージを与えていくと壊せる物はマップチップ扱いなのかキャラクター扱いなのかよく分からない

本来は、昔のゲーム機の仕様(例えばOBJとかBGがあるやつね)の様々な縛り
の中での話なので、今なら好きに定義して自由に作ればいいんじゃねーかな

見当がつかなくて何か参考にしたいんならツクールの類でも触ってみて
内部の仕組みを推測して真似てみたりすればいいんじゃねーかな

>キャラクターをマップチップに正確に重ねてチップを隠すんならいけそうだけど、

そういう手も当然ありだよね

>そうするとマップ情報をキャラクター生成部に送る必要があるんだろうか?

どういう機能分割をしてるのかイマイチ分からんけど、座標系の概念が
考慮されてないなら取り入れたほうがいいんじゃねーの
2015/01/14(水) 01:50:18.20ID:oy3qeLAO
え、俺はマップチップもキャラも一緒のオブジェクトなんだけど
お前らわざわざ分けてんの?
2015/01/14(水) 18:32:13.33ID:b3+ap1tg
>>22
舞台装置と役者は似て非なる別物だからよ

>>14みたいなことをやる場合、
当たり判定まではキャラクターと同じでも
HPは持っていない壊せない壁をどう定義するかがな
2015/01/14(水) 20:11:23.18ID:oy3qeLAO
>>23
同じオブジェクトで行けるってことは、似て非なる別物じゃないと思うが
2015/01/14(水) 20:25:50.33ID:mV/UlqnK
好きなようにすりゃええがな
あんさんの方法を否定してる奴なんて誰もおらん
あんさんは他人を否定したくて仕方ないかも知れないがな!
2015/01/14(水) 21:38:06.89ID:0XojYraf
例えどんな方法でも実現可能だったとしても
複数の手法の中からベストな物を追求するのは良いことである
2015/01/14(水) 22:19:18.87ID:oy3qeLAO
>>25
まぁ、お前にゃ聞いてないがw
似て非なる別物の根拠を訪ねただけで、否定したように感じるってのは相当病んでるぞ
2015/01/14(水) 23:02:57.92ID:iwR4jgL6
当たり判定の範囲をなしを含む特有の定義にして、
一番最初に横たわるキャラクターオブジェクト それがマップ

他のキャラクターとは一部の要素が大きく違う分管理に差が出るし
無駄を承知で分けた方が分かりやすくはなる…かも
2015/01/15(木) 21:04:25.90ID:v7OuMrqm
マップと言えば、マップチップタイプみたいな並びを記憶しておく必要があるマップは、
当然二次元配列を使うとして
たとえば現在の装備一覧のような、
同じ要素を指す数値の並びをしている物の塊も二次元配列にすべきなんだろうか
2015/01/15(木) 23:17:08.52ID:Q5DMCUO8
>当然二次元配列を使うとして
2015/01/16(金) 08:47:44.30ID:ZjU+PjG/
>>29
別にどう作っても良いけどマップも1次元の配列で持っていた方が楽
座標x、yも持たせておけばいい
2015/01/16(金) 12:23:34.85ID:KH2Og/LD
二次元のビットマップ画像も普通一次元配列で確保するよな。
2015/01/16(金) 23:19:42.96ID:aIsA+egi
>>29
>たとえば現在の装備一覧のような(…中略…)二次元配列にすべきなんだろうか

一覧表示にも色々あるけど
要求(される操作)に応じて適切なデータ構造(コンテナ)選ぶものなので
二次元配列でおk(な要求)ならそれで作るのが一番いいんじゃねーの

要素数がたかが知れてる場合、配列(std::vector)使ってるからって
何か問題が生じるような事はまずないわけだし
2015/01/17(土) 08:27:09.12ID:XHyVYcVD
2次元配列でOKなものは1次元配列でOK
わざわざ2次元配列を使うメリットは何も無い
2015/01/17(土) 11:40:55.67ID:vMwgaTo6
シンタックスシュガーでしかないもんねぇ
初心者に教えるなら積極的に使うけど
2015/01/17(土) 11:55:03.58ID:YJD7hT+O
一次元配列で確保した上で行(or列)先頭にアクセスするための
インデックス(LUT)を用意するような内部実装でも二次元配列
なんであってだな(>>32)

ターゲットも実装も不明ならメリットねぇとは断言できんよ
2015/01/17(土) 11:57:15.65ID:YJD7hT+O
>>35被ったスマン
2015/01/17(土) 17:31:33.18ID:KBPYDccT
たとえば縦スクロールSTGのマップとかで、
メモリ節約のためにマップを行ごとに細切れにして
表示範囲の上に一行足して下から一行引くような処理をしていたりする場合、
一行ずつ読み込んでるんだという事を示すためにわざとやるとか
試作段階で仕様が固まらなかった時の苦肉の策がそのままになっちゃったとか?
二次配列ってなんかあんまり使い道が浮かばない
39名前は開発中のものです。
垢版 |
2015/01/17(土) 18:57:09.16ID:O8Io0R5L
3Dでキャラクターが技によって自由に地面の凹凸を操作できるようにしたいんですが
予め頂点を作っておかないとダメでしょうか?

キャラクターがここじゃーって指してる座標に一番近い面の上に
頂点をいい感じに窪ませるように配置して、
もともとあった面と入れ替わるような感じにしたいのですが、
当たり判定やハードウェアレンダリングしたいならやっぱり面倒ですか?

まぁハードウェアレンダリングなんてどうやればいいのかわからないですが
2015/01/17(土) 20:24:50.48ID:dqiO68fF
確かにあんまり、というか殆ど多次元配列使わないな
配列へのアクセス部分は、隠蔽する傾向にあるから、アクセス用インデックスが多次元でも、アクセスの内部仕様は1次元配列でやってることが多いな

また配列の次元数を増やすと、後から解読するのが難しくなって、可読性が下がる
だから次元が増える場合は、次元別にクラス定義して、一次元配列のメンバに下位次元を持たせるようにしてるな

そういやD3DMATRIXに2次元配列のメンバあるけど、自分で定義したものじゃないし、そもそもそのメンバって殆どアクセスしないなぁ
2015/01/17(土) 20:40:58.36ID:eRR0fEDj
std::vector<std::vector<int>>とかやるじゃん?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況