1 :
デフォルトの名無しさん :
2011/05/22(日) 01:07:22.56
人生初2ゲット
3 :
デフォルトの名無しさん :2011/05/22(日) 08:56:27.53
3getッモルッピグ!
4 :
uy :2011/05/22(日) 09:07:32.82
乙
尻から目が出た!
いきなり3連続あぼ〜んとか景気いいな
素でフイタw
実行速度気にならない、たとえばターン性のボードゲームとかだとSQLでゲームオブジェクトを管理すると楽ちんじゃないですか? ひょっとしてプロの方はこのテクニックもうやってるんじゃないでしょうか
ほとんどのボードゲームが簡単にオブジェクトの総数が求まるから 配列で管理した方が楽なんじゃないだろうか
どうせ COM 対戦作る羽目になるし、基礎ルーチン高速化しとかないとしょぼいAIしかできなくなる
なぜSQLなのか
将棋だったら盤面上の駒だけじゃなく不特定数の持ち駒も管理するからデータベースでもいいかな? データベースつってもSQLite以外の選択肢はないだろうけど。 それでも大した数じゃないんだから可変長配列とかで持ったほうがいいか。
設計すらマトモにできないのか
プレイ中のデータをセーブしといて、あとで続きの対局ができるようにするんだったら、将棋なんかはXMLとかで保存するよりSQLiteのほうがラクじゃね?
>>12 将棋の駒って最大40だろ?それくらい固定配列でいいと思うんだが
シリアライゼーションじゃいかんの?
このスレってゲ製作技術板とどう住み分けてるの?
過疎り具合
19 :
uy :2011/05/22(日) 16:33:50.94
どっちかというとここも過疎板だが向こうの過疎っぷりはさらに酷い
ゲームって相互参照多すぎじゃね? 相互参照切るとこんどはグローバル地獄だし どないせぇちゅうねん
親子関係をはっきりさせてないのでは?
はっきりさせたって相互参照はできるだろう普通に考えて… ゲームクラスはキャラとかのリストをもつし キャラはゲームクラスからほかのゲーム要素と連絡を取る どうやっても相互参照の形になる
相互参照に親と子が明確にあれば問題は起こらないだろってことなんだけど。 相互参照がまったくないってどういう状況だよ。
別に相互参照でいいじゃん
ハンドルを使う
>>22 > キャラはゲームクラスからほかのゲーム要素と連絡を取る
そのキャラのクラスは、ゲームクラスが抱える
他の全てのゲーム要素にアクセスする手段があるわけ?
つまり、ゲームクラスを介せばキャラクラスは他クラスにアクセスし放題?
そうであれば、キャラクラスにとって
他のクラスはグローバルであることとほとんど変わらず、
相互参照が複雑に絡む要因の一つになってると思う
そうではなく、アクセス制限を掛けられる何らかの手段があるのなら、
その制限を可能な限りきつくすることで、
相互参照の見通しを少しでもスッキリさせられる
27 :
デフォルトの名無しさん :2011/05/22(日) 20:36:29.05
相互参照せずともイベントとしてメッセージなげて拾えば処理はできる が、正しい設計を考えるより結んじゃったほうが早い、 という状況は結構ある 仕事でやるならTPOの問題 趣味でやるなら好きにしるww
イベントとしてメッセージ投げるってコード上だとどう表現すんの?
struct MESSAGE { いろいろ; }; みたいなメッセージ情報構造体を作っておいて void ReceiveMessage(MESSAGE Message); みたいなメッセージ受信用のメソッド作っておくとかでいいんじゃない?
struct msg{ int sender; int receiver; int info; void* extra; }; void send(msg m) { getEntity(m.receiver)->handle(m); } てきなやつじゃね
C++(GCもってない言語)でイベントドリブンてグローバル撒き散らしじゃない?
?
わからないのか・・・
>>33 お前がもう一度いろいろよく調べる必要がある
グローバルまき散らすって何故?
メッセージの構造体にはreceiverいれるとコードいくぶん簡潔になるけど たとえばひとつのメッセージを複数のオブジェクトがフックする場合なんかは ないほうがいいかもね receiver入れるってことは投げる側が受け取り側が誰かを知ってないといけないから ある意味疎の相互参照とも言えるw
アセンブラなんかどこからでもアドレス指定してデータにアクセスできたんだろ それでも面白いゲームできてるわけで オブジェクト指向とかただのウンコじゃないの
全くその通り、あなたにとってはただのウンコです
イベントをサポートする言語を使った事無い人が多いのかね
SendMessageがあるジャマイカ つってもラッパー作るのしんどいが
イベントドリブンて結局コールバック関数じゃん。 C++だとメンバ関数ポインタあるけどオブジェクトのポインタが必要になるじゃん。 オブジェクトのポインタ渡すってことはコールバック登録してる間は破棄できないじゃん。 ってことがわからないのかな。 そもそもオブジェクトをイベントマネージャーに渡してるかどうかもあやしい。
senderのポインタを渡すかどうかは作り方次第でしょ 必須ってわけでもない
お前らがまともにプログラムを作れているか心配になってきた
全く作れていないから心配ご無用
数当てゲームなら作れるよ!
>>46 大丈夫。6社ほど見てきてるけどこんなレベル。
類友ですね。分かります
>46 ソースコードの良し悪しはわからないけど、成果物はできてるよ。
しかし2ちゃんもそうだが なんでゲームプログラマーのコミュニティって盛り上がらないんだろうね
メッセージ通信であれこれするのはまあべつにいいとしても このハンドルのキャラの位置をくれとか、この範囲に落ちてるアイテムのハンドルのリストくれとか そこまでメッセージでやり取りするのって過剰だよね そう考えると結局のところほぼ直接的にアクセスする手段は持たせるわけじゃん const_chara_proxy p= entity_registry.get_chara_proxy(handle); if(p) p.get_pos(x, y); ...; とか FOREACH(const_item_handle h, entity_registry.get_item_handle_list(is_inside(l,t,r,b))){...} みたいな感じで だったら最初から相互参照にしてメッセージ送信で操作しないで直接メソッドコールすればおkじゃん chara_proxy p=entity_registry.get_chara_proxy(handle); if(p) p.move(dx, dy); これで十分なのに entity_registry.send_msg(to_handle, msg_move, move_param(dx, dy).address()); わざわざこう書く理由がわからない
がんば・・・
がんばれ・・・
そんなことよりもタスクの同期の取り方のほうが僕は知りたい
タスクってプロセスのこと?タスクシステムのこと?
もしかして朝鮮人が日本のゲーム開発のレベルを下げようとして荒らしてるのかも。。。
ゲームプログラムでプロセス起動するのってサーバープログラムくらいな気が
朝鮮人ってこのスレのレベルより低いのか
朝鮮といえばMMOだが他に朝鮮製ゲーってないのかね やつらの実力は実際どの程度のものなんだろ
朝鮮ゲーは企画がつまらない
まるで日本のは面白いみたいだな しかもプログラム関係無いし
これが東方か
66 :
デフォルトの名無しさん :2011/05/23(月) 11:02:35.79
半島製MMOは面白いとは思うけどバグ多すぎ どんなプログラム組んでるんだろうな
かなしいが朝鮮、中国人のほうがレベルが高い
68 :
デフォルトの名無しさん :2011/05/23(月) 15:19:49.08
ほ半島製ッモルッピグ!
69 :
uy :2011/05/23(月) 15:44:10.36
>>66 俺もそれ気になる
何故ここでバグるっていう場所にバグが残ってる
でもそのバグがゲーム性の一部になったりもしてんだよなぁ
もし狙ってバグ( ゲーム進行には問題ないレベルの )入れてるならたいした発想と技術力
70 :
デフォルトの名無しさん :2011/05/23(月) 16:42:04.42
俺のやってるMMOは1年以上直らなかったバグがある日突然仕様化されたw 直せなくて諦めたとしか思えないw
偶然に頼らないと面白い要素作れない半島人www
つーか版権無視でいろいろなキャラやロゴが出てくるよね 日本版だと削除されているけど
コードも丸パクリしまくりで自分たちでメンテできなくなってるんだろうな。だからバグが潰せない
すぐ逃げるっていうか、他にいっちゃってPGが残らないという話は聞いた ソースは俺
75 :
uy :2011/05/24(火) 00:27:02.85
>>73 や め て そ れ
ほんとに恥ずかしい
>>74 だろうね
MMOなんて何年も続いたら初期のPGなんて残ってない
何だかんだいってグローバル使った方がスマートだよね
>69 格闘ゲームの『キャンセル』も初めはバグだったらしいね
アニメーションデータの読み込みってみんな泥臭いコード書いているのだろうか 不安になってきたよ
何だかんだいってgoto使った方がスマートだよね
好きなところで好きなだけ使えばいい ただし、くれぐれも職を失わないように
グローバル(シングルトン)を使わないとなると、共有オブジェクトはすべて引数でリレーするか、あるいは生成時に親が子にアドレスを伝える必要がある オブジェクトが一つならまだしも複数あるとこれはめんどくさい しかもメモリ効率も実行効率も悪い さらに言うと共有オブジェクトが必要ないオブジェクトも子ツリーのどこで使うようになるかわからないからリレーに参加しないといけないから無駄 シングルトンの方があらゆる面で優れている
>>78 それは仕組みをよく理解してないからじゃないか?
>>81 ちゃんと引数で渡したらいいんと違う?
//A
un.unko(&chinko);
//B
un.unko();
こうやってAみたいにちゃんと引数で渡してあることで
「unkoの中でchinkoの中身を書き換えていますよ!」
って読み手にアピールすることは君が考えてるよりはるかに大事なことだよ
コーディングルールを「グローバル変数やスタティック変数を使わない」ってあれば
unkoの中の値の書き換えを気にするのは引数のchinkoとメンバ変数、ローカル変数だけになる
こうやってアクセスを限定することで影響範囲を小さくできるよね?
それに対してグローバル変数使いまくりのBはすべての値に気を配らないといけない
この差はでかい
タスクシステム的組方をするとBみたいになっちゃうけどゲーム会社ごとに文化があるね
タスクシステム的組方をするところとちゃんと引数で値渡して組むところじゃ
同じ規模のもん作ってもバグの数が10倍は違うw(マジで)
un.unko(&chinko); の先で何階層もchinkoが引数で渡されてたら 引数で渡した関数の中でchinkoが書き換えられてないか全部確認しないといけなくなるよね。 だったらunko関数の中のの何階層か先のchinkoを書き換えてる関数の中で シングルトンでゲットすればその関数しか確認しなくていいよね アセンブラでやってたころなんかアドレス指定でどこからでもデータ書き換えられたわけだけど面白いゲームできてるよね
>>84 いまってそこ問題じゃないでしょ?
話の主旨ちゃんと理解してる?
問題はun.unkoが実行された前後でどの変数の値が変わっているかBではわからないってことだよね?
un.unkoの引数にchinkoが渡ってるんだからchinkoが変更されるかもしれないことはAの場合はもうわかるからいいよね?
問題にならないよね?
でもBではなにもわからないよね?
chinkoが変更されるのかも別の変数のmankoが変更されるのかもしれないよね?
ぶっちゃけグローバルにした変数すべての変更を監視しないとダメだよね?
問題の切り分けできてる?
rand関数とかもいちいち引数で渡すの? 徹底すると結構面倒そうだけど
え?なんで勝手に話の趣旨変えてんの?
串ささってるのはスルーでいんじゃね
サブシステムが増えていくたびに un.unko(&chinko,&manko,&kan,&edano,&simizu,....) って増えていって美しくないな 引数で書かずにシングルトンを使えば 仕様変更or追加で新しいサブシステムを追加したときにそれを使う側のコードのみ変更すればいいということに気がつく 引数で渡していくルールにするとそのシステムを使用していないクラスも含めてすべてのコードに修正を加えなければならない これは大変な作業量になる 変数が書き換わるかどうかが分かって嬉しいねなんていうちっぽけな利点では覆すことはできない 最初っから常に変化しうると考えてコードを書けば事足りるしそれでなにも難しいことはない
確かにそれはめんどくさいね
やっぱり引数で渡さない理由ってのが「面倒臭い」ってだけなんだよね しかも、面倒臭そう・・・ってただの思い込みだけだし 実際やったことないでしょ? 技術者として死んでる 俺からしたら関数通過するごとにすべてのグローバル変数に気を配るほうがありえんわ
>>90 struct share { share_a a; share_b b ; 〜〜〜 } ;
void aaa::bbb( hoge * p);
こうしろというのかい?
これじゃあbbbの中でどれが変更したのかが明瞭っていう引数派唯一の雀の涙ほどの利点すら消えてなくなるね
構造体で一括りにして渡していたら一体どのシステムが使われて変更されたのかまるでわからないまったくもって残念なアイデアだよ
>>93 もはや、全然関係ないこと口走りはじめたな
デバッガ使ったことないみたいなセリフはいてるけど頭大丈夫か?
>>92 お前が「思い込みだし」って思い込んでるよ
めんどくさそうなんて言ってるのどこからか迷い込んだアイちゃんの1レスだけだろ
>>94 今はデバッガの話こそ関係ないだろう
コーディングルールの良し悪しを議論している段階だ
コンパイル前の話しをしてんだよ
コンパイル前の話って、あんまり意味ないような
コンパイル前の議論が意味ないとか笑わせてくれる 実行時のデバッグより百万倍大事だろうが
>>95 やったことあるの?ないの?
早くいってみろよ
デバッグできんのに書き方考えても
でもデバッグレベルの話なら、 引数だろうがグローバルだろうが変更されたことは分かるよね
デバッグしやすい書き方とかなら、わかるが コーディングルールってのが素人っぽくって
コーディングルールで徹底しても、API周りでリエントラントにならなくて 切なくなる気がする
グローバルにしたいものってそんなに多いか?
絶対ないとは言い切れるだけの根拠があるといいきれるだけの 自信がないのかもしれないきがする
Haskell使っとけばこんな議論しなくて済むのに
Haskellでゲームつくってから言え
haskellはないわ
ゲームプログラム組む連中のレベルが低くてやべぇwww 引数で渡すのが面倒だからグローバル変数w
>>109 グローバルはダメっていってシングルトン乱れ咲きっていうのはよくある風景
シングルトンだからダメってのは思考停止の老害に多い 何事も柔軟に考える姿勢は大切だよ
>>111 むしろ、シングルトンだったらグローバル変数のがまだましだわ
それに
>>83 の問題をシングルトンで回避した上で言ってるの?
結局、引数嫌だからグローバル変数の思考は変わらないんでしょ?
>>111 なにも知らずかんがえず使ってるってことはわかった
では次は例外の議題に移りましょう
ゲームプログラムなんてオブジェクト間の依存が多いから、まず
>>89 の状態になっていく
これを避けるため、foo1, foo2, foo3 を構造体 fooset にまとめたとする
void hoge1() { /* fooset.foo1 を使う */ hoge2(); }
void hoge2() { /* fooset.foo2 を使う */ hoge3(); }
void hoge3() { /* fooset.foo3 を使う */ hoge4(); }
hoge1 から順に fooset を引数でリレーした場合、hoge1, hoge2, hoge3 は全て fooset を知ってないといけない
全てが全てを知っておかないといけなくなって、1つ変更するだけで全コンパイルだ
foo1, foo2, foo3 をそれぞれグローバルにしておくと、
hoge1, hoge2, hoge3 はそれぞれ foo1, foo2, foo3 を知っておくだけでいい。こんな感じで俺はグローバルに落ち着いた。
この依存関係やコンパイル速度の問題、引数で渡す人は解決できる?
引数で渡す人って、メモリマネージャやら Direct3D デバイスやらパレットテーブルやら全部引数で渡すの?
それとも1つ変更するだけで全コンパイル?
p(*^-^*)q がんばっ♪
>>115 前方宣言とかインターフェースとか使えよ。
ゲームプログラムの大まかな構造だけでも知りたいわ。 何がなんだかさっぱりだ。
適当に本でも買えば?
120 :
デフォルトの名無しさん :2011/05/25(水) 02:32:40.86
シントッモグルトルンピグ!
シングルトンはインスタンスが一つしか存在しない事を保証するもの。 だからゲームなら「画面管理クラス」とかに適用できる(というか沢山存在しても困る)。 グローバル:普通にユーザが別のインスタンスを生成できるからダメ。 引数で参照渡し:普通にユーザが別のインスタンスを生成したり参照渡ししたりできるからダメ。 俺々ゲームライブラリ作っててこういう結論に達した。 上の議論とはちと主旨が違う気もするが、シングルトンは変に拒否反応すべきもんじゃない。
122 :
デフォルトの名無しさん :2011/05/25(水) 02:57:01.09
C++がよくわからん。 class Teki { private: int HP; public: setHitPoint(int n){HP = n;} int getHitPoint(){return HP;}
これってint HP自体をpublicにしちゃ駄目なの?
>>121 2つ存在して困るってのは大抵「今作ってる」アプリケーションの都合であって
クラスにねじ込むもんじゃない。
「画面管理クラス」が画面ひとつに対応するとして、同じクラスを使って
2画面3画面に画面分割されたアプリケーションや、実際に画面が2つある環境で
動くアプリケーションを構築することだって考えられるだろう。
グローバルアクセスを欲しいがための言い訳でしかないよ。
素直にグローバル変数使ってるほうがクラスに混ぜ込んでないぶんまだマシ。
シングルトン病の患者は高い確立でSomethingManager病の 患者でもあるという相関が見られるようである。 また、ゲームプログラマに発症例が多く見られるようでもある。 いったい出所はどこなのか?
やべ俺罹患してるかもw 治すにはどうしたらいいですかw
>>124 案の定多画面のこと突っ込まれてしまった。例えに突っ込まれるとどうしようもない。
でも自分のライブラリでは画面管理は一つの実体がするものと考えてるから
2つ以上必要であれば、シングルトンは使わない。
重要なのは、実体が一つしか存在してはいけない時、シングルトンを使うべきということ。
でないと上でいった通りの不都合が必ず生じる。
>>125 単なるグローバル変数と一緒なわけない。
それだと、ユーザが勝手にローカル領域で
{
Foo foo;
foo.bar(); //グローバルでなくローカルのfooが参照される
}
とかできてしまうからシングルトンを適用した。と言ったつもり。
こんな真夜中とも朝ともつかない時間にいがみ合わずともよかろうw みんな仕事中にチラチラみて書きこんでるんでしょう? 変にストレス上げるなよw
ヘッダファイルに書く場合、privateだからといって完全に外部から隔離されてるわけじゃないからなあ。 本当に隠したいなら別の手段を用意したいところ。 ……と思ってるんだけど、あんまり周りが同意してくれない(´・ω・`)
デザパタ(笑)
定石みたいなのは自然にやるもんだろうに
あるていど意識して定形にしないと、微妙におかしな設計になることがよくある
データの局所化できないけど 偉いひともシングルトン使ってるから問題ないだろ!
引数派はアロケータも引数リレーすんの? 普通はグローバルアクセスだろ
グローバルにしていいのは、 ・シングルトン ・その変数の任意の状態遷移がプログラムにおいて許される (変数の状態を把握する必要が無い) の両方を満たすとき。
シングルトンは利用されてることが調べにくいし 性質的にはスタティック変数だから副作用をもつ。 このあたりを意識したシングルトン利用のコードを見たことない。
包丁は人を殺せるし人を殺す意思がなくても失敗して指をきるかもしれないから禁止するべき シングルトン恐怖症の連中の主張は例えるならこれね でも実際には包丁をどう使えば危ないかなんてのは料理少しすればわかるから事故の確率など現実的に皆無になる 要するにこの包丁の例えのようにシングルトンを拒否するということは正しく副作用を認識していないだけなんだよ 自分の解らないものは恐いからさわりたくない 無知から来る恐怖感でシングルトンを不当に否定する 正しい知識をもった人ならシングルトンを使いこなせる そうでない無能なら事故を起こすから頑なに拒否の姿勢をとる 否定派はシングルトンを否定する前に自分が無能であることをよく認識して猛省せよ
こいつ時代が時代ならgotoでも同じこと言ってるな
危険の深刻さの問題 包丁なのか原発なのか通り魔なのか
チームの話し合いで決まった方を使う 宗教論争にこれ以外の正解なんてあるのか?
チームの話し合い…… 収拾がつきません。
んなもん多数決で即終了じゃん。議論をする事自体が間違いな議題ってどうしても存在しちゃうよ。そういう時は数の暴力で決める。これだね
>>144 で?
シードが管理されてないゲームは再現性なくてバグとり困難て初歩だが
少人数の偶数人なのに無理やり多数決やると、1対1や2対2になって……
デジドカの現場ならともかく、ゲーム製作って大概の場面で プログラムの責任を負うのはメインの一人だけだろ どうもこのくだらない議論を見てると画面()しか作ったことの無いような 真性デジドカが紛れ込んでるように見えて仕方ない
>>148 は?シードは管理するだろ。あほじゃね?
責任負うためにいろいろ考えてるんじゃないの?
シードで痛い目あってもシングルトンは問題ないと
シードで痛い目みるのはシングルトンだからじゃなくて お前がアホだから。
つーか、大抵はシングルトンなんて使わないほうがいいが 疑似乱数は数少ない例外だろ
乱数はモノステートでおけ
157 :
デフォルトの名無しさん :2011/05/25(水) 10:45:27.73
お前らまともにゲーム作ったことないくせにそういうことに関してはよく議論するよな
シングルトンは駄目でモノステートはおkってよくわからんな
160 :
デフォルトの名無しさん :2011/05/25(水) 10:49:21.37
シングルトン積極派ってことはミューテックス使いまくりなの?
使う必要がなければ使わないよ
まさかスレッド使わないつもり?
シングルトンのほうだろwww
ミューテックス使わないって全スレッドにデータのコピー用意すんの?
そうする場合もあるし、そうしないでmutex使う場合もある
スレッド間で共有するなら同期処理するし 同一スレッド内でしか共有しないなら同期処理はしない これぐらい当たり前の話だと思うんだけど… シングルトンならただちに同期処理がーって考えてる人って 設計段階で何と何が同期するとか考えないで作るの?
全ての処理をシングルトンで実装してると思われてるんじゃね?
コード全部理解してもらうつもり?
オーバーレイやDLLで挙動が違うのもあるな
171 :
デフォルトの名無しさん :2011/05/25(水) 12:26:29.03
昨日から議論が加熱してる「シングルトン」って一体何?
あれだよ、コーンスープとかにはいってるやつ
探検隊員求む 至難の旅 わずかな報酬 極寒 暗黒の長い月日 絶えざる危険 生還の保証無し 成功の暁には名誉と賞賛を得る
>>126 ゲームPGは、
名前がどうあろうと1つのクラスに大量に詰め込む人が多い罠
ゲームクラスが全てを有する。 別に間違った設計とは思えない。
一つのクラスに全てを詰め込むくらいなら最初からクラス作らないほうが
2、3行で伝わるわけないのにムキになるな
C++でゲームを作っているのですが、
結局Cで作っちゃいました
と見せかけて
すべて詰め込むていってもそれは最後の段階であって 個々の要素は小さく、独立したものを作るよ
実はHSP
Lua使ってる?
たまに
ゲーム業界は、シングルな豚は多いぞ。 結婚しろよお前ら。
セーブデータはグローバル的だから使用禁止
カプセル化というものを聞いて何となく理屈は分かったんですが、 実際にどうやればいいのかわかりません 例えばキャラクターにx座標を設定し、そのx座標を使うときは class chara{ private: int x; public: int show(){ return this->x ;} ;}; こんな感じであらゆるパラメータを全てカプセル化したほうがいいんでしょうか?
それなら getX()constが適切
>>189 操作するキャラクタが一つであることが確定してるなら、大域変数として宣言する方がスマート。
カプセル化は不要。
嘘教えるなよw 後で困るぞ。 困ってから直せば良いってのもあるが
もうちょっとかくと、例えばxがlifeだった場合、 addDamage(num) getLife()const setLife(num) とか、間接的にアクセスすれば、 無敵にしたいときとか、Log吐きたいとか、Effect入れたいときとか、 色々捗るだろ?
と、シングル豚とか、寒い投稿しちゃったからちょっと参加したけど またROMに戻る
シングルトン愛好者ってまだ生存してたんだなぁ
リアルで会話したくないタイプの人間だな
お前ら満足に扱えないの? 死ぬの? そんなのと会話とかこっちから願い下げだよ?
>>189 int xがpublicだと、後でxをyに変更したくなった時、
chara.xでコードを書いちゃった人たちにたくさん「ごめんなさい」しないといけない。
show()だけをpublicにしておけば、後でこっそりxをyに変えても「ごめんなさい」しないで済む。
>>195 実際に困った状況に陥らないと、何が問題なのか本人には見えてこない
いや素直に謝れよ 社会の常識
>>189 例えばそれに1フレームキャラクターを移動させる処理を追加で
void chara::move(){
// この中でclass内のいろんな変数や関数・定数を呼び出すらしい
// なので、クラスだけで利用すればいい変数とかは全部privateにしておける
}
まぁ、外からアクセス出来る変数や関数を出来るだけ減らせば、
そのクラスを使う人も、クラスの中身を書き換える時も影響は少ないね
っていうのがカプセル化だし
publicだと、例えば座標に100以下の制限を入れたいとき毎回条件文書く必要がある。 chara.x = 300; //とか = a;とか if(chara.x > 100) chara.x = 100; 万が一if文を抜いてる所が合ったらそこで制限を越えてxに値が入るかも。 でもprivateにしてsetX(int)でしか更新できないようにすると、 chara.setX(300); //100にするとかsetXで勝手にやる というように、呼出側はxをいじる度にif文の書き忘れに震える必要がない。 つまり、変数いじるのに一様な制限したいならprivateにした方がよくなくなくない?
プロパティとかがない言語だと面倒臭過ぎてやってられない
>>201 周りに通知せずにx座標を返すはずだったものをy座標を返すように変更したら
それこそ土下座が必要になるとおもうのだが。
そもそも例えがあり得なさすぎて不適切。
>>205 そんなことは数値入力の度に処理すべき事ではない。
上限なり下限なりが必要かどうかは局面が決定すること。
遭遇してからそのつど必要な分だけ処理すべきだ。
いいか、お前ら。データが手続きを所有してはならない。
局面がデータと手続きを所有すべきなんだ。
>>207 問題ないよ
xがyに変わったことはおろか、今までアクセスしていたのがそもそもxだったのかすら解らないからね
そしてそれがわからなくても全く問題がないのがカプセル化の素晴らしいところ
おじいちゃんには難しいかもしれないけどね
>>209 名前を変える必要はどこにもないから、名前が変わったらなどという関係無い話を持ち出すのは無意味だし、
アクセス手段の名前を変えるという話であればshow()の名前を勝手に変更する話を持ってこなければおかしい。
そもそも一度決めた変数名を変えるな。 きちんとExcelで変数一覧を作って管理しろ。
この業界頭固い老害多すぎて泣けてくるな
老害は若いとき陰で上の批判ばかりしてた つまり・・・
>>214 D言語使えばgetter/settterのメリットの大半が無意味だったりするから
C++erは老害ってこと?
ゲタセタがあるクラスは失敗設計
217 :
uy :2011/05/26(木) 13:41:16.57
おめーらゲームプログラムの話しろよ
モンハンの何が面白いのかさっぱりわからない
クラス構造とか全体設計の議論ばっかしてるから いつまでたってもゲームができないんだよお前らは
え、先行してるプログラマが後発を混乱させるためのスレじゃなかったの?
教えても無駄っぽいし・・・
低能に教える技術はもってないな
>>207 データをセットする時、例外送出「処理」は一緒にされないと困るだろーが。何言ってんだ。
上の例では勝手に100に変えていたが、次のように変更。
setX(int a) throws HogeException
{
if(a>100) throw new HogeException();
else x = a;
}
これでもピンと来ないわけ? 整数配列の配列サイズを越えて代入しようとしたときとかどうするわけ?
てか局面てなんだよ。日本語のお遊びしたいんじゃねーよ。
そんなら、偶数を表す数値クラスEvnumをつくり、-1や1を代入したら(しようとしたら)どうするか
>>207 ならどういうプログラム書くわけ?
簡単に煽られすぎ、、、
何を例外とするかは自由なんだから、無意味な喧嘩はやめろよな
試しにやってみたらスクリプト楽すぎて堕落しそうだわwww もうコア部分以外全部スクリプトでいいじゃんこれwwwww
デバッガが使えない恐怖
XNAスレ過疎ってるからここで聞いて良い? Windows Game Library って主にどんな用途で使用するの? 具体例を頼む
>>231 ゲーPG自作スクリプト
IDEにデバッガ機能のないスクリプト言語
233 :
デフォルトの名無しさん :2011/05/27(金) 00:16:28.84
最近煽ろうにも難しい単語が多すぎて煽れない。 シングルトンとかカプセル化とか。 趣味のゲープロ10年やってるけどそんなものに一度も行き当たらなかった。
意図的に避けようとしても、カプセル化って単語を見ずに10年間プログラマで居続けるのは至難の業だと思うんだが……
カプセル化なんて構造体の延長にしか過ぎんよ、データをまとめておくという事が本質 OOP厨は微妙に勘違いしてるが
oops
そもそもタスクシステムでグローバル変数&シングルトンのヤツは カプセルに穴空きまくりでまともなPG経験無いに等しいから業務PGになったときに辛いぞ
は?
は?じゃねーよ
仕事でやるとシングルトン乱用されたコードの保守で泣かされる
対極というのはOOPから入ったやつの感覚 延長というのはOOP以前からやってる奴の感覚 どちらも正しい
>>235 本質はまとめることじゃなくて抽象化です。
あんたが完全に間違ってます。
>>243 構造体をデータ抽象化として捉えられないなら
本質を理解してないとしか言えない
相手は自分の中にいる仮想敵とは違います
なんで初心者って教科書の内容は自分しか読んだことないと思ってるんだろうね
どっちも正しいとしか言えね C++のstruct構文やclass構文の話と、データ抽象とかの使い方の話をごっちゃにして話すから噛み合わないだけだろ 構造体ですらないが、たしかK&Rの最初static変数でstack作るやつはCにおけるカプセル化の例だったと思う
カプセル化とは複数のデータを一つのカプセルに入れてまとめるという意味ではなく、 データ(複数でもいいけど)をカプセルに入れて「隠す」という意味で一般的には使われてますの。 まぁ猫も人間も似たようなもんだし、構造体もカプセル化も似たようなもんってことでいいよ。
みんな分かってて言ってるのにw
昔から不完全型使って構造体の内部を隠蔽するとか 当たり前だったからね 低能には分からないのかもしれないけど
FILE構造体のメンバをアクセスするタイプ?
そうそう。ただFILE構造体はヘッダに定義が書いてあるけど、 あれを.cにだけ書くようにすれば完全にカプセル化できる
OOP厨のアホっぷりはものすごいな
昔のUnixではよくあったなFILE構造体の中身にアクセスしてる奴 他のUnixにもってくとコンパイルできない
相変わらずゲームの話がないな
やっぱり処理を早くするためにポインタの配列つかうの?
一流のプロになると速くしたいときはバイナリエディタで書くからポインタなんて使わないよ
それ典型的な独りよがりPGじゃん マネージャーには絶対向かないタイプ
259 :
デフォルトの名無しさん :2011/05/27(金) 18:40:50.39
ロードランナーのソースコードを見ながら、、、 これ書いたのは、学生だしな、 趣味のコードだからな でも、結果的に世界的ヒットしたし。知らない奴、いないし
あの時代は16進数直読みできて当然だったとか
いまも
なんだったか忘れたが、ゼロクリアに XOR A を使ってなかっただとか、 そんな話を読んだな。けっこうヒットした作品だったと思う。
おっさんなのか、知ったかなのか、それが問題だ
264 :
uy :2011/05/27(金) 20:50:07.44
>>259 そのゴミはだれ?
lambdaでかいてない時点でゴミ
>>247 え、statcで、え、なんだって?w は?www
そのコードって当然、内部のstatic変数のポインタは、別変数からアクセスできるようになってるんだろうな?
ローカルスタティック変数は、小規模プログラムしか使っちゃいけないもんだぞ
K&Rってけっこう高学歴な書籍だと思ったんだけど
そんなゴミみたいなソースコードが載ってるのか
265 :
uy :2011/05/27(金) 20:52:51.87
ちなみにカプセル化は悪くはないんだけど、 完全にどんな方法を使っても、カプセル化された変数にアクセス出来ない設計はゴミだからな カプセル化された変数には、カプセル化された変数参照のための関数を用意しろよ
あほか
stackって言ってんだからpushとpopの二つの関数があるわけで だったら関数ローカルなstatic変数のわけないだろ それくらいの想像も出来ないほどアホなら煽るな
ム板の共有コテ「uy」はアホな発言をするときに使います 知らなかった方はこの機会に是非覚えておいて下さい
ステートパターンとか使ってる?
つーかステート以外なにがある
普通に使ってるとは言えないのかよ。この〜あまのじゃくさんめ!
272 :
uy :2011/05/28(土) 00:49:05.68
>>267 はぁ?wwwwwwwwwwwwwww
カプセル化じゃねーじゃんwwwwwバカスwwwwwwww
もしかして1ファイルまるまる使ってスタックごときを実装ですかあ?w
>>266 はぁ?WWWWWWWW
>カプセル化された変数には、カプセル化された変数参照のための関数を用意
これは基本だぞ
273 :
デフォルトの名無しさん :2011/05/28(土) 01:38:08.13
おまえらレベル高いんだか低いんだかわからんなw
>>272 お前が書いたこーどみてみたい。
テトリスレベルの作ってどっかにUPしてよ
ゲッターセッターも普通に使うな。 変数をpublicに晒すとかありえんわ。なんのためのprivateだよw
興味深い提案ですな テトリスだと適当にパクってくるかもだし ゲ製の土日スレのお題でもさくっと作ってもらおうか
ゲームはコード変更が自由なこと多いから 必要になってから関数化しても間に合う
一時間テトリス完コピしそう
279 :
uy :2011/05/28(土) 02:39:08.54
ぼくは今、OS と 言語を同時にやっていて気が立ってるから、休憩がてらにテトリスかいてもいいけど lambdaでかくのか OOでかくのか 手続きでかくのか選べよ
280 :
デフォルトの名無しさん :2011/05/28(土) 03:15:54.28
尻から…
281 :
uy :2011/05/28(土) 03:22:40.76
あぁ?
282 :
デフォルトの名無しさん :2011/05/28(土) 03:42:15.46
全部だ
GOFって別にプログラマーじゃないんだろ
既知小手も相手されなくなったら終わりだな
クラスの再利用性を高めるための工夫について
>>277 大して手間かわらねーんだから最初からやっとけよ。一人で作ってんのか?
おまえみたいに自分の好きなとこだけ不便に作るってわけにいかないんでね
ゲームプログラムのテストについて
マジ本読む事をお薦めする
デバッカー(業界用語、笑)捕まえてきてそいつにやらせる
向上心なさ杉
debukker
ゲーム品質の責任者と技術品質の責任者にそれぞれ権限与えるべき
>286 再利用を前提にして設計するんじゃなく、一本ソフトを完成させてから、 他に流用できそうな処理を抽出して汎用クラスとして設計しなおす。
奴隷はそんなこと考えずに与えられたことやってろ
>>295 このくらいの謙虚さが必要だよね
一回で廃棄になるなんたらシステム・マネージャー多すぎ
後学のためにみんなどういうコード書いてるのか晒して欲しいわ
>>299 それ4つも売れてるんだなwワロタwww
301 :
デフォルトの名無しさん :2011/05/28(土) 13:13:58.88
今電車の中で何だろうと思って
>>208 開いてしまった
302 :
デフォルトの名無しさん :2011/05/28(土) 13:17:10.56
ッ
303 :
uy :2011/05/28(土) 14:11:09.24
じゃあ朝飯食べ終わったらlambdaでかき始める lambdaで書く為の根幹のソースが最初から700行あるからちゃんとそれも読めよ 理解できればな・・・
304 :
デフォルトの名無しさん :2011/05/28(土) 14:15:45.98
今が朝飯とか一体どこに住んでるんだよw
ヒント:無職
先生lambdaってなんですか
307 :
デフォルトの名無しさん :2011/05/28(土) 15:13:38.32
インドじゃないの? インドって意外とIT盛んだし。
時差的にもうちょっと西かな
>>303 今は説明は要らない、書き終わってアップしたら報告だけしてくれ
無駄話しないでコードを書くことだけに集中しろ
310 :
ゲームプログラマー祐司 :2011/05/28(土) 16:53:44.16
祐司は25歳の現役ゲームプログラマー。 腕前はなかなかのもので、年収も10億円を超えていた。 ある日、祐司が道を歩いていると、突然尿意を催した。 ふと前を見るとそこには閉店直前のデパート。 祐司は迷わず駆け込み、トイレへと走った。 トイレのノブを回した瞬間祐司は妙な恐怖を感じたが、襲いかかる尿意に追い立てられ、飛び込んで用を足した。 ドアの閉まる音が無人のトイレに不気味に響く。 祐司が手を洗ってトイレを出ようとしたとき、最初に感じたえもいわれぬ恐怖が具体的な形となって目の前に現れた。 祐司はこのとき自分がトイレに永久に閉じ込められたことを悟った。 冷たい汗が頬を背中を伝い、あまりの恐怖と絶望に呆然と立ち尽くす。 祐司が見たもの・・・それはトイレのドアノブにべっとりと塗られた大量のウンコだったのだ。 TO BE CONTINUED→ 危うしゲームプログラマー祐司! どうするゲームプログラマー祐司!
イラクとかその辺りじゃない?
引っ越してなければ埼玉のはず。
そもそもチームで開発してるのか個人で開発してるのか、ゲームの規模が大きいか小さいかにもよるしな。効率とかもそれで全然変わってくるから、一概にどれがいいとか言えない。 これがベストだ!って大きい声で言える奴はより良いコードを探求しないからダメな奴が多い。そして老害になっていく。
前提条件を決めて話をすればいいだけじゃん
埼玉は日本との時差はそんなにないはず
信じない
317 :
uy :2011/05/28(土) 19:45:17.98
http://www.geocities.jp/c_zelos/soto/te3.zip 読めるといいですね
つうかテトリス程度だと何で書いても同じ、
もう少しシーン数の多いゲームじゃないとつまらなかった
大きく分けて、3つの概念がある
1 基底クラス( 全てのノードはこれで生成する )
似たような関数いっぱいあるけどあれは状況に応じて使い分けるだけ
2 lambdaライブラリ( よく使うと思われる関数の雛形 )
アルゴリズムの抽象化を考えたことのない子には一生、縁のないもの、今回は殆ど使ってない
3 テンプレート ( よく使うと思われる処理の雛形 )
これも。アルゴリズムの抽象化を考えたことのない子には一生、縁のないもの扱えないもの
Title画面でやってるように
やろうと思えばおおよそのことはnode_task_templateへの引数指定で作れる
こ れ す ら 読めない子には二度と話かけんなよ
C#でアクティブではないウィンドウにキーを送るにはどうしたらいいんでしょうか
>>317 煽り口調うざいけど、ちゃんと手を動かすなんてえらいな
上の方で俺のレスにK&Rがクソだとか煽ってたみたいだから煽り返そうと思ったけどやめとくわ
ただruby読めね。あとしねEXEは怖くて実行できね
このスレならC++で書いた方が分かる人多いだろ。rubyも読めないんですかーwって煽りたいだけかな
ruby使った事ないんだけど、一つのファイルに全部突っ込むのがデフォなの?
コードどこにあんの? exeとrbとかいうゴミファイルしか無いんだけど
コメントに知性を
323 :
デフォルトの名無しさん :2011/05/28(土) 21:24:57.62
rbがコードだろjk どっちにしろlinuxで動かないから俺にはゴミファイルだけど
辛うじてテトリスっぽいのが動いてるけど もうちょっと結果が評価できるもの作れよ
まあコードを晒した人もexeを実行した人も、その勇気は素晴らしい
うむ、見直した
327 :
デフォルトの名無しさん :2011/05/28(土) 22:09:24.07
ruby...ゴミ扱い((((;゚Д゚)))))))
328 :
uy :2011/05/28(土) 22:15:20.87
>>319 二度と話かけんなよ
昔はC++だった。けどrubyでいけそうだったからrubyに乗り換えた
>>320 デフォじゃねえよ
漏れは、ライブラリのほうをよくいじりながら作るから
ある程度の所までは1ファイルのほうが都合がいい
>>321-325 はぁ?
二度と話かけんなよ
つか、ゲームPGって、C++でメッセージループかいて、ゲーム内容にスクリプト言語じゃないの?
そこにRuby使ってないの? なんなの???
いい余興乙
ryさんはどうしてテトリスのソースをアップしてるのでしょうか
rubyはほんと終末感が漂ってるな
javascriptですら重いっつーのにruby/pythonでスクリプトとかないない 俺はjsとpythonたまに触るけどせいぜいツール作るのに使うくらいだ pythonは3Dツールのプラグインとか使える局面がちょと多いがrubyはrailsくらいしか思いつかないな C++0xでlambda使えるようになるから素直にC++やっとけ
Blenderのことか
335 :
uy :2011/05/28(土) 23:05:03.72
C++のlambdaでこれがかけるとお思いか rubyでゲームなんて実績が何もないから、好んで使うものじゃないけどね
実践には使えなさそうだが面白いもの見せてもらった ありがとう
そんな事よりタスクシステムの話しようぜ
>>337 そういう漠然としたテーマこそコードを晒す必要があるだろ
またここに戻るのか?もういいだろ・・・
class Task {
public: virtual void update() = 0;
};
そんなことより誰か
>>318 をふらっとC#スレに誘導してやってくれ
そろそろ最高のタスクシステムを完成させてもいいな
ルビーよめねwww じゃあ、オレもそのうちシングルトンでタスクシステムを作るよ! boostも使うけどいいよな?
それは何も作らないと言っているに等しい。
C#で作ってやるか
>>317 コード見たよ
モジュール名とかクラス名とかワロス
だけどLLはPythonしか読めない……
347 :
デフォルトの名無しさん :2011/05/29(日) 10:52:23.57
何だかんだでC言語が一番良いと思う 言われるほど開発効率悪くないし、 マなら読めない人いないし、 動作は速いし。
動作は速いという言い回しが素人っぽい
オブジェクト指向もできるし ハード制御もできるしな 他人の書いたコードの可読性はあまり高くない気がするが。。
動作は速いで何もおかしくなくね?まさか遅いと思ってるの? コンパクトで高速なプログラムが書けるのがまさにCの特徴なんだけど
君素人でしょ 間違ってない命題でもわかる
Cは標準機能がスカスカなせいで、外部ライブラリにべったり依存しないと何もできない。 もしプログラミングのやりづらさを感じるなら、それはそのライブラリ固有の問題だ。 Cを責めるのはお門違いだ。Cは何も悪くない。 って感じ。
古参が互換性重視でK&Rな書き方して新参がわけわかめになる、と。
標準スタイルが通らなかったというのは15年前のHP-UXの純正CCが俺の最後の記憶だが、 今時K&R 1版スタイルはないわ。関数宣言で引数の型チェックが効かないとか致命的だし。
>>348 なにかやらなきゃ遅くならないって意味では速いかな?
俺はそーゆー意味で使うときがある
最近の言語は何も気にしてないと普通に遅くなる罠がはってある
string str="";
for(int i=0;i<n;i++){
str += buf[i];
}
例えばこんなの↑
>>355 最近の言語ならそういう風に手軽に書けるけど、Cならもっと泥臭い書き方が必要だろうな。
バッファのサイズを考慮してメモリ破壊をしない工夫とか。
速さのためにソースのスマートさを金繰り捨てることを美徳とするなら何も言わないけど。
必要もないのに遅くなる書き方見せられても
LinusはGitに速さを求めてCで作ったんだよね
C++でええやろ
APR使った例(pはメモリプールのポインタ) char *str = apr_pstrdup(p, ""); for (int i = 0; i < n; i++) { str = apr_pstrcat(p, str, buf[i], NULL); } そこそこ手軽だろ
いまどきの言語だと文字列変数何個でも+演算子でくっつけられるのに C/C++では(string型を使わずに)文字列をつなげるだけで何回も関数よばなきゃ。 読みづらくってしょうがない。 日本語文字も入ってくると、C/C++はさらに面倒だよなあ。
とりあえずUTF-8だけ扱うようにすれば幸せ。
なんでstringを使わないなんて制約を付けたんだよ
会社の方針だからシラネ 自分でゼロから作るんならstring使う
>>364 どうせ今どきの言語でもめんどくさい制約つけそうな悪寒
>>361 str = apr_pstrcat(p, "aaa", "bbb", "ccc", NULL);
str = "aaa" "bbb" "cccc"; +つけるとエラーになるのぜ
もう自作クラス作れよ・・・
flashゲームで簡単なスコアランキングを作りたいんですけど サーバーサイドのプログラムを書かずに実装する方法ってなんかないですかね
>>370 スコアライブラリを探してきてインストールすればおk
サーバー無しでってのは無理
やっぱそうですねよ・・・ありがとうございます
プログラム書きたくないならライブラリ拾えばいいし サーバがなくて金かけたくないって話なら、cgiとかgoogle apps engineとか使えばいんじゃない
C++で最初期のボンバーマンを最小何ステップで作れそう?
>>373 google app engineってのを初めて知ったんですけど
もしかしてこれって無料でサーバー使えますってこと?
しかもPHPとかも使えたり?
PHPは無理。PythonとJavaとGoだったかな あと転送量とかcpu使用率の制限が厳しいのでまともに使うなら結局金払わなきゃだめ お試しにはいいけど
>>375 無料のレンタルサーバーなんて結構ないか?
まあ、GoogleAppEnginこないだやった感じだと
一度登録したメールアドレスはたとえログイン情報を破棄したとしても
二度と同じメールアドレスは登録できなくなるっぽいので気をつけろ
>>376 なるほど。
もうちょっと調べてみます。
>>377 無料のところはPHPとかが使えないことが多いので…
探せばあるのかな
>>379 個人運営だったりめんどくさい審査とかルールあったりで
あんまり好きじゃないんだ・・・
有料サーバつっても月あたり515円以内のところがいっぱいあるだろ あんまりケチるよりはるかに手っ取り早いぞ
>>374 ステップ数て・・・なんちゃってSEでも言わねえだろ今時
4KB縛りで作れそう?とか1画面プログラム(80x24)で作れそう?って聞く方が
まだ食いつきいいと思うぞ
1画面プログラムって何?
>>383 昔プログラム投稿系雑誌でその手の縛りプレイが流行ってたんだよ
>>382 が言うように横80文字、縦24行の範囲に収まるように
プログラムを組んで、主にゲーム(たまにデモ)を作る
言語はたいてい BASIC だな
正直なところ、3Dやら超大作(笑)RPGやらよりも昔のインベーダーの方が面白いと思う
それはない
それはないって言い切れるのはすごいな。 その時代でどのくらいの人間熱狂させたかという基準なら 圧倒的にインベーダーだけど
ずいぶんと甘い基準なんだな
え?
> その時代で 今の時代で比較は?
え?
老化スレ
>>393 おっさんがこんなスレ見ているわけがない
つまりおばさんか
頭は老人、体は中年、心は子供なんだろ
ゲームプログラムに一番必要なものはなんだと思う?
とにかく続ける事
パソコンが使えること
本を読むこと
レベル低っ
レベルの低い事もコツコツこなすこと
魔法少女の大切なこと。
魔法使いには頑張らないでもだいたいなれるよ
406 :
デフォルトの名無しさん :2011/05/30(月) 02:13:57.22
実行速度は速いに越したことないよ それだけ制限が緩くなるから、自由なアイデアをそのままゲームに落とし込みやすくなる 例えばシューティングの弾の数 実行速度が早ければ1フレームあたりに可能な当たり判定の数も多くなる 極端な話、1フレあたり10個程度しか当たり判定できなかったら、 「弾がブアーッていっぱい出てきたら面白くね?」ってアイデアを思い付いても 弾幕シューティングは作れない だけど1フレあたり200個とか判定できたら作れる 低速な言語しか使えない奴は言語による縛りでアイデアを実現できないかわいそうな人種
極端過ぎて笑った。
何年前のコピペだよw
バランス大事に 開発サイクルは速いに越したことはないよ それだけ試行錯誤が気楽になるから、思いついたアイデアをそのままプロトタイピングに落し込みやすくなる 低級な言語しか使えないやつは言語による縛りでアイデアを実現できないかわいそうな人種
機械語しか使えない奴は言語による縛りでアイデアを実現できないかわいそうな人種 どうとでも言えるわなw
低級言語っていったら、アセンブラの方じゃない?
縛りプログラミングってすげえな 一体1画面で何ができるんだ… ウィンドウ開くだけで数十行いくのにゲームコード書くスペースなんかないじゃん
元々、LINE命令で線が書けるベーマガあたりでやってた奴だからな。 当然80字x25行とか40字25行。
昔のBASICプログラムはいまだに読めなくて困る GOTOで制御するとか正気の沙汰じゃねえ
シーン制御に関して言えばgotoは優秀じゃね
メインループに戻らないことがあったりな・・・
>>415 本気にするやついるからやめとけ
いや、もっとやれwww
低能乙
>>406 はぁ!?
低速な言語で行う場合は、速度を何とかするアイディアを出すんだろうが・・・・・
ちなみにRuby1.9ですら150個までは当たり判定いける
dxrubyフレームワークとかは、ゲームでよくある処理をCでかいたライブラリを提供していくらしいので
ヴァージョンあがってくればSTG程度なら余裕で作れるようになると思われ
むしろSTGすら余裕で作れないのに驚きだわ
421 :
uy :2011/05/30(月) 17:57:24.42
・・・・ゴミか
422 :
uy :2011/05/30(月) 18:16:07.39
http://www.youtube.com/watch?v=Xo2GHVjpRaE これの50秒〜55秒辺りの
魔方陣展開みたいなのを作りたいんだけれど
どうなってるの?
まず親魔法陣タスクがあって、そこから相対座標的に子魔方陣タスクを出して、
親魔法陣タスクの回転してる中で、子魔法陣タスクは別の回転変数で回転させて
それを、イメージに書き込んで加速的な拡大をさせつつカメラ移動してる感じなの?
プログラミングで絵描きにかてんの?
これは頭の悪いuy
00000 01010 00000 01010 00000 0の部分だけ通れる2Dのマップを作りたいんだが、 xだけ判定 if vx > 0 速度調整 else if vx < 0 速度調整 yだけ判定 if vy > 0 速度調整 else if vy < 0 速度調整 座標更新しちゃうぞ☆ もっと賢いアルゴリズムというか方法はないかい?
>>422 どんなのだろうと思って見てみたら、あまりに一瞬すぎたw
426 :
デフォルトの名無しさん :2011/05/30(月) 20:03:27.04
>>424 あなたの要求するものが不明だけれども
通常の当たり判定で、簡単な方法は
ゲームループにおいて、
現在のXY座標を保存する
もし、衝突ならば、前回に保存されたXY座標に移動する。
(つまり、衝突してない位置へ戻す)
こんなこと
お前ら低学歴だらけで頭悪そうだから補足してやると
>>424 は当たりそうなら速度の調整
>>426 は当たりそうなら動いた後に座標の調整
428 :
デフォルトの名無しさん :2011/05/30(月) 20:19:05.19
高学歴の人に聞きたい、なぜ うつ病になってしまうの?
一生愛する人とめぐり合えないんじゃないかって考えてるとうつになる ・・・ような気がする
案ずるより産むが易しな場合でも、自分は案ずる事が得意で、 上手く案じる事で今まで成功して来たから、どうしても案じてしまう でも案じた所で決して答えは出ない みたいなののスパイラル
南国にいくといいよ
南極とか?
南極を国扱いするとまたいろいろと問題が
お前らのお気に入りのプログラミング本を教えろ
どうして?
ゲームプログラマになる前に覚えておきたい技術 この著者と議論できるレベルのプログラマーってそうそういない。
Game Programming Gems
>>437 性格的には小学生とでも本気で議論してそうな気がするけどなぁ
441 :
デフォルトの名無しさん :2011/05/31(火) 02:54:18.69
ゲームのプログラムスキルってある一定以上になると、 泥臭くても効率悪くても思い通りの動作をするものがそれなりに作れるようになる。 そして大抵は素材の調達で挫折する。
nVIDIAの3DVISION?だったかの対応のゲームってどうやって作るのですか?
よく知らんけどnVidiaのドライバが勝手に立体視にするんじゃなかったっけ SDKはないんじゃないかな
>>434 Z80マシン語秘伝の書
燃える闘魂マシン語伝説
PC-8801シリーズ マシン語マスターバイブル
新日本プログラミング万歳
MSX2テクニカルハンドブック
>>437 そのひと会社はいってから仕事でプログラミング始めたんだよな
仕事してる環境が違うから同意できないネタもあるけど ちゃんと考えて解決してきたというのは良くわかる
ゲームよりDirectXのわかりやすい入門書がほしい kitty on your lapの人に書いてほしいわ
リテラルにnaruとかshinobuとか使ってる超痛い人か
それくらいで超痛いとか言う奴は一生事務処理系プログラムでも書いてれば?
unko
452 :
デフォルトの名無しさん :2011/05/31(火) 15:32:50.03
痛いというより頭悪そう 日本語をローマ字にして変数名にする ↓ その単語を英語に訳せない ↓ 英語力の欠如 ↓ 何か調べるときも日本語の資料しか調べられない ↓ 英語の資料も調べるのが普通のプログラムの世界では情報収集能力がない ↓ 頭悪い
証明終わり
最近は句読点をつける奴が少ないんだな。
句読点つけると、ゴミつけるなとか言われる板もあるんだぜw
逆に無理して英単語でつけてるけど「あちゃー、これだと意味違っちゃって紛らわしいのに」とかいう事が。 ネイティブスピーカーでもないのに無理するなと。
烏にbrack_bardってつけてるのを見たことがある
ダラダラと書かれた長文は下らない内容ばかりなので読まずに飛ばす
black_bird ならまだしも
このbrackbrain共め
Offenceって書いといたら「正しくはOffenseですよ」と馬鹿が得意げに
そして
もういい、争うな。ローマ字を使え。
tsudaかtudaかで論争が勃発すると。
じゃあ俺madokaクラス作るわ、お前maniクラスね
摩尼かよw
ローマ字にするからダサくみえる 日本語変数にすればいい話
漢字間違えたら恥ずかしいじゃないか。
漢学なんか聞違えるわけねぇだろwwwwwwwwwwww
×間違えれる ○間違えられる 漢字ではないが、間違ってるな。
間違ってないじゃん。
鳥* あ = new 烏( 島 ); こんな感じになるのか
烏の引数に島とな
474 :
uy :2011/05/31(火) 20:17:22.05
木 本 = 林.new(森) なにこれたのしい
C#でお勧めの本ありますか?
C#のどんな本が読みたいのか言えよ
477 :
デフォルトの名無しさん :2011/05/31(火) 21:28:58.74
>>476 だからお前はだめなんだよ、
誰も読むなんて言ってないだろ。
恐らく普段本棚のインテリアとして色合いがよくて、
強盗が入ってきたときとか有事には叩いたりできる強度があるとか、
そんな意味でオススメの本を聞いてるんだと思うぞ。
>>477 その可能性は小さいな。なぜなら、C#と限定しているからだ。
強盗撃退用なら、C#の本と限定する必要はない。
お前こそ、読みが浅すぎるわ!
音楽の話じゃないのか
>>479 その可能性も低いな。なぜなら、このスレはゲームプログラミングに関するスレだからだ。
そのようなスレで、特に断りもなく、C#と書いた場合、これは当然、プログラミング言語の
C#のことを意味する可能性が高いといわざるを得まい。
どうだ俺のこの完ぺきな推理。反論があれば聞こうじゃないか。
C# 横向きに見るとイソギンチャクに見える
ゲームプログラムでお勧めの本ありますか?
483 :
デフォルトの名無しさん :2011/05/31(火) 22:05:33.25
推理も客観的で言ってる通りその可能性が高いが だからといってそれで断定してしまうのも危険ではないか。 童貞が初体験しようとして詳しく調べもせずに風俗に行くようなものではないか。
っていうタイトルの本
長ぇな...
486 :
デフォルトの名無しさん :2011/05/31(火) 22:12:08.58
>ゲームプログラムでお勧めの本 「遊びのレシピ」
ばかばっか・・・
>>481 弟のアレが今ちょうどそんな形
あとで C==# してやる
JAVASCRIPTでお勧めの本ありますか?
JAVASCRIPTのどんな本が読みたいのか言えよ
っていうタイトルの本
っていうタイトルの本
ばかばっか・・・
つ 「OpeGLの真髄」
495 :
デフォルトの名無しさん :2011/05/31(火) 22:45:42.54
「 ENCYCLOPEDIA ASCII 」
>>494 その本、真髄ってのは大げさだよな
せいぜい赤本のサブセットって感じだった
ばかばっか・・・///
~~`ー--、_ .. `ー--、.._ .: `ヽ、.. : ;:;:;:;_;:_;:_;:;:;:_;:;:;:ヽ :: ,;/ , "ヽ、 :: ,/ ::' __ゝ、 ;; ,/ ::' ,,.-‐''" 、 ヽ、 ; i!; '" ,.-''" ヾ、 ヽ ...::::i : .:.:.::::/ ヾ _ヽ ::;;;;l/ ; :::::::::r y'''''ヾ ::;;ヽ :::;;;r::;; :::::::/ ,/ ;;::~~~~~;;ヽ_/^) :: :::;;;;|;;;i :::::::/ :;:;;;;/ / :::::;;;;;;;;;;;;ヾ| :: ::;;;;;;;:i .:.::/ ::;;;;;;i ::::::::r .::(⌒ヽ.::::;;;;;;;;|;;;;;;ヽ. ::;;;;;;;;;;: .:.:;| ;:;;;;| ::::ノ ノ  ̄.:.:.:.:;;;;;;;;i!;;;;;;;;;ヽ_ ;;;;;;; ヾ .:.::| ::::;;;/ / ノ ;i :::;;;;;;;yヾ;;;;;;;;;:) ; ;;;;;ヾ;;;ヾ、:.:.:! ::/ ::......,.-'" ;;;;;;;;;;;;;ノ ー<"彡;;;;;;;;;;;;ヽヽ | / . : . : . : ( ━ ;;);;;;;;:.:..| < 誰がばかやねん ヽ:::::;;;;;;;;;;;;| `ゝ、.| .: . : . : : : : : : :::::;;;;;;;;;;;;;ヽ |:::::;;;;;;;;;;;/ ヽ、:: . : : : :ヽ、ヽ ::::;;;;;;;;;;;;;;ヽ 〉;;;;三三| ヽ、_ ..::::/ ; i ::;;;;;;;;;;;;;;;:::ヽ /::::;;;;;;;;;;;;ヽ、 ヽ___.., ;; ; i ::;;::::::;;;;;;::::ヽヽ { i! .:::i!ヾ、ゝ { / ;;; .....;;;;;::::::::::;;;(ノ) `゙ヽ---'--' ヽ| ;;;} :::;;( (ヽ;;;;;;ノ ヽ、''''i ...::::;;;;;;;;ゝ;;;;;;/
>>115 依存度順に構造体をネストさせれば済む話。
void hoge2(B fooset) { /* fooset.foo3 を使う */ hoge1(fooset.a_set); }
void hoge3(C fooset) { /* fooset.foo2 を使う */ hoge2(fooset.b_set); }
void hoge4(D fooset) { /* fooset.foo1 を使う */ hoge3(fooset.c_set); }
あと、関数の並べ方で依存性を理解してないのが解るんだが、
他への依存性が低い関数をコードの上流に書き、
他への依存性が高い関数はコードの下流に書くようにしたほうがいいよ。
構造体だって、後で書いた構造体を、素直に構造体メンバーにできないだろ。
変数だって、宣言する前には呼べないし。
500 :
デフォルトの名無しさん :2011/06/01(水) 00:59:07.64
windowsXPSP3 VSEE2010 C++ DXライブラリというライブラリ で開発しています 角度・座標の管理で悩んでいます windowsプログラミングは基本的に、左上頂点のx.y座標が0,0になっているようです 角度を元に三角関数などで移動距離を出したりする場合(ホーミング弾などです)、角度0度はどこを基準にするのが良いでしょうか?
>>499 依存度順なんて一意に決まるものじゃないだろう
>>115 で例に出てるメモリマネージャやら Direct3D デバイスやらパレットテーブルを、依存度順にまとめれるのか?
使う順なんて分からないし、どこで使われるかも分からない
関数の並べ方は人それぞれだろう
言ってることは分かるが、処理は上から下に実行されるわけだから、呼び出される順に並べるというのも自然な発想
>>500 混乱するなら、内部では全て左下基準で計算して、
描画時に上下逆転させて描画すればいいんじゃない?
>>502 ありがとうございます。そういう方法もあるんですね
>>503 その方法だとコードが見やすくなりますよね
やっぱりどうしてもどっちかが犠牲になりますよね
ありがとうございました
世の中そんなに綺麗なコードばかりじゃないですか? 趣味でやってるのでわからん、、、
>>501 プログラムがグラフ構造で表せる以上依存度は確実に決められる。
並列に存在するものは別に順序はどうでもいいけどね。
プログラムを書く前に論理木(ロジックツリー)に書き出してみればいいさ。
(そもそも並列な処理グループができる場合は、ファイルを分割する事を進めるけどね)
>処理は上から下に実行されるわけだから、呼び出される順に並べるというのも自然な発想
確かに人間的に自然に見えるけどそのルールで並べると3000行程度ですぐ破綻すんじゃん。
関数は下に飛ぶだけじゃなく戻ってくる訳だから。
507 :
デフォルトの名無しさん :2011/06/01(水) 01:35:35.79
ゆーても天下のApacheですらソースコードはそんなきれいちゃうで
508 :
デフォルトの名無しさん :2011/06/01(水) 01:37:14.69
ッ・・・ッ・・・ッモル・・・
>>504 解決した事に口をはさむのも野暮だけど
>角度を元に三角関数などで移動距離を出したりする
って具体的にどういう計算やんの?
内容によってはベクトル使った方がプログラム全体の統一がとれていいと思うけど。
関数群は下から上に向けて書いていくほうがプロタイプ宣言しなくて楽だよ
あ、Cの場合ね
staticな関数の場合でしょ。
>>509 ホーミング弾(以下、敵)と味方の追いかけっこのゲームがあるとします
まず、敵のxy座標と味方のxy座標を元に敵の角度(メンバとして、敵.kakudo)を決めます。
(味方.x-敵.x)と(味方.y-敵.y)をatan2関数の引数として、敵.kakudoを求め
敵.kakudoを元に、毎フレーム
敵.x += sin(敵.kakudo)
敵.y += cos(敵.kakudo)
の処理をし、敵の次フレームのxy座標を求めます
といった感じです。
ラジアンと度数法の変換、また範囲外などの条件分岐は割愛してます。
C++の場合、ソースリンケージの構造体とかconst値は、 必要する関数が定義される直前に宣言しとくと便利だ。 構造体やconst値を使ってる関数の数が最小限になるからね。 const int limit=100; int a(){・・・}//limitを使って無いのにメンテの度に使ってるかどうか確認がいる int b(){if(limit>n)・・・}; int a(){・・・}//limitを使ってないことは明らかなので特にみる必要はない const int limit=100; int b(){if(limit>n)・・・};
>>513 DXにあるか知らんけど一般的にベクトルオブジェクトを使うと
Point2D 味方(x,y),敵(x,y),//x,yは本来値
Vector2D 追尾方向 = 味方 - 敵;
敵 += 追尾方向.正規化() * 加速度;
こんな感じか。思ったんだが、その要件に三角関数いらなくね?
>>515 ・一度方向をメンバとして置いておくと、描画などの際に便利
・あとあまりに多いと描画の度に毎回計算するのは重くなる・・
と考えていたんですけど、よく考えたら丸で負担は変わらないですね
逆に二度手間になってしまってたのでしょうか・・・うーん
設計は難しいですね
一応いうが三角関数は、ハードのサポートがあったりするとはいえマクローリン展開してるから ベクトルの足し引き掛け算に比べ凄まじく遅いぞ。
>>517 その点では大丈夫です
double sinx[361]={
0 ,
0.01745 ,
0.0349 ,
・・
-0.0349 ,
-0.01745 ,
0}
と角度に対応した配列を見ることに作ってます(cosも同様です)
角度はintに限られますが、そこは多分大丈夫と見込んでいます。
角度求めるためにatan2使ってんじゃねーの?
>>517 え?テーブル+補間じゃないの?そりゃ遅いわ
ていうか、本当に測ってみた結果速い数値の出たものなんだろうか?(笑)
アクタークラスって実装によって違うんだろうけど どんな要件を満たすクラスですか?
523 :
デフォルトの名無しさん :2011/06/01(水) 13:09:09.64
お前らの親が逮捕されるってことか
ウイルス作成でお勧めの本ありますか?
探せばあるんじゃない?
じゃあ探してください。
528 :
デフォルトの名無しさん :2011/06/01(水) 17:08:31.42
糞みたいな書き込みが多いな じっくり見ないと糞と見分けがつかない
それよりゲームプログラムの話をだな
とか自分のことだけまともに見せる奴に限ってまったく話題を振らない罠 職場でもそういう傾向あるよねw
532 :
uy :2011/06/01(水) 20:10:53.97
ほんとにお前らはつかえねえクズばかりだ ここからは真面目な書き込み以外は一切禁止するからな 違反した奴はIPぶっこ抜くから覚悟しとけ
ここって質問スレだと思ってたけど雑談でもいいのか
確か、スレタイに ゲームプログラムなら俺の話を聞いていけ って書いてあったでしょ
あー、ずっと質問スレと思ってた
いや、その前にサルの関係者以外は書きこまないで下さいとの事だったはず
もうその流れ秋田
>>523 ウィルスじゃなくてただの不正プログラムならおkですか?
>>538 ダメです
確かその法律は「使用者の予期しない動作をするプログラム」
なので、「ファイルhogeに"R"と名付けるプログラム.EXE」でhogeに指定したファイルを「"C"」と名付けただけで
ウィルスという扱いになります
法律を厳格に解釈すれば正規表現のミスでもそうなるでしょう
そういえば、極端に言えば文字コードの違いでも意図しない動作になり得ますね
テキストファイル"あああ"がshift-jisになってる!EUC-JPのつもりだったのに!みたいな
意図はいくらでも後付でできますので、開発側は大変ですね
と思いましたがそれこそメモ帳がそれですね
マイクロソフトには津波のような訳の分からない裁判がいくのでしょうか
塩化ナトリウムが1ッモルッ...
>>539 インストーラーに新しい文言の追加だな
このプログラムのいかなる動作も予測の範囲内であることを同意して使用する
○同意する
○同意しない
戻る 次へ キャンセル
>>541 >予測の範囲内
予測の範囲外になるとだめなんだから・・・
>このプログラムは一般的に言われるコンピュータウィルスを含め、あらゆる動作を行う可能性がありますが承諾します
になるな
ハハハ・・・
dllだとdll呼び出しの度にメッセージボックスになるな
もうやだこの国
unko
>>539 いちおう大臣から
「電子計算機を使用する者一般の信頼を規範的に判断をしていく」
という国会答弁を引き出してる。
相変わらず感覚が基準なんだな。 もう法律は関数で記述しろよ。 0以外なら合法 0なら違法。
546 :
デフォルトの名無しさん :2011/06/01(水) 22:46:03.73
ゲームエンジンの話もここでおk?
>>542 >このプログラムは一般的に言われるコンピュータウィルスを含め、あらゆる動作を行う可能性がありますが承諾します
※大事に育てると空も飛べます
>>545 そういう厳密さよりも
そういう法律が決まった背景や意図もちゃんと記述してほしい
決まったことだけ書かないでそれを決めた理由っていうの?
時代背景とか無視してまでこういうのが未来永劫残っちゃうのが嫌
また、字面だけとって悪用する奴とか増えたりするからちゃんと意図は残してほしい
>>548 議事録という形で意図は残るのよね。都合よく無視されたりするだけで。
>>546 それがゲーム開発に関してプログラムの観点からアプローチする内容ならOK
俺、最近unityでエロゲー作ってる 近いうちにdlsでうる予定
それがどうした
554 :
542 :2011/06/01(水) 23:01:57.58
>>548 確かスパイ防止法、なんだっけ?酔っ払ってるから分からないw
スパイ防止法を民主党が全面的に支持しなかったので与党か野党が出し直し
結局ウィルス防止法という意味不明な一分だけが残ったということ
まぁとにかくこの板に取っては最大限に厄介な一部分が残ったということだよ
酔ってる自覚あるのに、 そこまでしてレスを書きたかったのか
>>554 共謀罪か?
自民党はコンピュータ監視法案にくっつけようと未だに頑張ってるらしいけどな。
>>556 ああ、そうそう
なんでもいいけど"コンピュータ"っていうのはものすごい恥ずかしい単語だな
50代の役員がよく使うんだけど、こう、赤面してしまう
メカトロニクス!みたいな
ただの演算、特に加算なのに
>539 ゲームの場合はどうなるんだ たとえば初代ファイナルファンタジーには15パズルが仕込まれてたが、これも違法か
"ゲーム" なら全て合法じゃね 15パズルも、あくまで主人公が遊んでるという設定なら問題ない
560 :
デフォルトの名無しさん :2011/06/02(木) 01:16:36.31
3Dって難しいですか?3Dが簡単に扱える言語とゲームプログラミングを紹介してるサイトやスレあったら教えてください
DXライブラリでぐぐれ これが無理なら多分やめたほうがいい
563 :
デフォルトの名無しさん :2011/06/02(木) 05:41:51.85
糞と見分けがつかない書き込みが多いと思ったが、
一目見ただけで見分けのつくレスがあった
>>529 とか糞以下だからすぐ見分けがついた
糞と見分けがつかない書き込みが多いと思ったが、
一目見ただけで見分けのつくレスがあった
>>563 とか糞以下だからすぐ見分けがついた
ヌルポ許可しない関数の引数にわざわざ参照でなくポインタつかう老害って何なの? わざわざ中身が変化したかどうか意識しないと安全なコードが書けない時点でカプセル化に失敗してると理解できないのかな?
お前がカプセル化を理解してない事実
状態変更の把握の重要性がわからないんだな constもメリット実感なさそうし関数型も知らなそう
だから内部状態しらべなきゃならん時点でカプセル化こわれてんだろ アプリやなんかの仕様でそうゆう作りになることはあるよ でもそれはカプセル化されたクラスではない妥協クラスなの つーか関数の前後で状態が変わったかどうかなんて普通どうでもいいでしょ 状態次第で処理を切り替えないとだめなセクションの前だけで、その前に関数を呼んだ呼んでないに関わらずチェックする それが必要最小限の方法だからバグの混入も最小限になるんだよ
自分定義の言葉を使うときは紛らわしいから名前空間使えよ 俺::カプセル化 俺::安全なコード
> つーか関数の前後で状態が変わったかどうかなんて普通どうでもいいでしょ アウトー!!
カプセル化って魔法の合言葉?
釣りだろ・・・w この関数はNULLチェックしないからポインタ渡しから参照渡しに直しておきましたよ!カプセル化のために! とか言われたらぶっとぶだろw
参照透過性とか副作用とかでぐぐって
575 :
デフォルトの名無しさん :2011/06/02(木) 12:35:08.95
色々考えると最終的には&は使わない方向で落ち着くかな
http://codepad.org/qqWCfmAh こういう風に書くのがC++的で良い
そして本当にわかってる人はこういう記号や&に頼らず、
関数やメソッドの名前から引数の変化の可能性がわかるような命名法でカバーする
それが人にもコンパイラにも最も優しい方法だからね
たとえばswapという関数名からこれは参照引数をとり値が変化するだろうということは誰の目にも明らかでしょ
Googleのコーディング規約は&付ける派だな
Googleはコードは古風だよね 例外使わないとか
その式を見ただけで副作用の可能性が分かる方法より、 ポインタ怖い!NULLが怖い!(んなもんチェックすればいいだけ)みたいな感情を優先するのも そのプログラマの自由だからね
自由w
体感的に参照のほうがTMPと相性いい
DXライブラリでSTG作りたいんですが どの部分から書き始めたらいいか分かりません
582 :
デフォルトの名無しさん :2011/06/02(木) 14:16:37.55
まずはmainループからだな DXライブラリはゲームを作るライブラリじゃなくで、ゲームの描画のライブラリなんだから どこから作っていいか分からないなら、 ライブラリのことを忘れて、 ウィンドウを表示させて、その中に画像を描画するプログラムを作るとこからやるべき
583 :
uy :2011/06/02(木) 15:09:49.14
特定ライブラリの話ならゲ製のスレに行け このスレに集うゲームプログラマはDXライブラリみたいな 素人向けlibは使わないから
584 :
デフォルトの名無しさん :2011/06/02(木) 15:29:36.03
糞以下の書き込みしてる香具師が暴れ始めたw
>>564 とかもうただのコピペ荒らしw
こういう糞以下の香具師はソースコードもコピペで成長しないんだろうなあww
>>581 描画して、コントローラーで上下左右に動かす
あとは当たり判定を作って敵を作って・・・
DXライブラリのHP見たほうが早いんじゃない
俺たちはどんなゲームでもフルスクラッチなんだ 素人は帰ってくれないか
587 :
581 :2011/06/02(木) 18:27:38.49
レス有難うございます
何か言いたいことズレてましたorz
ライブラリ関係なしに
ウィンドウだとか、自機とか当たり判定とかの
手順的な事聞きたかったんです。。。
>>582 >>585 辺りを参考にさせて頂きます
589 :
デフォルトの名無しさん :2011/06/02(木) 18:58:34.88
>>586 時間は限られているんだから使えるもんは使う
俺は天才だからカプセル化とか使わなくても完璧なコードが書けるし main関数一本の数万行のプログラムでも破綻させずに全てを把握できる。 ぶっちゃけオブジェクト指向やらカプセル化やら脳みそが足りてない馬鹿のために考え出されたものだと思っている
592 :
デフォルトの名無しさん :2011/06/02(木) 19:27:54.35
複数の人間による協力プログラミングの環境で活用される。
素人のゲーム制作ならファイル一個でも何の問題もないよな
頭悪いんだから無理すんなよ・・・
そうだね
597 :
デフォルトの名無しさん :2011/06/03(金) 02:52:47.82
そうか?
そうだろが!
599 :
福盛俊明 :2011/06/03(金) 09:07:37.06
非常に読みやすい美しいコードがかけるなら、関数一つが500行あっても読みたい
void main()の中から500個の関数を呼び出していても読みたい
"main() must return int. Not void, not bool, not float. int. Just int, nothing but int, only int."
void Main()ではダメですか?
Cはもともとmain()でreturnでint 0を返す物と決まっていた 今なら別に何でもいい 超絶古いコンパイラ、実行環境だとエラーが出るかもしれない ただ奇跡的な確率でもエラーが起こることを考えると、わざわざvoidにする理由もないので俺はintで0返してる
今なら別に何でもいいって、どこのWindowsだよw
無知って怖いなぁ
>>604 何で0固定?
全てmainひとつのプログラムか。重複したコードどうやって直すんだろうな。
まさか、gotoは使わんとおもうけど。
double main()でも動くし何でもいいよ
Warningは無視か
スタック作ってスイッチを関数のように見立ててコーディング
>>610 ゲー専作品なら技術を評価するべきだと思うがなー
これ、なんの工夫が入ってるのか知らないけど
技術的にみたらSDKのチュートリアル+α以上のものが俺には見えな(ry
たった10分で何を見たんだ
昨今のゲーム制作技術について語る部分なんてまずないだろ 素材さえ用意できればサンプルなぞった位の技術でそれなりのゲームが作れてしまう 大切なのは技術より安っぽく見せないセンスだと思う
お前が技術ないのはわかった
616 :
デフォルトの名無しさん :2011/06/04(土) 01:32:28.07
おまえらって人一倍見栄っ張りだよなw
>>610 ABDUCTION
Break Factory
War Of Tank
サバゲやろうぜ!
はやったの記憶がある
一度ご自慢の技術を見てみたいねぇ・・・
お前らがプログラミング技術がすごいと思うゲームって何よ? 俺は少なくとも商業ゲー以外では技術がすごいと感じるゲームはない
ゲームだと、技術よりセンスの方じゃ、受けるのは
またアホな議題が出ましたね
センスを表現できる基礎体力ってレベルですらないからな センスもない基礎体力もない
センスは企画とかデザイナが持ってればいいんだよ
センスなら近くの100均で売ってた。
>>623 もっさり感を感じさせない挙動とかもデザイナがデザインするのか?
視点変更ボタンを押したら何フレームで視点を切り替えるかとかを不自然じゃないレベルに自然に調整したり、
垢抜けた印象を与える挙動を書けること、そういう部分をセンスって言ってるつもり
まぁ、スレチだな
デザイナーの仕事だよ
ああ、デザイナーだな
UIはプログラマーのセンスが重要なんだけどな・・・
同人ゲーやフリゲは?
小規模開発でデザイナーが存在しないとかじゃね
こんなだから日本のゲームはしょぼいんだよ
商業でデザイナーがいないとかあんの?頭大丈夫?
つかお前なにできんの?
俺には歌しかないかな
俺にはミクちゃんがいる
636 :
デフォルトの名無しさん :2011/06/04(土) 03:07:29.31
日本のゲーム会社ってバブル時代っていうのかな、そういう何でも売れた時代の アホな肩書きの多い構造を引きずってるね プランナー(笑)とか
えっと・・・君の肩書きは何?
ゲームのバブル時代とは金余りの頃ではなくインベーダーとかファミコン初期の時代だろう 少ない投資で莫大なリターンが得られたまさに夢のような時代 今では莫大な投資が必要で極めてリスクの高い硬直化した産業になってしまった
だから皆携帯に走る
643 :
デフォルトの名無しさん :2011/06/04(土) 16:42:15.14
俺は趣味のゲームプログラムやってて 車輪の再発明が大好き そして完成したツールに「〇〇フレームワーク」とか名前付けて大満足 こんなに気持ちの良いオナニーは他にない
あれ、俺のコピーロボットが勝手に動いてるな
ハイパーメディアクリエイターもどきが多そうw >日本
646 :
デフォルトの名無しさん :2011/06/04(土) 23:03:18.04
中国はスタッフロールにソースコードをパクってコピーした奴の名前も出すべき。 MAIN PROGRAMMERの次辺りにCOPY PROGRAMMERとして出すべき。
それが一番素材作り易いし計算しやすいからね 見栄えもいいし
650 :
デフォルトの名無しさん :2011/06/05(日) 02:20:06.28
見栄えに関してはどうかな 黄金比になってない
黄金比にしようと思ったらジャギジャギになるじゃないか
>>649 どうもありがとうございます
1:2 だと 120' にならないよなーとか詰まらない事で悩んでました
陰影制御や、曲面制御やら技術を見せる所は いくらでもあるだろうに。 日本はモデリング&テクスチャベースばっかで 多角形制御なんてライブラリ任せだから自慢できる技術(?)者なんて いないんだろうけどね。
馬鹿発見
意味不明なグチはマ板かゲハでやってくれ
今の時代、ヘタに2Dクォータービューやるより、1枚ポリゴンにテクスチャ貼った3Dで計算したほうが負荷軽くね?
657 :
デフォルトの名無しさん :2011/06/05(日) 10:54:40.98
だな。 そもそもクォータービューって3Dがなかなか使えない時代に 何とか立体的に見せようと思って考案された代替手段だし。
まあ3Dがバリバリ使える時代も余裕で使われてたけどな
ケータイとか
>>653 はセンスうんぬんの話を技術力の話にすり替えようとして失敗したって認識でおk?
ちょっと違う
>>656 ポリゴンにテクスチャを貼ってるっぽい FFT でも 1:2 になってる感じでした
3D で計算しているのかは不明ですが・・
なんでも3Dでやるのって頭悪そうw
>なんでも2Dでやるのって頭悪い
どんな表現がしたいのかわからないのに2Dだ3Dだ言い出す方が頭悪い
(ここは俺の4Dを出すときがきたかな?)
っまぁ、いやらしい
何だかんだで3Dのほうがコスト的に楽だしな。
最近はアニメなんかでも3Dで作ってシェーダ(かどうかは知らんがそれに準ずるもの)で2Dに処理してやってるしな。
老害か何か知らんけど
>>664 みたいに根拠も出さずに頭悪いとか言い出すいけぬまさんはスルーしたほうが良いよ。
新作アニメならまだしも、3Dモデルつくって単純にトゥーンシエーダかけても、 漫画家が描く絵のようにはならないのが悩ましいところだけどな。 特に斜めからの構図とか、極端なデフォルメとか。
できるぞよ
いけぬまさんは逝け沼さんて認識でおk?
なんでも3Dとか頭悪過ぎ
Direct3Dに喧嘩売るな
中卒なら仕方ないな
なんでも3Dって頭悪そう
◆QZaw55cn4cはゴミ
3D厨
厨厨 train
2Dも3Dも同じベクトルなんだから仲良くすれ!
ドット以外はカス
687 :
デフォルトの名無しさん :2011/06/05(日) 23:41:23.53
ビルボードですね
いまどきの画素数でドット絵発注したら金がいくらかかるかしれたもんじゃないだろう。 アニメとして発注するのか?
アホですねw
やねさん見てると大学1、2年次の教養がイカに大切か考えさせられるね
692 :
デフォルトの名無しさん :2011/06/06(月) 03:06:39.11
さっきのクォータービューのやつでも3Dにしとけば もうちょっと角度的に上から見た感じにしたい とかもすぐ変更できるしな DOT絵だったら諦めるか書き直すかだろ? 効率悪すぎ、低脳過ぎてやばい
FFTは見下ろし角度が変更出来て、なおかつキャラがドット絵だったし、 そうでなくとも2D Vectorなら角度が変わっても、そう問題は無いと思われ マクパペットは2D Vectorなのかな
3Dの方が魅力的なキャラが作れるとかならともかく(この前提自体あり得ないが)、 角度変更できるから3Dにするとか単なる手抜きじゃん お前はそんな低い志でゲーム作ってんの?迷惑だからさっさと引退してくれる?w
>>694 は手抜きと、調整を考慮に入れた開発の区別がつかないかわいそうな子です。
恐らくそれで職場を追われ引退を余儀なくされたため、他の有能な開発者も引退に追いやろうとしているのです。
俺だったらプライドがあるから恥ずかしさに耐えられずに自殺すると思う。
ゲームに汎用性なんか求められていない 生涯をかけて満足のいくゲームがひとつ完成できればそれでいいのさ むしろ完成しなくたっていいんだ。作っていくことが既にひとつのゲーム・・・ 俺が・・・俺たちがゲームだ!
699 :
デフォルトの名無しさん :2011/06/06(月) 16:27:16.10
【問題】 「尻から〇が出た!」 〇に当てはまる漢字一文字を答えなさい
馬鹿だなぁw
カスだなぁw
704 :
デフォルトの名無しさん :2011/06/06(月) 16:55:27.62
2Dゲームでも3D使うと表現が楽になったりするよね 例えばシューティングで画面をある程度自由に動きまわるホーミングミサイルを作るときとか ミサイルの各方向の画像を用意するより、板ポリゴンにテクスチャとして張り付けて回転させたほうが効率いいよね。 読み込むテクスチャも少なくてすむし、ミサイルの画像差し替えもかなり楽になる。
706 :
デフォルトの名無しさん :2011/06/06(月) 17:31:48.00
>>705 なるほど。
もう、ついていけない世界になってしまったなあ。
さみしい。
2Dでも回転できるだろ。
709 :
デフォルトの名無しさん :2011/06/06(月) 18:33:31.13
2Dの方が、圧倒的に省電力
710 :
デフォルトの名無しさん :2011/06/06(月) 18:49:17.72
2Dの方がッモルッピグ!
2Dに固執した労害が多いスレだな
必要に応じて使い分けてるだけだよ
必要に応じて使い分けるべきで、両方しっかり勉強しておくのは当たり前として、 どちらか好きな方を選べと言われたら、個人的には2Dの方が技術的に燃える 3Dのシェーダーで環境光がどうとか、表層下散乱がどうとかよりも、 2Dの多重スクロールとかラスタースクロールとかデカキャラとかの方がカッコイイ 少数派なのは十分承知
>>705 確かにそうだな。
今Direct2Dでシューティング作ろうとしてるけど、
スタート時に機体が回転して出てくるような動作あったほうがいいしな。
意味がわからん
ファミコン時代の話
鉛筆転がす感じ
719 :
デフォルトの名無しさん :2011/06/07(火) 00:50:17.05
2D厨ってアレだな、 コンソールゲームから画像を使ったゲームへの移行期に生まれてたら コンソールにしがみついてそうwwwwww
720 :
デフォルトの名無しさん :2011/06/07(火) 01:01:25.63
老害? 2d厨? ッモルピグ!
日本語がわからん
>>719 コンソールにも当てはまるかどうかは分からないけど、
実際そんなもんかもしれんね。
ドット絵が好きだったり、3D空間よりも2Dの方が慣れてるから把握しやすかったりさ。
本職ならクビになるだけだろうけど、趣味や同人ならそれで良いじゃない。
3Dはクソゲーだの、見た目だけだの、ドット絵の方が想像の余地があるとか、
ケチを付け出したら単なる老害だと思うけどね。
いや本職ならどっちも出来て当然なんだがw どっちが優れてるなんて話自体ナンセンスw
そんなことよりッモルッピグ作ろうぜ
ドット絵を変に傾けたりしたら絵師がキレそう
726 :
デフォルトの名無しさん :2011/06/07(火) 08:27:06.02
8方向に動くなら、8方向のドット絵を書かなければならない。常識
何それ
ゼビウスみたいに陰の向きを前提にしたドット絵だったらちゃんと全方向分描かないと破綻するとかそういう話?
回転変換の単純計算の誤差は話にならないという話
真上からの絵どうかってのもあるんじゃない?
3次元ならともかく2次元なら回転角を96方向とか256方向とかに量子化して、 変換後の座標をさらに変換しないとか常識以前だろ。
病的なバカですね
2Dか3Dの違いというより我流プログラミングの欠点を晒してるようなものだなw
735 :
デフォルトの名無しさん :2011/06/07(火) 15:50:39.13
好き嫌いはあるから好きで2Dやってるぶんには社会的にも許されりけど 場合によっては2Dが良いなどとさも一般論のよえに言うのはいかがなものか
日本語が不自由ということは分かった
コンシューマー機のメモリ管理ってどうしてる? 断片化や最大使用量の管理のセオリーってどんなのがある?
メモリ管理って、一番悩ましいとこなのでは?
動的なメモリ確保を使わない(スタックなど除く)
それやれてるプロジェクトがあるのだろうか スレッド化必須でさらにカオス
COBOL式でどうかw
メモリ管理なんてしなくていいよ 余りまくりなんだから
PCならそうだが箱もPS3も余るなんてことはありえない
PCでも油断してると使い切るわ 早く64bitのみにならないかな
まあDVDですら全部RAMに置くことは不可能なPCの方が多いからな
>>737 まず総空き容量(あるいは総使用量)を取得して常時表示できるように
しておくことは必要だと思う。
これに加えて、断片化対策としては確保可能最大サイズも欲しい。
プログラムが必要とする最大確保サイズに注意して、常にそれだけは
確保できる状態を保てていればまず問題ないと言える。
大きく落ち込むケースが無いか、最大確保サイズを縮小することが
できないか(ファイルを分割するとか)を常に気をつけておく。
ここまで用意できていれば、それ以上の動的確保の禁止とか
断片化対策のプール構築とかは割に合わないことが多い気がする。
最近見た↓こんな話に同感。
http://radiumsoftware.tumblr.com/post/6187877625
なるほど、そういう観点で監視するのか。 ちなみにVRAMでも同じようなことするの?
いや実際断片化は問題になるし簡単に排除できないよ。 現役から遠ざかった意見だね。
>>748 とかいう決め付けを鵜呑みにして実測もせずに無駄な生兵法を加えるやつ多すぎ。
時代遅れの生兵法をリッチな環境で使いまわして余計に問題が起こりやすくしてるのも
よく見る。たとえば「最初にまとめて単一の領域を確保して、その中で切り分ける」とかな。
要求サイズがでかくなって逆にあぶねーんだよ。クソが。
しかし解決策は持ってないという
やっぱゲームプログラマーって頭使ってないんだな
radiumさんもすっかりLLのひとだな
>>750 dlmalloc レベルの賢いアロケータを根っこに置いて、
あとは問題が起こったところで分割するとかサイズを削るとかの
個別対応でだいたい十分。
だいたいw 責任ないやつは気楽でいいな
無能な責任者が保身のために動的確保禁止令を出すわけですねわかります。
俺がかわりにやるとは決して言いません
責任の無い立場から言ってると思い込むのは勝手だし、 どう言っても信用してもらえないだろうからいいんだけどさ・・・。 マジで動的確保禁止とかやってんの?いまどき? 標準コンテナも new も禁止するの?もしかして C なのか?
思考停止。 動的確保完全禁止なんてするわけない。 何が問題なのか理解してないのに大体大丈夫とかお笑いなだけ。
やっぱちがうんだ。安心したよ。
で、その「問題」と
>>753 とは違う解決策あたりについては語ってもらえないのかい?
ヒントは断片化はなぜ起こるのか。 これ以上は飯の種なので言わない。
ちなみにこれが理解できてればリークもなくせる
ヒントありがと。 断片化を起こさないようにがんばる話なのかな? ちょっと残念だけど、ここ最近の開発ではもうそんなに困ってないからいいや。
つまり最後に確保された領域から順番に解放すりゃいいだけの話でしょ
言ってることはすがすがしいまでに正しいが
>>753 みてれば現実にできてないのはわかるだろ
何か言ってる気になってる奴がいるな
メモリコンパクションすりゃいいじゃん
昔MacOSというものがあってだな・・・
馬鹿ばっか
煽っても何も出さないよw
ゲームだったら寿命短くて数が多いオブジェクト用のアロケーターだけ作ればだいたいなんとかならね?
だいたいw
コンシューマー機の話だろ
せめてジャンル別とかに分けてもらわないと議論のしようがない タイトルごとに統計とって切り替え、作り替えしてもいいぐらいだし
そんなことない
言語と仮想メモリの有無くらいだろ コンシューマーならC/C++,なし固定な気が
784 :
デフォルトの名無しさん :2011/06/08(水) 11:07:34.37
コンシューマー機向けゲームのプログラミングの話が出てるけど、 趣味でコンシューマー機向けのゲーム作ってんの? ってか開発環境構築できんの? 環境構築もできないのに議論しても無駄だろ。 環境があるとしたら職業プログラマ確定だし、職業プログラマがここで技術探してんの?
785 :
デフォルトの名無しさん :2011/06/08(水) 11:12:50.39
趣味のPCゲーだったら、今の時代メモリ管理なんて気にしなくてもいいレベル。 確保した領域の解放忘れるとかは問題外だけど、どのジャンルのゲーム作ろうとグラフィック以外のデータでメモリ食い尽くすなんてまずありえない。 食い尽くすとすればゲーム中で使う高ビットレートの長いBGMを全部読み込んでおくとか珍妙なことをやった場合だろ。 それはプログラムレベルの話じゃないよ。
786 :
デフォルトの名無しさん :2011/06/08(水) 11:18:53.10
そしてPCゲーならどっちみちどこかでライン引いて、それ以下のスペックは切り捨てることになるしな。 これは商用でもいっしょ。 今の時代ならクアッドコア3GHz以上、メモリ8GB以上、グラボはGTX480以上に限定しても何ら問題はない。要は自分の環境で動くもの作って、それ以下切り捨てでいいってこと。 一見乱暴なようだけど、どうせどこかでラインひくならそれが一番合理的。
ヒント:自称職業プログラマ
メモリの最大使用量ってどうやって計算するんだ 実行時に実際に使っている量はいろいろと計測する方法はるけど 実行前の段階でわかる理論的な上界ってわからないよね
たとえば組み込みのプログラミングなんかだと、スタックの必要量なんかは コールグラフの静的解析で求めたりしますが、再帰とかしてれば簡単に無限大 という答えが出てきますので、そういう場合までどうしても保証したいんだったら たとえば入力をチェックして再帰の深さを保証するとかするわけ。
実行して計測すればいい
>>786 まだ32bitを切り捨てるのは難しいから2GBが上限じゃね
GTX470は切り捨てですか?
趣味ならどうでもいいよ
趣味でも他人にプレイさせたいっていう欲求もあるよな?? 商売じゃないから他人の環境で動かせないといけないという強制じゃないけど
ベクトル画像って使わないの?
800 :
uy :2011/06/10(金) 16:22:23.08
このたび、マ板、ム板を去ろうと思いまして
お礼参りをしています
今までありがとうございました
最後の煽りを1スレ1スレにて行っております
>>784 ゴミじゃねーか・・・そんなことも知らないとか しねよ
>>800 こういう真面目に議論してるスレにまで来るなよ
>>800 いえ、こちらこそ
その節は大変お世話になり、ありがとうございます
機会がありましたから、その時はまたどうぞよろしくお願いします
ゲームオブジェクト1体につき1スレッドってどう思う?
思考ルーチンはまだしも描画が無理だろ
>>804 っていうかスレッドにするものを間違ってる
これだけ頻繁に他のオブジェクトと関連が生まれるものなのになんでスレッド・・・
地面に立ってるだけで地面とキャラとで関連が生まれてしまうのに・・・
スレッドの生成廃止、状態切替えたり同期取ったり、色々とコスト高いから現実的じゃないだろうな。 あと誰かSPARC T3搭載のゲーム機を作ってください。
ゲーム要素書きだして関連図書いたら絡まりまくりで困った こんなんどうやってまとめんねん・・・
CPUコア分のワーカースレッドとそれを制御するスレッドを作る。 後はタスクを制御スレッドにひたすら投げる、とかでいいんじゃない??
スレッドでゲームオブジェクトを制御なんていってる奴は 自分で入門書みてスレッドを1度も作ったことがないレベル やればわかるけどあの遅さはやばい それとスレッドスレッドいってる奴は弾幕STGの弾みたいに 各オブジェクトが完全独立で動く単純なゲームしか想定できてないよね やっぱゲームプログラムの肝心なとこってオブジェクトとオブジェクトの接触時のリアクションにあると思うんだよね そこまでちゃんと綺麗に制御すること考えなきゃうまくいかないよ
スタックも理解せずスレッドとか
>>811 いきなり「グリーンスレッド」なんてVM限定の単語を出すのは自分の世界の狭さを語ってるように受け取られるよ
多分LL言語メインの人だろうけど、もう少し自己主張を抑えて、古典的な流儀も尊重するかせめて触れてみてほしい
古典が正しいと言いたいわけじゃなくて、相対的にものを見れるようにって意味で
と優しく書こうと思ったけどまあぶっちゃけ自己顕示欲丸出しの小便くさいレスいらねーんだよって言いたいんだ
同族嫌悪の典型ですね。
>>813 ああ、古い人向けにはユーザレベルスレッドって書けば良かったかな?
知性と思い遣りに溢れる素敵な突っ込みサンクス
無責任な奴ほどスレッド使いたがる
817 :
デフォルトの名無しさん :2011/06/12(日) 00:05:00.33
違う 次の人のために仕事を用意してやってんだ
マスター前の再現性不確定なバグとか殺したくなる
819 :
デフォルトの名無しさん :2011/06/12(日) 03:20:02.49
俺も基本的にスレッド使わないけど、 ッモルピグの通信部分だけは別スレッドにしてるよ。 あとまだこれはやってないけど、シームレスなゲームも作りたいなと思ってて、 そのときのデータの先読みとかにも使おうと思ってる。
グリーンスレッドはユーザーレベルスレッドのことで、 VM用語じゃあないと思うが。
ああなんだ、ウィキペディアにそういう風に書いてあるのか。 Ruby 1.8 以前とか、インタプリタを VM とは言ってないけど、グリーンスレッドである、とは 普通に言ってたから、ウィキペディアの説明がおかしい。英語版を書いた奴が Java 脳 だったんだろう。
ruby...
rubyってなんかのゲームですか?聞いたことないです
バウンティはんたぁ、だっけ?
>>822 低級言語でも軽量スレッドとは言うけど
グリーンスレッド・ネイティブスレッドはJava/Ruby方面でしか聞いたことない
自力の時分割とCPUスレッドとごっちゃにする抽象化なんてVMじゃなければ意味なくね
あ、いやすまん意味はあるわ。まあいいか
sqlite便利だな オブジェクトの検索とからくちんちんだわ
SQLはレコード数が増えるとあきらかに重くなるぞ 用途を誤るなよ
自前で検索システムつくるとめんどくさいし多分人が作るより遅いんだろうなって思うとSQLiteでいいかって気持ちになるよ
それで自分が求めているゲームが作れているのなら、全く問題ないと思うよ
この漠然とした条件でよく言い合いできるなw
ネトゲの鯖側にSQLite使うのはアウトだけど、 インストールするゲームなら、かなり複雑な正規表現でも使わなかゃ大丈夫でしょ
SQLと正規表現になんの関係が?
関係はあるだろselect like
LIKE 演算子は正規表現じゃないだろ。
複雑なパターンってことだろ多分
複雑なパターンを正規表現とは言わんだろ
だいたいSQLなんて、ちゃんと正規化(正規表現じゃないぞw)して、インデックスも ちゃんと張っときゃ、データ数が数万だろうが、数百万だろが、たいして変わらん つうの。
で、実際うまく使えるんですか?データベースって
データベースのメリット・デメリットくらい考えられないの?
TCBをデータも手続きもまるごとDB上に構築すれば シリアライズ不要の永続タスクシステムが完成するね胸圧
TCBなら仕方ない
846 :
uy :2011/06/13(月) 03:24:30.92
>>801 これがww真面目なww議論www
ちょwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwご冗談をwwwwwwwwwwwwwwwww
はぁ・・・疲れる
847 :
uy :2011/06/13(月) 03:28:29.48
なんか話がかみ合ってない気がするよこのスレ 話し合いというより独り言の域に達してるぞこのスレ 曖昧な概念を、自分の主観で話して相手が理解せずに違うことと理解して話し始めているのに 当人がそれの軌道修正を行わずに口を閉じて、よくわかっていない奴が別の話し始めるせいか 怖い
>841 サーバにインストールする各種データベースはそれもできるけど、 SQLiteじゃ無理じゃないか?
>>848 >>841 じゃないけど...
正規化はRDBMSの種類と関係ないし、SQLiteだってインデックスくらい張れるよ
※別にSQLiteの使用を薦めている訳ではないが
不毛
851 :
デフォルトの名無しさん :2011/06/13(月) 10:17:41.51
ハゲ
剃ってるだけ
853 :
デフォルトの名無しさん :2011/06/13(月) 10:42:35.52
SQLiteは、下等なゲームっの、記録方法た、ハゲっが。 俺みたいな、一流プログラマは、PostgreSQL一択っだ。ハゲっが。
ゲームの規模にもよるけど、SQLiteか、MySQLだろ。 PostgreSQL は、ゲーム用途にしては、ゴテゴテしすぎる。
俺の見たMMOはポスグレだったな SQLiteは一度使ってみたいが使いどころがわからん
使いどころは、そりゃ大量のデータの格納用途だろう。ログの保存とかにも使えるし。 マルチユーザのゲームには必須だな。スタンドアロンの簡単なゲームには使う必要はない。
マルチユーザってモンハンみたいなヤツか? やったことないけどあれそんなに大量のデータを扱うのか
俺もやったことないけど、使うんじゃないかな。
マルチユーザのゲームはユーザアカウントに使うだろうが!
ユーザアカウントにSQLite? どんなゲームなんだろう
マルチユーザゲームのアカウントにDB使わないで何使うんだよ。
普通MySQLとかPostgreSQLとかじゃね?
普通、OracleとかSQLServerだろ
小規模だったら、SQLiteでも十分だろ。
865 :
デフォルトの名無しさん :2011/06/13(月) 13:54:26.46
SQLiteとか、阿呆の極み、っだ。ハゲっが。 規模っが、小さい、うちは、いいっが、大きく、なったら、どうすっる? 規模っが、大きく、なったら、DBっは、外部っに、鯖として、構築するっが、 そもそも、鯖ではない、SQLiteからっの、移行は、プログラムっの、書き替えっが、必要っだろうが。ハゲっが。 これっは、だるい。 だから、規模の、小さいうちっは、一つのマシン内で、ゲーム本体っと、DB鯖っを、動かしても、いいっが、 DBっは、鯖化して、おくべきだろうが。ハゲっが。
DBの使いどころじゃなくてSQLiteならではってのを知りたい ログの保存はたしかに便利そうだな
SQLiteの仕様でも見れば?
>>865 そんときゃ他のDBエンジンにデータを移行すりゃいいだろうが。ハゲっが。
ま、特有の方言を極力使わないか、ミドルウェアをかましのとくのが前提だが。
使いどころというか、SQLは慣れたら、普通のファイルより、格段に使いやすいから、 使おうと思ったら何にでも使えるな。設定内容の保存とか、途中で終了したゲームの ステータスとか、ハイスコア残したり、マップ情報とか、モンスターの情報とか、 とにかく、開発者の考え方次第で、何にでも使える。 検索も早いし、検索条件もいろいろ指定できるし、削除も簡単、まとめて削除もできるし、 まぁ、インデックスは張りまくればいいってもんじゃなくて、あまり多いと、容量でかくなる し、更新速度が遅くなる。適切に設計することが大事。 でも少量のデータだったら、あまり神経質にならずに気軽に使ってもいいと思う。 ただ、サーバー側に置くDBは、セキュリティとバックアップに配慮する必要がある。
むしろ少量のデータならインデックスの効果はなくなる とりあえず素人はインデックスのことは忘れていいと思うよ
そういうこと言ってどんどんDBに詰めるからFireFoxが重くなったんじゃね
DB使ってなかったら、さらに遅くなっただろうな。 ちなみに、WindowsのレジストリもDBの一種だから。SQLは使えないけど。
データベースぇ
セーブ用途だと普通にファイルの方が楽そうだけどなぁ スクランブルとか破損や改竄のチェックとか SQLiteが面倒見てくれるわけじゃないでしょ?
ファイルだと面倒見てくれるのか?
ファイル単位でやるなら結局ファイルでいいじゃんって話に
以前FF11が頓珍漢な理由でDB避けて話題になったな
だから、少量のデータで中身のパースも自前でやるんだったらファイルでいいよ。 個人ベースの小規模ゲームならそれでいいよ、もう一生、ファイルだけ使ってればいいと思うよ。
逆に言うと複数から同時に読み書きがあったりとかで、ナイーブにファイルでやったら 中身消えたり不整合が起きたりしそうならデータベース使えと。
>逆に言うと複数から同時に読み書きがあったりとかで、 SQLiteに向いてなくね?
SQLiteだってトランザクションはサポートしてるだろ。
規模や仕様によって変わるものを条件設定せずによく議論できるなら。 実際に計測して速いほうですればいいんじゃない。 例えばキャラのHPしか記憶しとかないようなゲームだけだったらファイルでいいでしょ。 ッモルピグのプレイヤーが出してる店の中から特定のアイテムを価格順にソートして表示するとかならDBっしょ。 ただDBは検索やソートの高速化に使うのが普通だから、 キャッシュのきかないSQLiteは問題外。 スタンドアロンなら大したデータ量はないからファイルで十分。 ハゲっが。
つ SQLite Shared-Cache Mode ハゲっが。
DBくらい使いこなそうぜ・・・
886 :
デフォルトの名無しさん :2011/06/13(月) 16:40:56.31
SQLiteを自分のソフトで使おうと思ったらSQLiteを実行するためのライブラリーか何かをセットにして配布せにゃならんのだろ? キメェ SQLiteにバグあったらどうすんだ? セキュホとか。 マジキメェ ハゲっが。
基本情報で問題といたときにしかデータベース使ったことありません
バカばっか
SQLiteってなんてよむのか スクライトで良いのかな
ファイルを自力パースとか無駄だから辞めてくれw
>>886 SQLiteのバグより、テメェの糞ゲーのパグの確率の方がタケェよ。
SQLiteが今やどんだけ他のソフトにバンドルされてると思ってんだよ。
つか、アップデート処理も自前で組み込めねぇようなアプリ配布するなよ、キメェ
ハゲっが。
>>891 みたいのが議論を引っ掻き回して喜んでるんだろうな。
テメェ糞ゲーのパグ率のほうが高いとか根拠の話を出してくるし頭悪そう。
日本語でおk
ハゲっが。って発音しにくくない?
>>882 ごめん、なんか勘違いしてた
よほど頻繁に読み書きが衝突しない限り問題ないか
896 :
デフォルトの名無しさん :2011/06/13(月) 16:53:38.42
それよりパグって用語が何なのか気になる。ハゲっが。
自分の作るゲームが糞だから他人の作るゲームも糞だと思うんだろ 何年経っても成長しない人間によく見られる思考回路
899 :
デフォルトの名無しさん :2011/06/13(月) 17:03:01.62
で? そのパグがゲープロにどう関係があるんだ?
自己紹介乙
パグは、中国語で「いびきをかいて眠る王様」を意味するから、 つまり、あくびが出るような糞ゲーってことだろ。
低能乙
903 :
デフォルトの名無しさん :2011/06/13(月) 17:09:48.17
ソフトウェアっに、バグがあるの、っは、普通。ハゲっが。 というか、むしろ、バグっの、ない、ソフトウェアっは、存在しない。ハゲっが。 ゲームっは、何に、分類される?か? ソフトウェアっに、分類される、っ当然。ハゲっが。 つまり、SQLiteっに、明らかな、バグっが、あっても、使うべき。ハゲっが。
不毛
う・ざ・い
SQLiteは組み込みで使えるから、たのRDBMSとは 違う用途でも使える。 DB使うとやめられなくなるくらい便利なんだけど、 使ったこと無いとその良さがわからないから、いつまでも使わない。
底辺には難し過ぎるだろう
業務系アプリの土方ですら会得しているスキルなのに?
禁止 尻から目が出た ッモルッピグ ハゲっが
3大データ保存方法 1.RDBMS(表) 2.Key-valueストア(開発環境付属のPropertyクラスとかdbm系とかその他)(key-valueが対になる) 3.CSV(表)とかXML(入れ子)とかそんなの。 4.ハゲっが
シリアライゼーションなにそれ?みたいな。
912 :
デフォルトの名無しさん :2011/06/13(月) 18:08:02.73
尻から目が出たッモルッピグにおけるハゲっが。
ゲームのデータはシグネチャが一定じゃないから使いにくい このアイテムには他のアイテムにはないパラメーターが・・・とかいくらでも出てくるじゃん
そういうのは MongoDB みたいな不定形データ向けの DB で
衝突判定もDBでらくらくですよね!
DB は使いどころを見極めて使わないとダメだよ
型シグネチャのことかなぁ?
そりゃそうだろうが、関数やメソッドのシグネチャと言うならわかるが、 データのシグネチャとは言わないな。
テーブルのシグネチャならさほど違和感無いね
俺もSQL勉強始めたばかりでよくわからないんだけど 例えばアイテム分類が武器、防具、草、壺、食料とあって、それぞれに特有のデータがあるとしたら アイテム全部を扱う表ってどういうふうに書くの? とりあえずすべての列をつなげて、必要ない部分はNULL値に設定するのかな
たぶんスキーマのことを言いたいんだろうな
データのシグネチャというとそのデータ全体のハッシュ値とかだよな。
>>921 「マンガでわかるデータベース」おすすめ。
>>921 そりゃ、内容しだいだろ。
アイテムテーブル一つで済ますか、武器テーブル、防具テーブルと
それぞれ作るか。
アイテムテープル一つの場合も、属性をフィールドで分類する場合も
あるし、別テーブルにする場合もある。
別テーブルにする場合も、1対1、1対多、多対多と構造的にはいろいろ
ある。全ては要件しだい。
でもま、たいがいは、1テーブルで、属性をいくつか持たしきゃこと足りる
だろ。
>>922 別に争うつもりは無いけど
メソッドシグネチャ
- (retType) methodName: (argTypeA) arg1additionalName: (argTypeB) arg2;
(テーブルシグネチャ)
tableName(colName1colTypeA, colName2 colTypeB);
なんだよ、テーブルシグネチャって。何かの造語か?
だから括弧に入れてる
>>921 Item (id number primary key, name varchar, type number, price number);
weapon (id number primary key, strength number, ...);
amor (id number primary key, weight number, ...);
herb (id number primary key, attr1 type, ...);
jar (id number primary key, ...
food (id number primary key, ...
ちゃんと書こうと思ったけど、途中でめんどくさくなった...
メタプログラミングの世界にようこそ
933 :
921 :2011/06/13(月) 19:30:18.40
あ、よく考えたら普通にこれでいいのか なんか変に深く考えすぎてたわ どうもお騒がせしてすいませんでした 〜 ( SELECT * FROM 手持ちアイテム, 武器情報, 例外的な武器情報 WHERE 種類 = 武器 ) AS 手持ち武器 〜 しかしこれだと例外的な武器情報の為だけにNULL要素だらけになってしまってパフォーマンス悪くならないか心配だわ
武器に限定するなら、INNER JOIN しろよ、ハゲっが。
省略してもinner joinだったような気が
例えばパックマンやボンバーマンの敵みたいなのが方向転換するときのアルゴリズムってどうなってんの?
dx = -dx;
面白いと思って書き込んでるの?
>>939 ちゃんと読んだ?
該当付近の一行くらい貼ってよ
>>940 初出の時に読んだよ
まあのんびり読んでおくんなまし
>>941 でも貼れないしコメントもできないんだ
つまんね
読んだ ≠ 理解できた
日本語に於ける一般的な会話の流れ: 読んだ? → 読んだよ 理解できた? → 理解できたよ
あれよんでネタを提供できないって読めてないじゃん
証拠見せて? → ...
つまり俺以外誰も読んでないんだな
ソースは見たよ。速攻閉じたけどw
そうかもね、で、どうだったの?
いじけのアルゴリズムとグズタのアルゴリズムは・・・
逃げたか,,,
読んだとわかるコメントあるのに
なるほど、肝心な質問には答えず、ツールでごまかしたか。 巧妙だな。
いやネタ増えるじゃん
いやネタ増えるじゃん とかかわいこぶってる間にこたえりゃ済むことじゃん。 つか、このツールは、構文に色付けるだけじゃないのか? インデントとか整形して読みやすくとかしてくれんのかよ。
只今、一生懸命解読中です。 期待せずに、暫くお待ちください。
いやね、もう、いくら整形してくれようが、変数名とか関数名が短縮されてる時点で 読む気が半分ぐらい失せちゃってんのよ。 圧縮前の元ソースとかどっかねーのかよ。
まぁ、
>>954 の懇切丁寧な解説をあまり期待せずに待つとするか。
今のうちに風呂はいってこよ。
まあ俺は寝るけどな もう風呂上がったし
オリジナルのプログラムは16KB オリジナルとグーグルのコード見た奴は再現度とか語ることがたくさんある
ソースなんて全く読んでないけど、 パックマンの敵なんて普通にノードを辿ってるだけじゃないの 特段、方向を転換するアルゴリズムなんて無いだろ 強いて言うなら向かうノードを決めるアルゴリズムくらいか
知ったかがわかる
コード読んでればもう答えが出てるってわかってるだろ
読んだよ。
じゃネタ出して 判別するから
お前がまず上であがってた質問に答えたらな。
この程度人に頼らず自分で調べられないヤツがゲームなんて作れんの?
この程度読めなくて煽ってる奴がマジかっこ悪い
>>973 いや、それはお前のピントはずれの妄想だから。わかんないの?
ここまで、ソース読んだと言う奴は多数。ソースの解説は無し。
不毛
コードがどうとか、もうどうでもいいよ オリジナルのコードがどうであれ、パックマンの敵の動き程度なら ステートマシーンとパス追従で出来上がるだろ
いやおれは読んだ奴と煽ってる奴がわかって楽しいw
風呂からあがってみれば、この有様だよ。 ちょっとでも期待した俺が馬鹿だった。 もういいよ、JavaとC++のソース見つけたから、 そっち読むことにするわ。
>>982 いやgooglepacmanは他のバージョンとは意味が違うぞ
>>939 の馬鹿が読んでもいないgoogleのソースを
ドヤ顔で貼ったのが事の発端だな。
ということで、誰も理解してないということで、
〓〓〓 終了 〓〓〓
>>986 高級言語で書かれた本物のパックマンってことだよ
ゲーム作るときはどこから手をつけるべきなのか
( ´,_ゝ`)プッ
なんか知らんが、顔真っ赤な奴がいるな。
d
g.switchMainGhostMode this.dir = g.oppositeDirections[this.dir]; このあたりかな?
プリプロセス後なのかmodeの値の意味を文脈から理解しなきゃいけないのがつらい
煽り合いだと伸びるのにコードが出始めるとぴたっと止まるこのスレ
まぁ、夜も遅いしな。
そんなスレももう終わりです タスクシステム・フォーエヴァー!
ネバーエンディング・タスクシステム (いろんな意味でw
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。