2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C# C# C♯ でゲームを作ろう Part2

1 :名前は開発中のものです。:2010/11/21(日) 09:52:59 ID:wlCDMEbr.net
C#でゲームを作ろうと思う人が情報を交換するためのスレです。
テーマはアクション、パズル、RPG等なんでもOK


C#ゲーム製作@wiki
http://www21.atwiki.jp/csharpgamedev/



前スレ
C# C# C♯ でゲームを作ろう Part1
http://hibari.2ch.net/test/read.cgi/gamedev/1212989813/

28 :名前は開発中のものです。:2010/12/16(木) 19:07:42 ID:kONXhBxi.net
>>27
何がどうダメなのか具体的に

29 :名前は開発中のものです。:2010/12/17(金) 00:44:40 ID:1SX4G+z6.net
動かすターゲットによって目標とする最適化の程度は異なる。

.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にどのくらいのペースで積まれるかによって上限が決まるので、
プロファイルをとってヒープに積まれたインスタンスの生成元を調べて、最適化の効果が大きく簡単に改善できる個所から手を入れましょう。

これ以上の最適化は手段と目的が逆転するが大丈夫か?

30 :名前は開発中のものです。:2010/12/17(金) 00:52:07 ID:zbyqlefy.net
SwapArrayやRingBufferを使えばforeachできない

これはIEnumeratorを吐く関数を作ればいい

31 :名前は開発中のものです。:2010/12/18(土) 02:37:41 ID:jHzAZ+Pm.net
みんなすげえよく知ってるな。どうしても速度がほしくなったらここら辺のレスを元に掘り下げることができそうだ。サンクス

32 :名前は開発中のものです。:2010/12/18(土) 17:03:01 ID:OVvsO5Q5.net
Winではとりあえず毎フレームGen0GC入れとけば劇的に安定するよね

33 :名前は開発中のものです。:2010/12/18(土) 17:35:19 ID:UzXWUqS6.net
ちがうよ ぜんぜんちがうよ

34 :名前は開発中のものです。:2010/12/20(月) 00:09:43 ID:zPc622SO.net
XNAのロボットゲームが非会員でも落とせる
ようになっとる

結構ぬるぬる動く

35 :名前は開発中のものです。:2010/12/20(月) 13:50:11 ID:wBI9+2iY.net
C#でhtml文をパネルにしてくれるようなクラスってない?

36 :名前は開発中のものです。:2010/12/20(月) 14:32:52 ID:1s3rp6hX.net
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

37 :名前は開発中のものです。:2010/12/20(月) 14:38:54 ID:wBI9+2iY.net
>>36
どれが使えるかわからんから、いろいろ調べてみるよ
ありがとう

38 :名前は開発中のものです。:2010/12/20(月) 15:55:15 ID:zPc622SO.net
>>36
XNAの有料チュートリアルだった
補完のあるボーンアニメーションやパーティクル
木構造のデータ管理、AIなどが一通りそろっている
割と平易
XNAやC#以外でも使えると思われ

なにより軽い

39 :名前は開発中のものです。:2010/12/20(月) 19:06:39 ID:zPc622SO.net
ttp://www9.uploda.tv/v/uptv0001083.png
C#を使っているために処理が重いのは
このグラフの左端のたった平均2msの部分

↑の人達はこの処理が重いからC#はダメだ(笑)
とか宣っていたんだから

今どんな気持ち?
        宦Q__宦@  
    ♪   | ノ ⌒  ⌒ヽハッ
        /  (●)  (●)
       |     ( _●_) ミ
 ___ 彡     |忿 ミ
 ヽ___       ヽノ、`\
       /       /ヽ <
      /   

40 :名前は開発中のものです。:2010/12/20(月) 19:27:22 ID:utdIzmpZ.net
>39
そのPCのスペックは?


41 :名前は開発中のものです。:2010/12/20(月) 19:50:10 ID:zPc622SO.net
何故自分の環境で動かさないのか?
宗教的理由でC#のソースをコンパイルすると死ぬんですね
わかります

P4 2.80
メモリ 1G

42 :名前は開発中のものです。:2010/12/20(月) 19:54:13 ID:Vc2LMPvW.net
ていうか、それをC++で実装した場合との比較はないの?

43 :名前は開発中のものです。:2010/12/20(月) 20:00:01 ID:zPc622SO.net
C++の方が速い
あたり前だ
なんで実装してまで調べる必要があるんだ?

頭の中のお花畑ぐあいをちょっと聞かせ
てくれないか?


44 :名前は開発中のものです。:2010/12/20(月) 20:40:29 ID:1s3rp6hX.net
ちょっと落ち着けw

C#自体の速度は最適化してないC++並みって知らない人は置いとくとして
意図しないタイミングでのGCは避けるべきだけど、(PCでは)極端に忌避する必要はないって話に落ち着いてたでしょ

>>38
ロボットゲームってまんまRobot Gameなのかw
試してみるthx

45 :名前は開発中のものです。:2010/12/20(月) 20:50:42 ID:czZepkU0.net
GCについてどうC++と比較するつもりなんだ?

46 :名前は開発中のものです。:2010/12/20(月) 21:49:42 ID:1s3rp6hX.net
newはC++より一桁速い。それは何故か
ってとこからC#のメモリ管理について延々と語れるけど、それをやるには掲示板は狭すぎる。

世代別GCは一般に思われているより高速。
(何倍も時間かけて)C++で作ればC++の方が早い。
どの言語で作っても結局は描画にかかる時間が大半を占める。

47 :名前は開発中のものです。:2010/12/21(火) 01:12:58 ID:HIfOIzlr.net
DirectXの情報がどうもないと思ったらXNAってもんがあるのかw
C#+DirectXで作っちゃった・・・

でも、苦労はあんまり変わらないような・・・

48 :名前は開発中のものです。:2010/12/21(火) 01:20:04 ID:HIfOIzlr.net
と思ったら結構臭いな>XNA
C#は混沌としてるな

49 :名前は開発中のものです。:2010/12/21(火) 01:48:06 ID:7nmvHqyX.net
薄いwrapperが欲しいならSlimDX

50 :名前は開発中のものです。:2010/12/21(火) 01:50:42 ID:IUyb5141.net
2011年になろうかと言うときに
Managed Xとか…
釣りやなw

C++/CLIでツール作成ならまだ疑う余地
もあったけど

51 :名前は開発中のものです。:2010/12/21(火) 06:58:33 ID:QhXoH/nz.net
あげておくか

52 :アジェグ4倍 ◆4xAJeG.COM :2010/12/21(火) 09:16:03 ID:kS4ld1Hr.net
いや、だから、タイミングや状態もわきまえずnewする時点で、
言語がなんであろうと以下略。


53 :名前は開発中のものです。:2010/12/21(火) 13:04:31 ID:589aNUur.net
そうでもない
インタプリタが遅くてnew自体のコストなんか誤差になるような言語処理系は
スクリプト言語ではわりとある

54 :名前は開発中のものです。:2010/12/21(火) 17:39:24 ID:7nmvHqyX.net
いや、だから、タイミングや状態もわきまえずnewしていいなんてどこに書いてあるよ?
やっちゃダメ>>26と、管理されていればやってもいい は全然違う。
それだけの開発コストを投入するに値する根拠ってあるの?

C#はインタプリタでもスクリプト言語でもない。
newのコストは誤差(C++より速い)の範囲内。動作速度はJITされるため一度動き出せば最適化していないC++並み。
で、GCのコストをどう見積もってどこまで対策するのかって話なんだが…

55 :アジェグ4倍 ◆4xAJeG.COM :2010/12/21(火) 20:24:12 ID:co1xIq2s.net
開発コストを投入するに値する根拠?

知ってると思うが、new ってのは mallocなんだぞ。
メモリの消費状況によっては、そこでスワッピングなどの
ディスクアクセスが発生する恐れもあるんだからさ。

で、ガベージが作動すりゃ、freeなわけだから、
そこでまたディスク沙汰に、なりかねないわけだ。

ソノヘンがわかってりゃ、例えば敵の弾の発生時にnewなんて
恐ろしくて恐ろしくて・・・
描画時のnew Color とかnew Fontなんてのにも注意しないと。

だから new は、ループに入る前とか、別のスレッドでやるとかがセオリー。

56 :名前は開発中のものです。:2010/12/21(火) 21:42:50 ID:ByL+MADM.net
C#の絶対性能がC++より低いなら、その低い性能で足りる範囲でゲームデザインすりゃ済む話だろう。
見積もりを検討するなら、プロトタイプ組んで実測すりゃ済む話だろ。
全部アセンブリで書くならまだしも、C#やらC++で書いたゲームのソースコードだけ見て、事前に精密な見積出せるわけない。
そんなもん、言語仕様以前のレベルの話だ。
なのに、事前に脳内で結果が分かって当然って前提を置こうとしている時点で、>>54は全くゲームのコード書いたことが無い、脳内クリエイターかなんかなんだろうよ。
どうせ、C#の方が簡単そうだけど絶対性能で負けるなら何となく格好悪いから使いたくない、とかその程度の発想でウダウダ食い下がってるだけだと思うぞ。

57 :名前は開発中のものです。:2010/12/21(火) 21:55:38 ID:7nmvHqyX.net
>>55
G0/G1ヒープがスワップアウトってどんな環境だw

敵の玉やFontなんて真っ先に
>最適化の効果が大きく簡単に改善できる個所
として槍玉にあがるとこじゃん。

プロファイルに基づかない最適化は害でしかない。
まぁ、終わりのない自己満足の最適化ゲームやりたいなら止めないけど

>>56
>事前に脳内で結果が分かって当然
主張しているのは真逆の事。誤読乙

58 :名前は開発中のものです。:2010/12/21(火) 21:59:22 ID:XhDhH52e.net
昔のJavaスレをみるようだ歴史は繰り返すなw

59 :アジェグ4倍 ◆4xAJeG.COM :2010/12/21(火) 23:38:07 ID:co1xIq2s.net
まあ、要するに、newの使いどころをわきまえてりゃ、
ガベージがドーノコーノなんて話が出てくる必要もないわけで。

変なタイミングでnewするから、変なタイミングでガベージが動くんだぞ。

最初に書いたように、フレームループの中でnewしないように注意なんてのは、
プロファイルとやらがドーコー言う以前の、技術の基礎だからな。


60 :名前は開発中のものです。:2010/12/21(火) 23:50:24 ID:IUyb5141.net
上のRobotGameでもふつうにnewしてGCしてる

クラス設計 特に継承を使った設計が
頭の中にないと なんでnew禁止が辛いのか
理解できないので
会話にならない

61 :名前は開発中のものです。:2010/12/22(水) 00:17:59 ID:MbCuhdtT.net
俺がゲーム開発のノウハウ教えてやんよ
と、息巻いてる奴に限って
英語コンテンツは一切目をとうさず
シェーダーも使えない
悲しい現実

62 :名前は開発中のものです。:2010/12/22(水) 01:02:04 ID:lDvG2hsH.net
>>61
あんなすごい技術を使ってても可愛い女の子の1人も出てこない向こうのゲームってなんなんだろうな?
って俺はいつも思うんだ

63 :名前は開発中のものです。:2010/12/22(水) 01:47:45 ID:87uiMMNX.net
>>59
newの使いどころをわきまえる為に、.NET CLRのGCの特性を理解して使いましょうって話をしてるんだよ。
必死に無駄な最適化をしている君は実に馬鹿だなぁ
無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。

64 :名前は開発中のものです。:2010/12/22(水) 03:50:48 ID:jdovR8NX.net
>>62
脳が腐ってる気もするけど、同意。なんだろう、ロリコンって少ないのか?他の国じゃ。

65 :アジェグ4倍 ◆4xAJeG.COM :2010/12/22(水) 10:24:58 ID:msb7iRfo.net
new と同様に注意しなきゃならんのは、Listで定義した配列のAddとRemoveだな。
多くの場合、Addの直前にnewしてるんだろうけど。

フレームループの中で有効件数が変わるような配列(敵の弾とか)は、
最大値を設けてあらかじめその数だけ取っとくなりしないと。


66 :名前は開発中のものです。:2010/12/22(水) 10:56:22 ID:1bNr51j3.net
newのコストとかGCのコストなんてゲーム作ってくうちにネックに成ったら考えれば良い話。
簡単なパズルゲー、ノベルゲーなら多少フレーム落ちてもたいして問題ないし。

67 :名前は開発中のものです。:2010/12/22(水) 11:46:54 ID:8WY0reJe.net
>>65
List<T>の内部配列のサイズはオーバーするたびに2倍になる。Removeされても縮小は行われない。
なので、そのせいでフレームレートが落ちるようなことは100%ありえない。

68 :アジェグ4倍 ◆4xAJeG.COM :2010/12/22(水) 12:18:18 ID:msb7iRfo.net
縮小は行われなくても、インデックスの更新などがあるからねぇ。
まあ、パズルやノベルなら、確かにさほど気にせんでもいいが。

おれが今作ってるのは音楽ゲー系(Javaだけど)だから、
タイミングにはイロイロとシビアでねぇ。


69 :名前は開発中のものです。:2010/12/22(水) 12:20:16 ID:8WY0reJe.net
指数関数的に内部配列を拡張していって縮小はしないのはC++のvectorやJavaのArrayListなんかでも見られる
ごく一般的な動的配列の実装なんだけどな
上でもnew ColorがGCに影響するとかnewがmallocとか見当違いのこと言ってるし

70 :アジェグ4倍 ◆4xAJeG.COM :2010/12/22(水) 12:45:03 ID:msb7iRfo.net
CPUの進化ってすごいんだねぇ。

ここの連中のおれへの反論を見ると、
そう思っちまうねぇ。


71 :名前は開発中のものです。:2010/12/22(水) 12:59:52 ID:a/rzg/Ro.net
もうその話題は終わったよ

72 :名前は開発中のものです。:2010/12/22(水) 13:11:33 ID:MbCuhdtT.net
音ゲにNPC AIもステージ設計も無いもんな

むしろ事前初期化ぐらいしかやる事なさそ


73 :アジェグ4倍 ◆4xAJeG.COM :2010/12/22(水) 13:21:41 ID:msb7iRfo.net
おれの場合、MIDIを使って、既存のデータで遊べるようにしてるから、
そのMIDI関連の調査には、チョットばかし苦労したねぇ。
最近はソノヘンの資料が少なくてねぇ。

何とかならんのかねぇ、あの叩いてから音が出るまでの遅延。
マックならそれほどひどくもないんだが・・・


74 :名前は開発中のものです。:2010/12/22(水) 13:21:53 ID:8WY0reJe.net
JavaのGCって.NETのと比べてストップザワールドを起こしやすいし
値型を定義できないしジェネリックも飾りでボックス化が発生しまくるからゴミも多発しやすい
インデックスの更新ってほんとにそんなものがボトルネックになったことあるのか?
知りもしない調べもしない測りもしない

75 :アジェグ4倍 ◆4xAJeG.COM :2010/12/22(水) 13:32:07 ID:msb7iRfo.net
そんなものがボトルネックになったことあるのかって?

そういうリスクを未然に防ぐ作り方を心がけてるから、
知りもしないでいいし調べもしないでいいし測りもしないでいい。

おれがおれのやりかた。


76 :名前は開発中のものです。:2010/12/22(水) 13:35:51 ID:MbCuhdtT.net
本人がキチガイ認めて完結

77 :名前は開発中のものです。:2010/12/22(水) 16:16:47 ID:87uiMMNX.net
なんだ、やっぱりキチガイが妄想を根拠にした俺理論で騒いでたのか。
通りで理詰めで説明しても通じないわけだ。

>必死に無駄な最適化をしている君は実に馬鹿だなぁ
>無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。

78 :名前は開発中のものです。:2010/12/22(水) 18:35:42 ID:1bNr51j3.net
調べも測りもしない上に使ってる言語はJava
思慮に値しない戯言だったって事だな

79 :名前は開発中のものです。:2010/12/22(水) 18:52:03 ID:YXiGsK9q.net
それぞれを比較できる幾つかの数値的な根拠なりなんなりを出していない時点でどっちもどっち。

80 :名前は開発中のものです。:2010/12/22(水) 19:51:48 ID:87uiMMNX.net
ID違うけどお前さん◆4xAJeG.COMの捨て台詞みたいな事言ってるな。
まぁ、実際に問題なくゲーム(Robot Game)が動くのが何よりの証拠。お前の目は節穴か。

81 :名前は開発中のものです。:2010/12/22(水) 19:54:10 ID:XMfWOza8.net
このスレはゲ製板を象徴するようなスレだな。ダウトだらけ。本当にコンスタントにゲーム作ってる人いるんかね。

82 :名前は開発中のものです。:2010/12/22(水) 20:01:53 ID:4NXPbAbv.net
ここまでほとんどゲーム関係ないじゃん
純粋に.NETの知識としては特定の人以外はそんなに間違ってはいない

83 :名前は開発中のものです。:2010/12/22(水) 20:03:19 ID:Wg8SNA4z.net
ゲーム関係ないw。いらないなこんなスレ

84 :名前は開発中のものです。:2010/12/22(水) 20:08:02 ID:YY2LjFIA.net
C#の話題ならム板で事足りる。
最近の流れはヲチとしては面白い。

85 :名前は開発中のものです。:2010/12/22(水) 20:15:47 ID:MbCuhdtT.net
>>84
何の話しする?
どうして いきなり興奮してるの?

教えて 84

86 :名前は開発中のものです。:2010/12/22(水) 20:44:11 ID:MbCuhdtT.net
俺より難しいことを知ってる奴はゲームなんか作ってない

はい これ繰り返し言ってみなさい

ね、 落ち着いたでしょ

87 :名前は開発中のものです。:2010/12/23(木) 01:28:50 ID:OCYjdJoh.net
C#で作ることのメリットデメリットは実行速度・ライブラリと組みやすさってのはわかってるし、特に言語にまつわるできるできないもそんなにないし。
SlimDXやXNAの話題は専用スレもあるし、
このスレの価値はこれらのライブラリを比較することと、C++に根本的にない文法で実装した方法紹介ぐらいしかないような気がする。

88 :名前は開発中のものです。:2010/12/23(木) 02:25:47 ID:GtUoPrZH.net
yield return
Reflection.Assembly.LoadFrom
シリアライズ

効果
相手は死ぬ

89 :名前は開発中のものです。:2010/12/23(木) 07:11:33 ID:7ot6aP0i.net
何でイテレータがそこに入ってるの?
配列へのforeach(最速)に比べりゃ遅いが
コンパイラが生成するクラスと動作を知ってれば大したコストはないと分かりそうなもんだが

>>84>>87
こういう最適化絡みの取るに足らない罵り合いはム板じゃできんよ。
あっちでやったら"誤差の範囲"と一蹴されて終わってしまう。

90 :名前は開発中のものです。:2010/12/23(木) 10:33:35 ID:77raTIZw.net
まあ前はXNAのModelMeshCollectionなどの列挙子がクラスとして実装されてて
foreachでガベージが発生してパフォーマンスが落ちるとか騒がれてたくらいだからな
yieldも構造体じゃなくてクラスなのでwindowsではまず問題にならないけど360では問題になるのかも

91 :名前は開発中のものです。:2010/12/23(木) 12:02:54 ID:vF4GDpDy.net
vs2010だとC++でも文字列処理の塊みたいなプログラムだと
Debugで実行するとReleaseの1000倍以上遅くなった
Debugで実行すると30分たっても終わらないのに
Releaseで実行すると5秒もしないうちに終わったりする

C#も似たような面がある
Debugで実行すると不安になるぐらいおっそいの
でもReleaseで実行すると問題ないぐらい早く動くの

debugで実行して遅い遅いいってない?(って開発の妨げになることはなるけど)

92 :名前は開発中のものです。:2010/12/23(木) 12:10:58 ID:77raTIZw.net
文字列処理ならそうだろうけど、DirectX使ってるときはあまり感じないな
描画がボトルネックになってるとほとんど関係ない気が

93 :名前は開発中のものです。:2010/12/23(木) 12:15:02 ID:GtUoPrZH.net
>>89,90
マイクロスレッド yield return
でぐぐるとよい

良かったね 知らない事がひとつ減って

>>91
音ゲーくんのことはもういいよ
音ゲーってそんなもんだ

94 :アジェグ4倍 ◆4xAJeG.COM :2010/12/23(木) 12:37:31 ID:9G5RY3Zb.net
最近のゲームって、このように基礎知識がなってない連中が作ってるのか。
まあガベージコレクション自体、ソノヘンが欠けた技術者?の為の機能だからな。


95 :名前は開発中のものです。:2010/12/23(木) 13:29:08 ID:GtUoPrZH.net
痛々しいな
ツッコミが怖くて技意味のある発言ができなくなっとる

まぁ 嘘臭いからツッコまれるのだがw

96 :名前は開発中のものです。:2010/12/23(木) 13:31:49 ID:y5spn/N8.net
GC自体否定&ゲームに使ってる言語もJava
なのになぜC#スレにくるのか…

97 :アジェグ4倍 ◆4xAJeG.COM :2010/12/23(木) 14:17:35 ID:9G5RY3Zb.net
なにしろ今、開発に忙しいからね。
技術味のある発言なんて始めからしてないし。

new に関する話なんて基礎の基礎だから、
技術味なんてご大層なレベルじゃないもん。


98 :名前は開発中のものです。:2010/12/23(木) 14:26:58 ID:GtUoPrZH.net
俺より強い奴はみんなハメ
俺より強い奴はみんなチート

俺よりゲーム開発詳しい奴はみんなゲーム作ってない  new

99 :名前は開発中のものです。:2010/12/23(木) 19:00:16 ID:y5spn/N8.net
開発に忙しいなら尚更こなければ良いのに。

100 :名前は開発中のものです。:2010/12/24(金) 11:05:04 ID:t+N1XtKX.net
>>93
マイクロスレッドなら最初からそう書けよwアホかw

101 :名前は開発中のものです。:2010/12/24(金) 11:37:59 ID:n1/ru3ep.net
煽るにも、俺の方が詳しいんだゼ
って事を書かないと
負け犬の遠吠えですぜ

102 :名前は開発中のものです。:2010/12/24(金) 11:55:56 ID:t+N1XtKX.net
>yield return
>Reflection.Assembly.LoadFrom
>シリアライズ
>
>効果
>相手は死ぬ
>>93はこの並びにyield returnが入ってる理由の説明になってない。
yield returnはマイクロスレッドの事だって後付けにも程がある。後付けしたせいで「相手は死ぬ」との関連性が不明瞭になった。
最初から間違っていたのか、後付けしたために自己矛盾を抱えることになったのか、日本語が不自由だったため誤解を与えたのか。別にどれでもいいか。

>>101
俺は詳しくない。技術的には理解してても
あんまり上手く使いこなせてないから詳しいなら教えてほしい。
とは言っても設計に絡んだ事は自分で頑張るしかないだろうね。

103 :アジェグ4倍 ◆4xAJeG.COM :2010/12/24(金) 11:59:47 ID:dJK+lbCf.net
技術のことはソースで語るんだよ。


104 :名前は開発中のものです。:2010/12/24(金) 12:03:36 ID:t+N1XtKX.net
>>103
つまり自分の書き込みには技術的価値は無い と
分かってるじゃん。

105 :アジェグ4倍 ◆4xAJeG.COM :2010/12/24(金) 12:12:03 ID:dJK+lbCf.net
おれがここで言うレベルなど、
技術者なら当然知っているべき、基礎の基礎だからな。
前にも書いたが、価値なんていうほどのもんじゃない。

でも、それさえ知らんとなるとねぇ・・・


106 :名前は開発中のものです。:2010/12/24(金) 12:19:11 ID:QYPADZMz.net
もう無視でいいよね
>>102 C#をスクリプトっぽく使いたいんじゃね
yield returnをコルーチンとして使ってゲームのシナリオスクリプト書いたりしてて
そういうのはdllとして分離して動的に参照したいと
シリアライズはまあセーブに使うんだろう

ところでセーブってシリアライザ使うのが一般的なの?
XmlSerializerやDataContractSerializerはともかく、
他のはバージョン管理がうざいから嫌いなんだけど

107 :名前は開発中のものです。:2010/12/24(金) 12:21:34 ID:n1/ru3ep.net
C++にできないか、面倒くさくてやる気が起きない物が
3っつ並んでるのを
変に思い悩んじゃったんだね

うぜー

108 :名前は開発中のものです。:2010/12/24(金) 13:06:13 ID:t+N1XtKX.net
突っ込みどころが多すぎて、無視するのが勿体ないような気分に…

>>107
誰かと勘違いしてるだろw

109 :名前は開発中のものです。:2010/12/24(金) 13:26:19 ID:n1/ru3ep.net
いったい誰とたたかっているんだ

110 :名前は開発中のものです。:2010/12/24(金) 16:03:06 ID:c59ct/TR.net
謎の組織だろjk

111 :名前は開発中のものです。:2010/12/25(土) 10:23:42 ID:ekX5bmeQ.net
俺基礎の基礎分かってないからそういう話あるとありがたい
いろいろな考えあって勉強になる

112 :名前は開発中のものです。:2010/12/26(日) 03:16:46 ID:k+BPickK.net
今冬コミのカタログチェックしてたんだけど
もうXNAやらC#のゲームとか、普通に出回ってるな

で、ちょっとだけのつもりでリフレクしちゃったんだけ
2chで言われってる事は嘘ばっかりだな

嘘で去勢はるのにこんだけ熱心になるとか
マジキチガイだよお前ら

113 :名前は開発中のものです。:2010/12/26(日) 10:43:37 ID:KkuDmqCl.net
え?2chってそれがデフォだろ?

114 :名前は開発中のものです。:2010/12/26(日) 10:46:25 ID:hn07w6Cz.net
>で、ちょっとだけのつもりでリフレクしちゃったんだけ
日本語でおk

115 :名前は開発中のものです。:2010/12/26(日) 10:54:17 ID:awOm0khx.net
確かに間違ってる奴はいるけど、どれが間違ってるか具体的に全部指摘してみてよ
そんなに難しいことはここまでひとつも書かれてないよ

116 :名前は開発中のものです。:2010/12/27(月) 03:34:23 ID:vJm0vazk.net
基礎の基礎を明らかに間違ってる奴が約一名居る。
お前らと言うからには他にも沢山あるんだろうが、具体的にどれがどう間違ってんの?w

>>114
リフレクするって言い方は馬鹿っぽいと思うけど、普通に考えて.NET Reflectorだろ。.NET使った開発での定番ツールの一つ。
>>112が平気でライセンス違反するような屑だという疑惑が出てくるが、そんな事は別にどうでもいいや。

117 :名前は開発中のものです。:2010/12/27(月) 08:43:43 ID:is3ZHvvL.net
痛々しいなコイツ
新しい話題がでてもこの一手先が読めない猿が
偉そうにオナニー講釈するだけで終わりだな

118 :名前は開発中のものです。:2010/12/27(月) 11:09:37 ID:e7NS5L10.net
こういう罵りあいがあると、このスレの板的知名度も大分上がったんだなーとかふと思う。
このスレには、C#ゲームを現在のPCで動かすことを前提とした人と、XNAで動かすことも見越した人がまずいる。
それとは別に、流れがどういうスタンスか考えずにとりあえず持ってる知識で相手を否定したがる人が数名。

速度を過剰に云々語る人は、まぁ十中八苦アマチュアではないよなーとは思う。
まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。

あとこのスレやJava関連で語るのに適した話題として、データ構造やアルゴリズム設計なんかもあるかもね。
シーンをどう定義してどう管理してるとか、メニューを作るとか。
まぁここら辺はちゃんと仕様書がきってあって、変更されにくいポイントだと言う前提なら、ハードコードしてもいいんだが。というかさっさと最速で実装するべきだが。

・・・ん、背伸びしてレスしてもいいことないな・・・

みんなそんなことよりゲーム作ろうぜ

119 :名前は開発中のものです。:2010/12/27(月) 11:39:22 ID:e7NS5L10.net
流れぶったしたついでにぐぐれば出てくる内容を書いとこう。どれも読んだだけで実装したことないから勘違いしてたらよろ。
>yield return
本来は確かforcach文を実現するために使われる文法の1つ。
匿名メソッドとかラムダ式とかと似たような感覚で、主に既存の文法を省略表記できるように、とっぴな記述を実現できるようにしたやつらの一人。
列挙子あるいは反復子(英語だとイテレータだっけ?デザパタとかとは別で、C#の用語・文法に存在する)とよばれる、
特定の自作クラスをfreeach文で利用する可能にするための一連の記述内で登場する。
実際の動きがマイクロスレッドやファイバーと呼ばれる機構そのままを実現してる。
ゲーム屋はそういう用途で使いたいときに使うことも可能。自分はやったことないけど。

>Reflection関連
メタデータから強引にあれこれしたいときに使う。通常用途はプラグイン機能を実現するための機能。
ここら辺をうまく使うと、理論上C#プログラムのスクリプト言語にC#を選択できるみたいだけど、知らん。C#仮想マシンってそもそも簡単に使える状態で公開されてるの?
実現すればかなり有効な気はしないでもないが、動的コードの読み込みと再起動を実現したいためにスクリプトを使う場合は、情報の多いLua仮想マシンを利用する手段に落ち着く傾向ががが。


120 :名前は開発中のものです。:2010/12/27(月) 11:55:53 ID:M20BTjY4.net
>C#プログラムのスクリプト言語にC#を選択できる
現状では無理がある。一度読み込んだらアンロードできないからAppDomainを分けない限りメモリリークする。
CLRには、ILを動的に生成して実行できて生成されたコードはGC対象になるという
LCGと呼ばれるとっても便利な機能があって
IronPythonなどはそれを使ってるから問題ないんだけど、C#コンパイラは対応してない。

121 :名前は開発中のものです。:2010/12/28(火) 00:15:05 ID:w6osm0oX.net
で、具体的にどれがどう間違ってんの?w

122 :名前は開発中のものです。:2010/12/28(火) 01:48:16 ID:RS4PyatJ.net
首尾一貫して.NET CLRは十分高速だから、無駄な最適化の時間をゲーム開発に使えよ って話だろ。
×XNAで動かす/○XNAで作ってXbox360で動かす なら頑張ってGC抑制するしかないってのもずっと上の方で結論出てるじゃん。
ぐぐれば出てくる基礎的な話で、知ってるからといって威張れるような話ではない。でも知らずに書くと上の例のように周りから笑われてしまう。その程度の話。

>まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。
Javaで作ってると主張してるのに、newがmallocと思ってて、ListのAddとRemoveで都度長さが変わると思ってるJavaの基礎の基礎ができてない人が
間違った知識で講釈垂れ流そうとしたあたりから話がおかしくなった。

>このスレの板的知名度も大分上がったんだなーとかふと思う。
Part1の過疎っぷりを思うと胸が熱くなるな。
みんなそんなことよりゲーム作ろうぜ

123 :名前は開発中のものです。:2010/12/28(火) 04:11:28 ID:kmbjQwMU.net
>>120
詳しい情報サンクス。
うふふ、うひゃひゃ寝る暇ねー。。。。また・・・また・・・体験版を刷らなきゃいけないのか・・・
リプレイの機構見直さないとうまく動かないや・・・

124 :名前は開発中のものです。:2010/12/29(水) 00:31:16 ID:FINczj2t.net
マイクロスレッドの実装例をWikiのTipsに追加してみた。
突っ込みがあったら容赦なくplz.

125 :名前は開発中のものです。:2010/12/29(水) 01:05:46 ID:OFv+y9dv.net
乙です
IEnumerableは途中で変更されない一連の動作をさせるには便利っぽいんだけど
どうも使い所が見つからないw

126 :名前は開発中のものです。:2010/12/31(金) 15:18:47 ID:VyXa73To.net
XNAで360のコントローラーを取得するのはわかるんだけど
プログラムから送信するってできる?
ボタンが押されていなくても、押した事にするという感じで。
getじゃなくてsetというイメージ。


127 :名前は開発中のものです。:2010/12/31(金) 15:30:12 ID:6eev3oNe.net
そういうことをしなくていいように設計する。
InputManagerみたいなクラスを作って、コントローラーの入力を直接取得するのはそのクラスだけにする。
他のクラスは常にInputManagerを経由して入力を取得するようにする。
そうしておけば、InputManagerを使って自由に入力を偽装できる。

128 :名前は開発中のものです。:2011/01/03(月) 23:59:18 ID:+Us08eHK.net
複雑な衝突判定とか必要なくて、
とりあえず自分で作ったポリゴンモデル動かしたいだけなんだけど、
DirectX + C++でやるのとXNAでやるのは生産性全然違うって認識でいいの?

総レス数 495
120 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200