C#でゲームを作ろうと思う人が情報を交換するためのスレです。
テーマはアクション、パズル、RPG等なんでもOK
C#ゲーム製作@wiki
http://www21.atwiki.jp/csharpgamedev/
前スレ
C# C# C♯ でゲームを作ろう Part1
http://hibari.2ch.net/test/read.cgi/gamedev/1212989813/
探検
C# C# C♯ でゲームを作ろう Part2
■ このスレッドは過去ログ倉庫に格納されています
2010/11/21(日) 09:52:59ID:wlCDMEbr
2010/12/16(木) 00:30:49ID:G422t28F
.NET CLRのメモリ管理に関する最低限の基礎知識(Xbox360上のXNAとは異なる)
・.NET CLRのGCは効率的な世代別GCを採用している
・CLRはメモリをG0/G1/G2(G=Generation)/LOH(Large Object Heap)の4つの領域で管理する
・〜.NET3.5:同時実行GC .NET4/Silverlight4:バックグラウンドGC
・同時実行GC:Full GCの実行中にG0/G1のGCが実行できない。
新たな割り当てができなくなった段階で、Full GCの終了まで中断される。
・バックグラウンドGC:Full GCが実行中でもG0/G1のGCが実行できる。
中断される回数が大幅に減少し、中断された場合でも中断時間が短くなる。
.NET4でコンパイルするか、App.configで.NET4対応にするだけで改善が期待できる。
>>19-22
掲示板に書ききれない話が行間に山ほど含まれてるので、一度調べてみるといいよ。MSDNマガジンの関連記事読むだけで全然違う。
>タスクマネージャで使用目盛り見た
せめて、管理ツールのモニタツール使ってパフォーマンス カウンタ見てくれ…。もっと踏み込むならメモリ プロファイラ使いたい。
>>23
Silverlightも入れてよ。次期リリースの5はもっと凄くなるよ。
Immediate Mode Graphics SupportでGPUを活用できるようになって3D(光源、テクスチャマッピング、アルファブレンディング)がサポートされる。
・.NET CLRのGCは効率的な世代別GCを採用している
・CLRはメモリをG0/G1/G2(G=Generation)/LOH(Large Object Heap)の4つの領域で管理する
・〜.NET3.5:同時実行GC .NET4/Silverlight4:バックグラウンドGC
・同時実行GC:Full GCの実行中にG0/G1のGCが実行できない。
新たな割り当てができなくなった段階で、Full GCの終了まで中断される。
・バックグラウンドGC:Full GCが実行中でもG0/G1のGCが実行できる。
中断される回数が大幅に減少し、中断された場合でも中断時間が短くなる。
.NET4でコンパイルするか、App.configで.NET4対応にするだけで改善が期待できる。
>>19-22
掲示板に書ききれない話が行間に山ほど含まれてるので、一度調べてみるといいよ。MSDNマガジンの関連記事読むだけで全然違う。
>タスクマネージャで使用目盛り見た
せめて、管理ツールのモニタツール使ってパフォーマンス カウンタ見てくれ…。もっと踏み込むならメモリ プロファイラ使いたい。
>>23
Silverlightも入れてよ。次期リリースの5はもっと凄くなるよ。
Immediate Mode Graphics SupportでGPUを活用できるようになって3D(光源、テクスチャマッピング、アルファブレンディング)がサポートされる。
2010/12/16(木) 01:44:28ID:1jVCL3Xf
>>16はG0で済ましているから負荷が軽い
26アジェグ4倍 ◆4xAJeG.COM
2010/12/16(木) 10:13:47ID:QtGXpLv7 なんや知らんが、秒間60回のフレームループの中で
newをやっちゃダメだよ。
newをやっちゃダメだよ。
2010/12/16(木) 16:54:03ID:4Vhu2VWF
なんか落とし穴とかわかりにくい
foreachとか駄目なんでしょ?
foreachとか駄目なんでしょ?
2010/12/16(木) 19:07:42ID:kONXhBxi
>>27
何がどうダメなのか具体的に
何がどうダメなのか具体的に
2010/12/17(金) 00:44:40ID:1SX4G+z6
動かすターゲットによって目標とする最適化の程度は異なる。
.NET CLR:世代別GC(.NET Framework/Silverlight)
.NET CF CLR:マーク&スイープGC(Xbox360/Zune)
.NET CF CLRはGCのコストが桁違いに大きいため、徹底的にGCを排除すると大きくパフォーマンスが上がる。
.NET CLRでは>>16>>25の言うようにG0/G1のGCのコストが小さいので、全部最適化するだけの労力に見合った効果が得られない。
.NET CLRはG2の発生が抑制されていてG0の発生頻度が1フレームより長ければ問題ない。
この状態を保てている範囲なら1フレーム未満の寿命しかないインスタンスを作り捨ててもいい。
もっと長い寿命を持つインスタンスの生成は、G2ヒープ/LOHにどのくらいのペースで積まれるかによって上限が決まるので、
プロファイルをとってヒープに積まれたインスタンスの生成元を調べて、最適化の効果が大きく簡単に改善できる個所から手を入れましょう。
これ以上の最適化は手段と目的が逆転するが大丈夫か?
.NET CLR:世代別GC(.NET Framework/Silverlight)
.NET CF CLR:マーク&スイープGC(Xbox360/Zune)
.NET CF CLRはGCのコストが桁違いに大きいため、徹底的にGCを排除すると大きくパフォーマンスが上がる。
.NET CLRでは>>16>>25の言うようにG0/G1のGCのコストが小さいので、全部最適化するだけの労力に見合った効果が得られない。
.NET CLRはG2の発生が抑制されていてG0の発生頻度が1フレームより長ければ問題ない。
この状態を保てている範囲なら1フレーム未満の寿命しかないインスタンスを作り捨ててもいい。
もっと長い寿命を持つインスタンスの生成は、G2ヒープ/LOHにどのくらいのペースで積まれるかによって上限が決まるので、
プロファイルをとってヒープに積まれたインスタンスの生成元を調べて、最適化の効果が大きく簡単に改善できる個所から手を入れましょう。
これ以上の最適化は手段と目的が逆転するが大丈夫か?
2010/12/17(金) 00:52:07ID:zbyqlefy
SwapArrayやRingBufferを使えばforeachできない
これはIEnumeratorを吐く関数を作ればいい
これはIEnumeratorを吐く関数を作ればいい
2010/12/18(土) 02:37:41ID:jHzAZ+Pm
みんなすげえよく知ってるな。どうしても速度がほしくなったらここら辺のレスを元に掘り下げることができそうだ。サンクス
2010/12/18(土) 17:03:01ID:OVvsO5Q5
Winではとりあえず毎フレームGen0GC入れとけば劇的に安定するよね
2010/12/18(土) 17:35:19ID:UzXWUqS6
ちがうよ ぜんぜんちがうよ
2010/12/20(月) 00:09:43ID:zPc622SO
XNAのロボットゲームが非会員でも落とせる
ようになっとる
結構ぬるぬる動く
ようになっとる
結構ぬるぬる動く
2010/12/20(月) 13:50:11ID:wBI9+2iY
C#でhtml文をパネルにしてくれるようなクラスってない?
2010/12/20(月) 14:32:52ID:1s3rp6hX
IEコンポーネントでHTMLをホストしたいならWebBrowser使う。
IE以外だと
GeckoにはActiveX版があってC#からも呼んで使える。でも↓の方が便利。
GeckoFX(ActiveXを使わず直接使ってる。あと開発者のアンドリューさんは日本語ちょっと話せるらしいw)
完成したらWebkit.NETも有望そう。
マークアップ ランゲージ(ML)でUI定義したいならWPFのXAMLがまさにそれ
WinForms用ならWFML(http://windowsclient.net/articles/wfml.aspx)あたりだろうか?これは使ったことない。
>>34
なにそれkwsk
IE以外だと
GeckoにはActiveX版があってC#からも呼んで使える。でも↓の方が便利。
GeckoFX(ActiveXを使わず直接使ってる。あと開発者のアンドリューさんは日本語ちょっと話せるらしいw)
完成したらWebkit.NETも有望そう。
マークアップ ランゲージ(ML)でUI定義したいならWPFのXAMLがまさにそれ
WinForms用ならWFML(http://windowsclient.net/articles/wfml.aspx)あたりだろうか?これは使ったことない。
>>34
なにそれkwsk
2010/12/20(月) 14:38:54ID:wBI9+2iY
2010/12/20(月) 15:55:15ID:zPc622SO
2010/12/20(月) 19:06:39ID:zPc622SO
ttp://www9.uploda.tv/v/uptv0001083.png
C#を使っているために処理が重いのは
このグラフの左端のたった平均2msの部分
↑の人達はこの処理が重いからC#はダメだ(笑)
とか宣っていたんだから
今どんな気持ち?
∩___∩
♪ | ノ ⌒ ⌒ヽハッ
/ (●) (●)
| ( _●_) ミ
___ 彡 |∪| ミ
ヽ___ ヽノ、`\
/ /ヽ <
/
C#を使っているために処理が重いのは
このグラフの左端のたった平均2msの部分
↑の人達はこの処理が重いからC#はダメだ(笑)
とか宣っていたんだから
今どんな気持ち?
∩___∩
♪ | ノ ⌒ ⌒ヽハッ
/ (●) (●)
| ( _●_) ミ
___ 彡 |∪| ミ
ヽ___ ヽノ、`\
/ /ヽ <
/
2010/12/20(月) 19:27:22ID:utdIzmpZ
>39
そのPCのスペックは?
そのPCのスペックは?
2010/12/20(月) 19:50:10ID:zPc622SO
何故自分の環境で動かさないのか?
宗教的理由でC#のソースをコンパイルすると死ぬんですね
わかります
P4 2.80
メモリ 1G
宗教的理由でC#のソースをコンパイルすると死ぬんですね
わかります
P4 2.80
メモリ 1G
2010/12/20(月) 19:54:13ID:Vc2LMPvW
ていうか、それをC++で実装した場合との比較はないの?
2010/12/20(月) 20:00:01ID:zPc622SO
C++の方が速い
あたり前だ
なんで実装してまで調べる必要があるんだ?
頭の中のお花畑ぐあいをちょっと聞かせ
てくれないか?
あたり前だ
なんで実装してまで調べる必要があるんだ?
頭の中のお花畑ぐあいをちょっと聞かせ
てくれないか?
2010/12/20(月) 20:40:29ID:1s3rp6hX
ちょっと落ち着けw
C#自体の速度は最適化してないC++並みって知らない人は置いとくとして
意図しないタイミングでのGCは避けるべきだけど、(PCでは)極端に忌避する必要はないって話に落ち着いてたでしょ
>>38
ロボットゲームってまんまRobot Gameなのかw
試してみるthx
C#自体の速度は最適化してないC++並みって知らない人は置いとくとして
意図しないタイミングでのGCは避けるべきだけど、(PCでは)極端に忌避する必要はないって話に落ち着いてたでしょ
>>38
ロボットゲームってまんまRobot Gameなのかw
試してみるthx
2010/12/20(月) 20:50:42ID:czZepkU0
GCについてどうC++と比較するつもりなんだ?
2010/12/20(月) 21:49:42ID:1s3rp6hX
newはC++より一桁速い。それは何故か
ってとこからC#のメモリ管理について延々と語れるけど、それをやるには掲示板は狭すぎる。
世代別GCは一般に思われているより高速。
(何倍も時間かけて)C++で作ればC++の方が早い。
どの言語で作っても結局は描画にかかる時間が大半を占める。
ってとこからC#のメモリ管理について延々と語れるけど、それをやるには掲示板は狭すぎる。
世代別GCは一般に思われているより高速。
(何倍も時間かけて)C++で作ればC++の方が早い。
どの言語で作っても結局は描画にかかる時間が大半を占める。
2010/12/21(火) 01:12:58ID:HIfOIzlr
DirectXの情報がどうもないと思ったらXNAってもんがあるのかw
C#+DirectXで作っちゃった・・・
でも、苦労はあんまり変わらないような・・・
C#+DirectXで作っちゃった・・・
でも、苦労はあんまり変わらないような・・・
2010/12/21(火) 01:20:04ID:HIfOIzlr
と思ったら結構臭いな>XNA
C#は混沌としてるな
C#は混沌としてるな
2010/12/21(火) 01:48:06ID:7nmvHqyX
薄いwrapperが欲しいならSlimDX
2010/12/21(火) 01:50:42ID:IUyb5141
2011年になろうかと言うときに
Managed Xとか…
釣りやなw
C++/CLIでツール作成ならまだ疑う余地
もあったけど
Managed Xとか…
釣りやなw
C++/CLIでツール作成ならまだ疑う余地
もあったけど
51名前は開発中のものです。
2010/12/21(火) 06:58:33ID:QhXoH/nz あげておくか
52アジェグ4倍 ◆4xAJeG.COM
2010/12/21(火) 09:16:03ID:kS4ld1Hr いや、だから、タイミングや状態もわきまえずnewする時点で、
言語がなんであろうと以下略。
言語がなんであろうと以下略。
2010/12/21(火) 13:04:31ID:589aNUur
そうでもない
インタプリタが遅くてnew自体のコストなんか誤差になるような言語処理系は
スクリプト言語ではわりとある
インタプリタが遅くてnew自体のコストなんか誤差になるような言語処理系は
スクリプト言語ではわりとある
2010/12/21(火) 17:39:24ID:7nmvHqyX
いや、だから、タイミングや状態もわきまえずnewしていいなんてどこに書いてあるよ?
やっちゃダメ>>26と、管理されていればやってもいい は全然違う。
それだけの開発コストを投入するに値する根拠ってあるの?
C#はインタプリタでもスクリプト言語でもない。
newのコストは誤差(C++より速い)の範囲内。動作速度はJITされるため一度動き出せば最適化していないC++並み。
で、GCのコストをどう見積もってどこまで対策するのかって話なんだが…
やっちゃダメ>>26と、管理されていればやってもいい は全然違う。
それだけの開発コストを投入するに値する根拠ってあるの?
C#はインタプリタでもスクリプト言語でもない。
newのコストは誤差(C++より速い)の範囲内。動作速度はJITされるため一度動き出せば最適化していないC++並み。
で、GCのコストをどう見積もってどこまで対策するのかって話なんだが…
55アジェグ4倍 ◆4xAJeG.COM
2010/12/21(火) 20:24:12ID:co1xIq2s 開発コストを投入するに値する根拠?
知ってると思うが、new ってのは mallocなんだぞ。
メモリの消費状況によっては、そこでスワッピングなどの
ディスクアクセスが発生する恐れもあるんだからさ。
で、ガベージが作動すりゃ、freeなわけだから、
そこでまたディスク沙汰に、なりかねないわけだ。
ソノヘンがわかってりゃ、例えば敵の弾の発生時にnewなんて
恐ろしくて恐ろしくて・・・
描画時のnew Color とかnew Fontなんてのにも注意しないと。
だから new は、ループに入る前とか、別のスレッドでやるとかがセオリー。
知ってると思うが、new ってのは mallocなんだぞ。
メモリの消費状況によっては、そこでスワッピングなどの
ディスクアクセスが発生する恐れもあるんだからさ。
で、ガベージが作動すりゃ、freeなわけだから、
そこでまたディスク沙汰に、なりかねないわけだ。
ソノヘンがわかってりゃ、例えば敵の弾の発生時にnewなんて
恐ろしくて恐ろしくて・・・
描画時のnew Color とかnew Fontなんてのにも注意しないと。
だから new は、ループに入る前とか、別のスレッドでやるとかがセオリー。
2010/12/21(火) 21:42:50ID:ByL+MADM
C#の絶対性能がC++より低いなら、その低い性能で足りる範囲でゲームデザインすりゃ済む話だろう。
見積もりを検討するなら、プロトタイプ組んで実測すりゃ済む話だろ。
全部アセンブリで書くならまだしも、C#やらC++で書いたゲームのソースコードだけ見て、事前に精密な見積出せるわけない。
そんなもん、言語仕様以前のレベルの話だ。
なのに、事前に脳内で結果が分かって当然って前提を置こうとしている時点で、>>54は全くゲームのコード書いたことが無い、脳内クリエイターかなんかなんだろうよ。
どうせ、C#の方が簡単そうだけど絶対性能で負けるなら何となく格好悪いから使いたくない、とかその程度の発想でウダウダ食い下がってるだけだと思うぞ。
見積もりを検討するなら、プロトタイプ組んで実測すりゃ済む話だろ。
全部アセンブリで書くならまだしも、C#やらC++で書いたゲームのソースコードだけ見て、事前に精密な見積出せるわけない。
そんなもん、言語仕様以前のレベルの話だ。
なのに、事前に脳内で結果が分かって当然って前提を置こうとしている時点で、>>54は全くゲームのコード書いたことが無い、脳内クリエイターかなんかなんだろうよ。
どうせ、C#の方が簡単そうだけど絶対性能で負けるなら何となく格好悪いから使いたくない、とかその程度の発想でウダウダ食い下がってるだけだと思うぞ。
2010/12/21(火) 21:55:38ID:7nmvHqyX
58名前は開発中のものです。
2010/12/21(火) 21:59:22ID:XhDhH52e 昔のJavaスレをみるようだ歴史は繰り返すなw
59アジェグ4倍 ◆4xAJeG.COM
2010/12/21(火) 23:38:07ID:co1xIq2s まあ、要するに、newの使いどころをわきまえてりゃ、
ガベージがドーノコーノなんて話が出てくる必要もないわけで。
変なタイミングでnewするから、変なタイミングでガベージが動くんだぞ。
最初に書いたように、フレームループの中でnewしないように注意なんてのは、
プロファイルとやらがドーコー言う以前の、技術の基礎だからな。
ガベージがドーノコーノなんて話が出てくる必要もないわけで。
変なタイミングでnewするから、変なタイミングでガベージが動くんだぞ。
最初に書いたように、フレームループの中でnewしないように注意なんてのは、
プロファイルとやらがドーコー言う以前の、技術の基礎だからな。
2010/12/21(火) 23:50:24ID:IUyb5141
上のRobotGameでもふつうにnewしてGCしてる
クラス設計 特に継承を使った設計が
頭の中にないと なんでnew禁止が辛いのか
理解できないので
会話にならない
クラス設計 特に継承を使った設計が
頭の中にないと なんでnew禁止が辛いのか
理解できないので
会話にならない
2010/12/22(水) 00:17:59ID:MbCuhdtT
俺がゲーム開発のノウハウ教えてやんよ
と、息巻いてる奴に限って
英語コンテンツは一切目をとうさず
シェーダーも使えない
悲しい現実
と、息巻いてる奴に限って
英語コンテンツは一切目をとうさず
シェーダーも使えない
悲しい現実
2010/12/22(水) 01:02:04ID:lDvG2hsH
2010/12/22(水) 01:47:45ID:87uiMMNX
>>59
newの使いどころをわきまえる為に、.NET CLRのGCの特性を理解して使いましょうって話をしてるんだよ。
必死に無駄な最適化をしている君は実に馬鹿だなぁ
無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。
newの使いどころをわきまえる為に、.NET CLRのGCの特性を理解して使いましょうって話をしてるんだよ。
必死に無駄な最適化をしている君は実に馬鹿だなぁ
無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。
2010/12/22(水) 03:50:48ID:jdovR8NX
>>62
脳が腐ってる気もするけど、同意。なんだろう、ロリコンって少ないのか?他の国じゃ。
脳が腐ってる気もするけど、同意。なんだろう、ロリコンって少ないのか?他の国じゃ。
65アジェグ4倍 ◆4xAJeG.COM
2010/12/22(水) 10:24:58ID:msb7iRfo new と同様に注意しなきゃならんのは、Listで定義した配列のAddとRemoveだな。
多くの場合、Addの直前にnewしてるんだろうけど。
フレームループの中で有効件数が変わるような配列(敵の弾とか)は、
最大値を設けてあらかじめその数だけ取っとくなりしないと。
多くの場合、Addの直前にnewしてるんだろうけど。
フレームループの中で有効件数が変わるような配列(敵の弾とか)は、
最大値を設けてあらかじめその数だけ取っとくなりしないと。
2010/12/22(水) 10:56:22ID:1bNr51j3
newのコストとかGCのコストなんてゲーム作ってくうちにネックに成ったら考えれば良い話。
簡単なパズルゲー、ノベルゲーなら多少フレーム落ちてもたいして問題ないし。
簡単なパズルゲー、ノベルゲーなら多少フレーム落ちてもたいして問題ないし。
2010/12/22(水) 11:46:54ID:8WY0reJe
68アジェグ4倍 ◆4xAJeG.COM
2010/12/22(水) 12:18:18ID:msb7iRfo 縮小は行われなくても、インデックスの更新などがあるからねぇ。
まあ、パズルやノベルなら、確かにさほど気にせんでもいいが。
おれが今作ってるのは音楽ゲー系(Javaだけど)だから、
タイミングにはイロイロとシビアでねぇ。
まあ、パズルやノベルなら、確かにさほど気にせんでもいいが。
おれが今作ってるのは音楽ゲー系(Javaだけど)だから、
タイミングにはイロイロとシビアでねぇ。
2010/12/22(水) 12:20:16ID:8WY0reJe
指数関数的に内部配列を拡張していって縮小はしないのはC++のvectorやJavaのArrayListなんかでも見られる
ごく一般的な動的配列の実装なんだけどな
上でもnew ColorがGCに影響するとかnewがmallocとか見当違いのこと言ってるし
ごく一般的な動的配列の実装なんだけどな
上でもnew ColorがGCに影響するとかnewがmallocとか見当違いのこと言ってるし
70アジェグ4倍 ◆4xAJeG.COM
2010/12/22(水) 12:45:03ID:msb7iRfo CPUの進化ってすごいんだねぇ。
ここの連中のおれへの反論を見ると、
そう思っちまうねぇ。
ここの連中のおれへの反論を見ると、
そう思っちまうねぇ。
2010/12/22(水) 12:59:52ID:a/rzg/Ro
もうその話題は終わったよ
2010/12/22(水) 13:11:33ID:MbCuhdtT
音ゲにNPC AIもステージ設計も無いもんな
むしろ事前初期化ぐらいしかやる事なさそ
むしろ事前初期化ぐらいしかやる事なさそ
73アジェグ4倍 ◆4xAJeG.COM
2010/12/22(水) 13:21:41ID:msb7iRfo おれの場合、MIDIを使って、既存のデータで遊べるようにしてるから、
そのMIDI関連の調査には、チョットばかし苦労したねぇ。
最近はソノヘンの資料が少なくてねぇ。
何とかならんのかねぇ、あの叩いてから音が出るまでの遅延。
マックならそれほどひどくもないんだが・・・
そのMIDI関連の調査には、チョットばかし苦労したねぇ。
最近はソノヘンの資料が少なくてねぇ。
何とかならんのかねぇ、あの叩いてから音が出るまでの遅延。
マックならそれほどひどくもないんだが・・・
2010/12/22(水) 13:21:53ID:8WY0reJe
JavaのGCって.NETのと比べてストップザワールドを起こしやすいし
値型を定義できないしジェネリックも飾りでボックス化が発生しまくるからゴミも多発しやすい
インデックスの更新ってほんとにそんなものがボトルネックになったことあるのか?
知りもしない調べもしない測りもしない
値型を定義できないしジェネリックも飾りでボックス化が発生しまくるからゴミも多発しやすい
インデックスの更新ってほんとにそんなものがボトルネックになったことあるのか?
知りもしない調べもしない測りもしない
75アジェグ4倍 ◆4xAJeG.COM
2010/12/22(水) 13:32:07ID:msb7iRfo そんなものがボトルネックになったことあるのかって?
そういうリスクを未然に防ぐ作り方を心がけてるから、
知りもしないでいいし調べもしないでいいし測りもしないでいい。
おれがおれのやりかた。
そういうリスクを未然に防ぐ作り方を心がけてるから、
知りもしないでいいし調べもしないでいいし測りもしないでいい。
おれがおれのやりかた。
2010/12/22(水) 13:35:51ID:MbCuhdtT
本人がキチガイ認めて完結
2010/12/22(水) 16:16:47ID:87uiMMNX
なんだ、やっぱりキチガイが妄想を根拠にした俺理論で騒いでたのか。
通りで理詰めで説明しても通じないわけだ。
>必死に無駄な最適化をしている君は実に馬鹿だなぁ
>無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。
通りで理詰めで説明しても通じないわけだ。
>必死に無駄な最適化をしている君は実に馬鹿だなぁ
>無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。
2010/12/22(水) 18:35:42ID:1bNr51j3
調べも測りもしない上に使ってる言語はJava
思慮に値しない戯言だったって事だな
思慮に値しない戯言だったって事だな
79名前は開発中のものです。
2010/12/22(水) 18:52:03ID:YXiGsK9q それぞれを比較できる幾つかの数値的な根拠なりなんなりを出していない時点でどっちもどっち。
2010/12/22(水) 19:51:48ID:87uiMMNX
ID違うけどお前さん◆4xAJeG.COMの捨て台詞みたいな事言ってるな。
まぁ、実際に問題なくゲーム(Robot Game)が動くのが何よりの証拠。お前の目は節穴か。
まぁ、実際に問題なくゲーム(Robot Game)が動くのが何よりの証拠。お前の目は節穴か。
2010/12/22(水) 19:54:10ID:XMfWOza8
このスレはゲ製板を象徴するようなスレだな。ダウトだらけ。本当にコンスタントにゲーム作ってる人いるんかね。
2010/12/22(水) 20:01:53ID:4NXPbAbv
ここまでほとんどゲーム関係ないじゃん
純粋に.NETの知識としては特定の人以外はそんなに間違ってはいない
純粋に.NETの知識としては特定の人以外はそんなに間違ってはいない
2010/12/22(水) 20:03:19ID:Wg8SNA4z
ゲーム関係ないw。いらないなこんなスレ
84名前は開発中のものです。
2010/12/22(水) 20:08:02ID:YY2LjFIA C#の話題ならム板で事足りる。
最近の流れはヲチとしては面白い。
最近の流れはヲチとしては面白い。
2010/12/22(水) 20:15:47ID:MbCuhdtT
2010/12/22(水) 20:44:11ID:MbCuhdtT
俺より難しいことを知ってる奴はゲームなんか作ってない
はい これ繰り返し言ってみなさい
ね、 落ち着いたでしょ
はい これ繰り返し言ってみなさい
ね、 落ち着いたでしょ
2010/12/23(木) 01:28:50ID:OCYjdJoh
C#で作ることのメリットデメリットは実行速度・ライブラリと組みやすさってのはわかってるし、特に言語にまつわるできるできないもそんなにないし。
SlimDXやXNAの話題は専用スレもあるし、
このスレの価値はこれらのライブラリを比較することと、C++に根本的にない文法で実装した方法紹介ぐらいしかないような気がする。
SlimDXやXNAの話題は専用スレもあるし、
このスレの価値はこれらのライブラリを比較することと、C++に根本的にない文法で実装した方法紹介ぐらいしかないような気がする。
2010/12/23(木) 02:25:47ID:GtUoPrZH
yield return
Reflection.Assembly.LoadFrom
シリアライズ
効果
相手は死ぬ
Reflection.Assembly.LoadFrom
シリアライズ
効果
相手は死ぬ
2010/12/23(木) 07:11:33ID:7ot6aP0i
2010/12/23(木) 10:33:35ID:77raTIZw
まあ前はXNAのModelMeshCollectionなどの列挙子がクラスとして実装されてて
foreachでガベージが発生してパフォーマンスが落ちるとか騒がれてたくらいだからな
yieldも構造体じゃなくてクラスなのでwindowsではまず問題にならないけど360では問題になるのかも
foreachでガベージが発生してパフォーマンスが落ちるとか騒がれてたくらいだからな
yieldも構造体じゃなくてクラスなのでwindowsではまず問題にならないけど360では問題になるのかも
2010/12/23(木) 12:02:54ID:vF4GDpDy
vs2010だとC++でも文字列処理の塊みたいなプログラムだと
Debugで実行するとReleaseの1000倍以上遅くなった
Debugで実行すると30分たっても終わらないのに
Releaseで実行すると5秒もしないうちに終わったりする
C#も似たような面がある
Debugで実行すると不安になるぐらいおっそいの
でもReleaseで実行すると問題ないぐらい早く動くの
debugで実行して遅い遅いいってない?(って開発の妨げになることはなるけど)
Debugで実行するとReleaseの1000倍以上遅くなった
Debugで実行すると30分たっても終わらないのに
Releaseで実行すると5秒もしないうちに終わったりする
C#も似たような面がある
Debugで実行すると不安になるぐらいおっそいの
でもReleaseで実行すると問題ないぐらい早く動くの
debugで実行して遅い遅いいってない?(って開発の妨げになることはなるけど)
2010/12/23(木) 12:10:58ID:77raTIZw
文字列処理ならそうだろうけど、DirectX使ってるときはあまり感じないな
描画がボトルネックになってるとほとんど関係ない気が
描画がボトルネックになってるとほとんど関係ない気が
2010/12/23(木) 12:15:02ID:GtUoPrZH
94アジェグ4倍 ◆4xAJeG.COM
2010/12/23(木) 12:37:31ID:9G5RY3Zb 最近のゲームって、このように基礎知識がなってない連中が作ってるのか。
まあガベージコレクション自体、ソノヘンが欠けた技術者?の為の機能だからな。
まあガベージコレクション自体、ソノヘンが欠けた技術者?の為の機能だからな。
2010/12/23(木) 13:29:08ID:GtUoPrZH
痛々しいな
ツッコミが怖くて技意味のある発言ができなくなっとる
まぁ 嘘臭いからツッコまれるのだがw
ツッコミが怖くて技意味のある発言ができなくなっとる
まぁ 嘘臭いからツッコまれるのだがw
2010/12/23(木) 13:31:49ID:y5spn/N8
GC自体否定&ゲームに使ってる言語もJava
なのになぜC#スレにくるのか…
なのになぜC#スレにくるのか…
97アジェグ4倍 ◆4xAJeG.COM
2010/12/23(木) 14:17:35ID:9G5RY3Zb なにしろ今、開発に忙しいからね。
技術味のある発言なんて始めからしてないし。
new に関する話なんて基礎の基礎だから、
技術味なんてご大層なレベルじゃないもん。
技術味のある発言なんて始めからしてないし。
new に関する話なんて基礎の基礎だから、
技術味なんてご大層なレベルじゃないもん。
2010/12/23(木) 14:26:58ID:GtUoPrZH
俺より強い奴はみんなハメ
俺より強い奴はみんなチート
俺よりゲーム開発詳しい奴はみんなゲーム作ってない new
俺より強い奴はみんなチート
俺よりゲーム開発詳しい奴はみんなゲーム作ってない new
2010/12/23(木) 19:00:16ID:y5spn/N8
開発に忙しいなら尚更こなければ良いのに。
100名前は開発中のものです。
2010/12/24(金) 11:05:04ID:t+N1XtKX >>93
マイクロスレッドなら最初からそう書けよwアホかw
マイクロスレッドなら最初からそう書けよwアホかw
101名前は開発中のものです。
2010/12/24(金) 11:37:59ID:n1/ru3ep 煽るにも、俺の方が詳しいんだゼ
って事を書かないと
負け犬の遠吠えですぜ
って事を書かないと
負け犬の遠吠えですぜ
102名前は開発中のものです。
2010/12/24(金) 11:55:56ID:t+N1XtKX >yield return
>Reflection.Assembly.LoadFrom
>シリアライズ
>
>効果
>相手は死ぬ
>>93はこの並びにyield returnが入ってる理由の説明になってない。
yield returnはマイクロスレッドの事だって後付けにも程がある。後付けしたせいで「相手は死ぬ」との関連性が不明瞭になった。
最初から間違っていたのか、後付けしたために自己矛盾を抱えることになったのか、日本語が不自由だったため誤解を与えたのか。別にどれでもいいか。
>>101
俺は詳しくない。技術的には理解してても
あんまり上手く使いこなせてないから詳しいなら教えてほしい。
とは言っても設計に絡んだ事は自分で頑張るしかないだろうね。
>Reflection.Assembly.LoadFrom
>シリアライズ
>
>効果
>相手は死ぬ
>>93はこの並びにyield returnが入ってる理由の説明になってない。
yield returnはマイクロスレッドの事だって後付けにも程がある。後付けしたせいで「相手は死ぬ」との関連性が不明瞭になった。
最初から間違っていたのか、後付けしたために自己矛盾を抱えることになったのか、日本語が不自由だったため誤解を与えたのか。別にどれでもいいか。
>>101
俺は詳しくない。技術的には理解してても
あんまり上手く使いこなせてないから詳しいなら教えてほしい。
とは言っても設計に絡んだ事は自分で頑張るしかないだろうね。
103アジェグ4倍 ◆4xAJeG.COM
2010/12/24(金) 11:59:47ID:dJK+lbCf 技術のことはソースで語るんだよ。
104名前は開発中のものです。
2010/12/24(金) 12:03:36ID:t+N1XtKX105アジェグ4倍 ◆4xAJeG.COM
2010/12/24(金) 12:12:03ID:dJK+lbCf おれがここで言うレベルなど、
技術者なら当然知っているべき、基礎の基礎だからな。
前にも書いたが、価値なんていうほどのもんじゃない。
でも、それさえ知らんとなるとねぇ・・・
技術者なら当然知っているべき、基礎の基礎だからな。
前にも書いたが、価値なんていうほどのもんじゃない。
でも、それさえ知らんとなるとねぇ・・・
106名前は開発中のものです。
2010/12/24(金) 12:19:11ID:QYPADZMz もう無視でいいよね
>>102 C#をスクリプトっぽく使いたいんじゃね
yield returnをコルーチンとして使ってゲームのシナリオスクリプト書いたりしてて
そういうのはdllとして分離して動的に参照したいと
シリアライズはまあセーブに使うんだろう
ところでセーブってシリアライザ使うのが一般的なの?
XmlSerializerやDataContractSerializerはともかく、
他のはバージョン管理がうざいから嫌いなんだけど
>>102 C#をスクリプトっぽく使いたいんじゃね
yield returnをコルーチンとして使ってゲームのシナリオスクリプト書いたりしてて
そういうのはdllとして分離して動的に参照したいと
シリアライズはまあセーブに使うんだろう
ところでセーブってシリアライザ使うのが一般的なの?
XmlSerializerやDataContractSerializerはともかく、
他のはバージョン管理がうざいから嫌いなんだけど
107名前は開発中のものです。
2010/12/24(金) 12:21:34ID:n1/ru3ep C++にできないか、面倒くさくてやる気が起きない物が
3っつ並んでるのを
変に思い悩んじゃったんだね
うぜー
3っつ並んでるのを
変に思い悩んじゃったんだね
うぜー
108名前は開発中のものです。
2010/12/24(金) 13:06:13ID:t+N1XtKX109名前は開発中のものです。
2010/12/24(金) 13:26:19ID:n1/ru3ep いったい誰とたたかっているんだ
110名前は開発中のものです。
2010/12/24(金) 16:03:06ID:c59ct/TR 謎の組織だろjk
111名前は開発中のものです。
2010/12/25(土) 10:23:42ID:ekX5bmeQ 俺基礎の基礎分かってないからそういう話あるとありがたい
いろいろな考えあって勉強になる
いろいろな考えあって勉強になる
112名前は開発中のものです。
2010/12/26(日) 03:16:46ID:k+BPickK 今冬コミのカタログチェックしてたんだけど
もうXNAやらC#のゲームとか、普通に出回ってるな
で、ちょっとだけのつもりでリフレクしちゃったんだけ
2chで言われってる事は嘘ばっかりだな
嘘で去勢はるのにこんだけ熱心になるとか
マジキチガイだよお前ら
もうXNAやらC#のゲームとか、普通に出回ってるな
で、ちょっとだけのつもりでリフレクしちゃったんだけ
2chで言われってる事は嘘ばっかりだな
嘘で去勢はるのにこんだけ熱心になるとか
マジキチガイだよお前ら
113名前は開発中のものです。
2010/12/26(日) 10:43:37ID:KkuDmqCl え?2chってそれがデフォだろ?
114名前は開発中のものです。
2010/12/26(日) 10:46:25ID:hn07w6Cz >で、ちょっとだけのつもりでリフレクしちゃったんだけ
日本語でおk
日本語でおk
115名前は開発中のものです。
2010/12/26(日) 10:54:17ID:awOm0khx 確かに間違ってる奴はいるけど、どれが間違ってるか具体的に全部指摘してみてよ
そんなに難しいことはここまでひとつも書かれてないよ
そんなに難しいことはここまでひとつも書かれてないよ
116名前は開発中のものです。
2010/12/27(月) 03:34:23ID:vJm0vazk117名前は開発中のものです。
2010/12/27(月) 08:43:43ID:is3ZHvvL 痛々しいなコイツ
新しい話題がでてもこの一手先が読めない猿が
偉そうにオナニー講釈するだけで終わりだな
新しい話題がでてもこの一手先が読めない猿が
偉そうにオナニー講釈するだけで終わりだな
118名前は開発中のものです。
2010/12/27(月) 11:09:37ID:e7NS5L10 こういう罵りあいがあると、このスレの板的知名度も大分上がったんだなーとかふと思う。
このスレには、C#ゲームを現在のPCで動かすことを前提とした人と、XNAで動かすことも見越した人がまずいる。
それとは別に、流れがどういうスタンスか考えずにとりあえず持ってる知識で相手を否定したがる人が数名。
速度を過剰に云々語る人は、まぁ十中八苦アマチュアではないよなーとは思う。
まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。
あとこのスレやJava関連で語るのに適した話題として、データ構造やアルゴリズム設計なんかもあるかもね。
シーンをどう定義してどう管理してるとか、メニューを作るとか。
まぁここら辺はちゃんと仕様書がきってあって、変更されにくいポイントだと言う前提なら、ハードコードしてもいいんだが。というかさっさと最速で実装するべきだが。
・・・ん、背伸びしてレスしてもいいことないな・・・
みんなそんなことよりゲーム作ろうぜ
このスレには、C#ゲームを現在のPCで動かすことを前提とした人と、XNAで動かすことも見越した人がまずいる。
それとは別に、流れがどういうスタンスか考えずにとりあえず持ってる知識で相手を否定したがる人が数名。
速度を過剰に云々語る人は、まぁ十中八苦アマチュアではないよなーとは思う。
まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。
あとこのスレやJava関連で語るのに適した話題として、データ構造やアルゴリズム設計なんかもあるかもね。
シーンをどう定義してどう管理してるとか、メニューを作るとか。
まぁここら辺はちゃんと仕様書がきってあって、変更されにくいポイントだと言う前提なら、ハードコードしてもいいんだが。というかさっさと最速で実装するべきだが。
・・・ん、背伸びしてレスしてもいいことないな・・・
みんなそんなことよりゲーム作ろうぜ
119名前は開発中のものです。
2010/12/27(月) 11:39:22ID:e7NS5L10 流れぶったしたついでにぐぐれば出てくる内容を書いとこう。どれも読んだだけで実装したことないから勘違いしてたらよろ。
>yield return
本来は確かforcach文を実現するために使われる文法の1つ。
匿名メソッドとかラムダ式とかと似たような感覚で、主に既存の文法を省略表記できるように、とっぴな記述を実現できるようにしたやつらの一人。
列挙子あるいは反復子(英語だとイテレータだっけ?デザパタとかとは別で、C#の用語・文法に存在する)とよばれる、
特定の自作クラスをfreeach文で利用する可能にするための一連の記述内で登場する。
実際の動きがマイクロスレッドやファイバーと呼ばれる機構そのままを実現してる。
ゲーム屋はそういう用途で使いたいときに使うことも可能。自分はやったことないけど。
>Reflection関連
メタデータから強引にあれこれしたいときに使う。通常用途はプラグイン機能を実現するための機能。
ここら辺をうまく使うと、理論上C#プログラムのスクリプト言語にC#を選択できるみたいだけど、知らん。C#仮想マシンってそもそも簡単に使える状態で公開されてるの?
実現すればかなり有効な気はしないでもないが、動的コードの読み込みと再起動を実現したいためにスクリプトを使う場合は、情報の多いLua仮想マシンを利用する手段に落ち着く傾向ががが。
>yield return
本来は確かforcach文を実現するために使われる文法の1つ。
匿名メソッドとかラムダ式とかと似たような感覚で、主に既存の文法を省略表記できるように、とっぴな記述を実現できるようにしたやつらの一人。
列挙子あるいは反復子(英語だとイテレータだっけ?デザパタとかとは別で、C#の用語・文法に存在する)とよばれる、
特定の自作クラスをfreeach文で利用する可能にするための一連の記述内で登場する。
実際の動きがマイクロスレッドやファイバーと呼ばれる機構そのままを実現してる。
ゲーム屋はそういう用途で使いたいときに使うことも可能。自分はやったことないけど。
>Reflection関連
メタデータから強引にあれこれしたいときに使う。通常用途はプラグイン機能を実現するための機能。
ここら辺をうまく使うと、理論上C#プログラムのスクリプト言語にC#を選択できるみたいだけど、知らん。C#仮想マシンってそもそも簡単に使える状態で公開されてるの?
実現すればかなり有効な気はしないでもないが、動的コードの読み込みと再起動を実現したいためにスクリプトを使う場合は、情報の多いLua仮想マシンを利用する手段に落ち着く傾向ががが。
120名前は開発中のものです。
2010/12/27(月) 11:55:53ID:M20BTjY4 >C#プログラムのスクリプト言語にC#を選択できる
現状では無理がある。一度読み込んだらアンロードできないからAppDomainを分けない限りメモリリークする。
CLRには、ILを動的に生成して実行できて生成されたコードはGC対象になるという
LCGと呼ばれるとっても便利な機能があって
IronPythonなどはそれを使ってるから問題ないんだけど、C#コンパイラは対応してない。
現状では無理がある。一度読み込んだらアンロードできないからAppDomainを分けない限りメモリリークする。
CLRには、ILを動的に生成して実行できて生成されたコードはGC対象になるという
LCGと呼ばれるとっても便利な機能があって
IronPythonなどはそれを使ってるから問題ないんだけど、C#コンパイラは対応してない。
121名前は開発中のものです。
2010/12/28(火) 00:15:05ID:w6osm0oX で、具体的にどれがどう間違ってんの?w
122名前は開発中のものです。
2010/12/28(火) 01:48:16ID:RS4PyatJ 首尾一貫して.NET CLRは十分高速だから、無駄な最適化の時間をゲーム開発に使えよ って話だろ。
×XNAで動かす/○XNAで作ってXbox360で動かす なら頑張ってGC抑制するしかないってのもずっと上の方で結論出てるじゃん。
ぐぐれば出てくる基礎的な話で、知ってるからといって威張れるような話ではない。でも知らずに書くと上の例のように周りから笑われてしまう。その程度の話。
>まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。
Javaで作ってると主張してるのに、newがmallocと思ってて、ListのAddとRemoveで都度長さが変わると思ってるJavaの基礎の基礎ができてない人が
間違った知識で講釈垂れ流そうとしたあたりから話がおかしくなった。
>このスレの板的知名度も大分上がったんだなーとかふと思う。
Part1の過疎っぷりを思うと胸が熱くなるな。
みんなそんなことよりゲーム作ろうぜ
×XNAで動かす/○XNAで作ってXbox360で動かす なら頑張ってGC抑制するしかないってのもずっと上の方で結論出てるじゃん。
ぐぐれば出てくる基礎的な話で、知ってるからといって威張れるような話ではない。でも知らずに書くと上の例のように周りから笑われてしまう。その程度の話。
>まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。
Javaで作ってると主張してるのに、newがmallocと思ってて、ListのAddとRemoveで都度長さが変わると思ってるJavaの基礎の基礎ができてない人が
間違った知識で講釈垂れ流そうとしたあたりから話がおかしくなった。
>このスレの板的知名度も大分上がったんだなーとかふと思う。
Part1の過疎っぷりを思うと胸が熱くなるな。
みんなそんなことよりゲーム作ろうぜ
123名前は開発中のものです。
2010/12/28(火) 04:11:28ID:kmbjQwMU■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★3 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に ★2 [ぐれ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★4 [ニョキニョキ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 首相就任1か月、目立つ高市流「スピード」「独自性」…発言の率直さで危うさも [蚤の市★]
- 防衛費増額「賛成」62・8% 「反対」32・2%を大きく上回る 賛成「18~29歳で8割」世代差あらわ 産経FNN合同世論調査 ★3 [尺アジ★]
- 【実況】博衣こよりのえちえち朝こよ🧪★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】小野田紀美さん、宇宙人みたいな服を着てしまう…また、そのことを突っ込まれブチ切れ中www [856698234]
- お前らっていつもここにいるよな
- 🏡
- ホロライブ、上場企業なのに故人を悪質ネタにして炎上 [329329848]
