- 1 名前:名前は開発中のものです。 mailto:sage [2010/11/21(日) 09:52:59 ID:wlCDMEbr]
- C#でゲームを作ろうと思う人が情報を交換するためのスレです。
テーマはアクション、パズル、RPG等なんでもOK C#ゲーム製作@wiki www21.atwiki.jp/csharpgamedev/ 前スレ C# C# C♯ でゲームを作ろう Part1 hibari.2ch.net/test/read.cgi/gamedev/1212989813/
- 45 名前:名前は開発中のものです。 mailto:sage [2010/12/20(月) 20:50:42 ID:czZepkU0]
- GCについてどうC++と比較するつもりなんだ?
- 46 名前:名前は開発中のものです。 mailto:sage [2010/12/20(月) 21:49:42 ID:1s3rp6hX]
- newはC++より一桁速い。それは何故か
ってとこからC#のメモリ管理について延々と語れるけど、それをやるには掲示板は狭すぎる。 世代別GCは一般に思われているより高速。 (何倍も時間かけて)C++で作ればC++の方が早い。 どの言語で作っても結局は描画にかかる時間が大半を占める。
- 47 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 01:12:58 ID:HIfOIzlr]
- DirectXの情報がどうもないと思ったらXNAってもんがあるのかw
C#+DirectXで作っちゃった・・・ でも、苦労はあんまり変わらないような・・・
- 48 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 01:20:04 ID:HIfOIzlr]
- と思ったら結構臭いな>XNA
C#は混沌としてるな
- 49 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 01:48:06 ID:7nmvHqyX]
- 薄いwrapperが欲しいならSlimDX
- 50 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 01:50:42 ID:IUyb5141]
- 2011年になろうかと言うときに
Managed Xとか… 釣りやなw C++/CLIでツール作成ならまだ疑う余地 もあったけど
- 51 名前:名前は開発中のものです。 [2010/12/21(火) 06:58:33 ID:QhXoH/nz]
- あげておくか
- 52 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/21(火) 09:16:03 ID:kS4ld1Hr]
- いや、だから、タイミングや状態もわきまえずnewする時点で、
言語がなんであろうと以下略。
- 53 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 13:04:31 ID:589aNUur]
- そうでもない
インタプリタが遅くてnew自体のコストなんか誤差になるような言語処理系は スクリプト言語ではわりとある
- 54 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 17:39:24 ID:7nmvHqyX]
- いや、だから、タイミングや状態もわきまえずnewしていいなんてどこに書いてあるよ?
やっちゃダメ>>26と、管理されていればやってもいい は全然違う。 それだけの開発コストを投入するに値する根拠ってあるの? C#はインタプリタでもスクリプト言語でもない。 newのコストは誤差(C++より速い)の範囲内。動作速度はJITされるため一度動き出せば最適化していないC++並み。 で、GCのコストをどう見積もってどこまで対策するのかって話なんだが…
- 55 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/21(火) 20:24:12 ID:co1xIq2s]
- 開発コストを投入するに値する根拠?
知ってると思うが、new ってのは mallocなんだぞ。 メモリの消費状況によっては、そこでスワッピングなどの ディスクアクセスが発生する恐れもあるんだからさ。 で、ガベージが作動すりゃ、freeなわけだから、 そこでまたディスク沙汰に、なりかねないわけだ。 ソノヘンがわかってりゃ、例えば敵の弾の発生時にnewなんて 恐ろしくて恐ろしくて・・・ 描画時のnew Color とかnew Fontなんてのにも注意しないと。 だから new は、ループに入る前とか、別のスレッドでやるとかがセオリー。
- 56 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 21:42:50 ID:ByL+MADM]
- C#の絶対性能がC++より低いなら、その低い性能で足りる範囲でゲームデザインすりゃ済む話だろう。
見積もりを検討するなら、プロトタイプ組んで実測すりゃ済む話だろ。 全部アセンブリで書くならまだしも、C#やらC++で書いたゲームのソースコードだけ見て、事前に精密な見積出せるわけない。 そんなもん、言語仕様以前のレベルの話だ。 なのに、事前に脳内で結果が分かって当然って前提を置こうとしている時点で、>>54は全くゲームのコード書いたことが無い、脳内クリエイターかなんかなんだろうよ。 どうせ、C#の方が簡単そうだけど絶対性能で負けるなら何となく格好悪いから使いたくない、とかその程度の発想でウダウダ食い下がってるだけだと思うぞ。
- 57 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 21:55:38 ID:7nmvHqyX]
- >>55
G0/G1ヒープがスワップアウトってどんな環境だw 敵の玉やFontなんて真っ先に >最適化の効果が大きく簡単に改善できる個所 として槍玉にあがるとこじゃん。 プロファイルに基づかない最適化は害でしかない。 まぁ、終わりのない自己満足の最適化ゲームやりたいなら止めないけど >>56 >事前に脳内で結果が分かって当然 主張しているのは真逆の事。誤読乙
- 58 名前:名前は開発中のものです。 [2010/12/21(火) 21:59:22 ID:XhDhH52e]
- 昔のJavaスレをみるようだ歴史は繰り返すなw
- 59 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/21(火) 23:38:07 ID:co1xIq2s]
- まあ、要するに、newの使いどころをわきまえてりゃ、
ガベージがドーノコーノなんて話が出てくる必要もないわけで。 変なタイミングでnewするから、変なタイミングでガベージが動くんだぞ。 最初に書いたように、フレームループの中でnewしないように注意なんてのは、 プロファイルとやらがドーコー言う以前の、技術の基礎だからな。
- 60 名前:名前は開発中のものです。 mailto:sage [2010/12/21(火) 23:50:24 ID:IUyb5141]
- 上のRobotGameでもふつうにnewしてGCしてる
クラス設計 特に継承を使った設計が 頭の中にないと なんでnew禁止が辛いのか 理解できないので 会話にならない
- 61 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 00:17:59 ID:MbCuhdtT]
- 俺がゲーム開発のノウハウ教えてやんよ
と、息巻いてる奴に限って 英語コンテンツは一切目をとうさず シェーダーも使えない 悲しい現実
- 62 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 01:02:04 ID:lDvG2hsH]
- >>61
あんなすごい技術を使ってても可愛い女の子の1人も出てこない向こうのゲームってなんなんだろうな? って俺はいつも思うんだ
- 63 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 01:47:45 ID:87uiMMNX]
- >>59
newの使いどころをわきまえる為に、.NET CLRのGCの特性を理解して使いましょうって話をしてるんだよ。 必死に無駄な最適化をしている君は実に馬鹿だなぁ 無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。
- 64 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 03:50:48 ID:jdovR8NX]
- >>62
脳が腐ってる気もするけど、同意。なんだろう、ロリコンって少ないのか?他の国じゃ。
- 65 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/22(水) 10:24:58 ID:msb7iRfo]
- new と同様に注意しなきゃならんのは、Listで定義した配列のAddとRemoveだな。
多くの場合、Addの直前にnewしてるんだろうけど。 フレームループの中で有効件数が変わるような配列(敵の弾とか)は、 最大値を設けてあらかじめその数だけ取っとくなりしないと。
- 66 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 10:56:22 ID:1bNr51j3]
- newのコストとかGCのコストなんてゲーム作ってくうちにネックに成ったら考えれば良い話。
簡単なパズルゲー、ノベルゲーなら多少フレーム落ちてもたいして問題ないし。
- 67 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 11:46:54 ID:8WY0reJe]
- >>65
List<T>の内部配列のサイズはオーバーするたびに2倍になる。Removeされても縮小は行われない。 なので、そのせいでフレームレートが落ちるようなことは100%ありえない。
- 68 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/22(水) 12:18:18 ID:msb7iRfo]
- 縮小は行われなくても、インデックスの更新などがあるからねぇ。
まあ、パズルやノベルなら、確かにさほど気にせんでもいいが。 おれが今作ってるのは音楽ゲー系(Javaだけど)だから、 タイミングにはイロイロとシビアでねぇ。
- 69 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 12:20:16 ID:8WY0reJe]
- 指数関数的に内部配列を拡張していって縮小はしないのはC++のvectorやJavaのArrayListなんかでも見られる
ごく一般的な動的配列の実装なんだけどな 上でもnew ColorがGCに影響するとかnewがmallocとか見当違いのこと言ってるし
- 70 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/22(水) 12:45:03 ID:msb7iRfo]
- CPUの進化ってすごいんだねぇ。
ここの連中のおれへの反論を見ると、 そう思っちまうねぇ。
- 71 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 12:59:52 ID:a/rzg/Ro]
- もうその話題は終わったよ
- 72 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 13:11:33 ID:MbCuhdtT]
- 音ゲにNPC AIもステージ設計も無いもんな
むしろ事前初期化ぐらいしかやる事なさそ
- 73 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/22(水) 13:21:41 ID:msb7iRfo]
- おれの場合、MIDIを使って、既存のデータで遊べるようにしてるから、
そのMIDI関連の調査には、チョットばかし苦労したねぇ。 最近はソノヘンの資料が少なくてねぇ。 何とかならんのかねぇ、あの叩いてから音が出るまでの遅延。 マックならそれほどひどくもないんだが・・・
- 74 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 13:21:53 ID:8WY0reJe]
- JavaのGCって.NETのと比べてストップザワールドを起こしやすいし
値型を定義できないしジェネリックも飾りでボックス化が発生しまくるからゴミも多発しやすい インデックスの更新ってほんとにそんなものがボトルネックになったことあるのか? 知りもしない調べもしない測りもしない
- 75 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/22(水) 13:32:07 ID:msb7iRfo]
- そんなものがボトルネックになったことあるのかって?
そういうリスクを未然に防ぐ作り方を心がけてるから、 知りもしないでいいし調べもしないでいいし測りもしないでいい。 おれがおれのやりかた。
- 76 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 13:35:51 ID:MbCuhdtT]
- 本人がキチガイ認めて完結
- 77 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 16:16:47 ID:87uiMMNX]
- なんだ、やっぱりキチガイが妄想を根拠にした俺理論で騒いでたのか。
通りで理詰めで説明しても通じないわけだ。 >必死に無駄な最適化をしている君は実に馬鹿だなぁ >無駄な努力をするのは別にいいけど、誤った知識を広めて人に迷惑かけんなよ。
- 78 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 18:35:42 ID:1bNr51j3]
- 調べも測りもしない上に使ってる言語はJava
思慮に値しない戯言だったって事だな
- 79 名前:名前は開発中のものです。 [2010/12/22(水) 18:52:03 ID:YXiGsK9q]
- それぞれを比較できる幾つかの数値的な根拠なりなんなりを出していない時点でどっちもどっち。
- 80 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 19:51:48 ID:87uiMMNX]
- ID違うけどお前さん◆4xAJeG.COMの捨て台詞みたいな事言ってるな。
まぁ、実際に問題なくゲーム(Robot Game)が動くのが何よりの証拠。お前の目は節穴か。
- 81 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 19:54:10 ID:XMfWOza8]
- このスレはゲ製板を象徴するようなスレだな。ダウトだらけ。本当にコンスタントにゲーム作ってる人いるんかね。
- 82 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 20:01:53 ID:4NXPbAbv]
- ここまでほとんどゲーム関係ないじゃん
純粋に.NETの知識としては特定の人以外はそんなに間違ってはいない
- 83 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 20:03:19 ID:Wg8SNA4z]
- ゲーム関係ないw。いらないなこんなスレ
- 84 名前:名前は開発中のものです。 [2010/12/22(水) 20:08:02 ID:YY2LjFIA]
- C#の話題ならム板で事足りる。
最近の流れはヲチとしては面白い。
- 85 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 20:15:47 ID:MbCuhdtT]
- >>84
何の話しする? どうして いきなり興奮してるの? 教えて 84
- 86 名前:名前は開発中のものです。 mailto:sage [2010/12/22(水) 20:44:11 ID:MbCuhdtT]
- 俺より難しいことを知ってる奴はゲームなんか作ってない
はい これ繰り返し言ってみなさい ね、 落ち着いたでしょ
- 87 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 01:28:50 ID:OCYjdJoh]
- C#で作ることのメリットデメリットは実行速度・ライブラリと組みやすさってのはわかってるし、特に言語にまつわるできるできないもそんなにないし。
SlimDXやXNAの話題は専用スレもあるし、 このスレの価値はこれらのライブラリを比較することと、C++に根本的にない文法で実装した方法紹介ぐらいしかないような気がする。
- 88 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 02:25:47 ID:GtUoPrZH]
- yield return
Reflection.Assembly.LoadFrom シリアライズ 効果 相手は死ぬ
- 89 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 07:11:33 ID:7ot6aP0i]
- 何でイテレータがそこに入ってるの?
配列へのforeach(最速)に比べりゃ遅いが コンパイラが生成するクラスと動作を知ってれば大したコストはないと分かりそうなもんだが >>84>>87 こういう最適化絡みの取るに足らない罵り合いはム板じゃできんよ。 あっちでやったら"誤差の範囲"と一蹴されて終わってしまう。
- 90 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 10:33:35 ID:77raTIZw]
- まあ前はXNAのModelMeshCollectionなどの列挙子がクラスとして実装されてて
foreachでガベージが発生してパフォーマンスが落ちるとか騒がれてたくらいだからな yieldも構造体じゃなくてクラスなのでwindowsではまず問題にならないけど360では問題になるのかも
- 91 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 12:02:54 ID:vF4GDpDy]
- vs2010だとC++でも文字列処理の塊みたいなプログラムだと
Debugで実行するとReleaseの1000倍以上遅くなった Debugで実行すると30分たっても終わらないのに Releaseで実行すると5秒もしないうちに終わったりする C#も似たような面がある Debugで実行すると不安になるぐらいおっそいの でもReleaseで実行すると問題ないぐらい早く動くの debugで実行して遅い遅いいってない?(って開発の妨げになることはなるけど)
- 92 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 12:10:58 ID:77raTIZw]
- 文字列処理ならそうだろうけど、DirectX使ってるときはあまり感じないな
描画がボトルネックになってるとほとんど関係ない気が
- 93 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 12:15:02 ID:GtUoPrZH]
- >>89,90
マイクロスレッド yield return でぐぐるとよい 良かったね 知らない事がひとつ減って >>91 音ゲーくんのことはもういいよ 音ゲーってそんなもんだ
- 94 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/23(木) 12:37:31 ID:9G5RY3Zb]
- 最近のゲームって、このように基礎知識がなってない連中が作ってるのか。
まあガベージコレクション自体、ソノヘンが欠けた技術者?の為の機能だからな。
- 95 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 13:29:08 ID:GtUoPrZH]
- 痛々しいな
ツッコミが怖くて技意味のある発言ができなくなっとる まぁ 嘘臭いからツッコまれるのだがw
- 96 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 13:31:49 ID:y5spn/N8]
- GC自体否定&ゲームに使ってる言語もJava
なのになぜC#スレにくるのか…
- 97 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/23(木) 14:17:35 ID:9G5RY3Zb]
- なにしろ今、開発に忙しいからね。
技術味のある発言なんて始めからしてないし。 new に関する話なんて基礎の基礎だから、 技術味なんてご大層なレベルじゃないもん。
- 98 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 14:26:58 ID:GtUoPrZH]
- 俺より強い奴はみんなハメ
俺より強い奴はみんなチート 俺よりゲーム開発詳しい奴はみんなゲーム作ってない new
- 99 名前:名前は開発中のものです。 mailto:sage [2010/12/23(木) 19:00:16 ID:y5spn/N8]
- 開発に忙しいなら尚更こなければ良いのに。
- 100 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 11:05:04 ID:t+N1XtKX]
- >>93
マイクロスレッドなら最初からそう書けよwアホかw
- 101 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 11:37:59 ID:n1/ru3ep]
- 煽るにも、俺の方が詳しいんだゼ
って事を書かないと 負け犬の遠吠えですぜ
- 102 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 11:55:56 ID:t+N1XtKX]
- >yield return
>Reflection.Assembly.LoadFrom >シリアライズ > >効果 >相手は死ぬ >>93はこの並びにyield returnが入ってる理由の説明になってない。 yield returnはマイクロスレッドの事だって後付けにも程がある。後付けしたせいで「相手は死ぬ」との関連性が不明瞭になった。 最初から間違っていたのか、後付けしたために自己矛盾を抱えることになったのか、日本語が不自由だったため誤解を与えたのか。別にどれでもいいか。 >>101 俺は詳しくない。技術的には理解してても あんまり上手く使いこなせてないから詳しいなら教えてほしい。 とは言っても設計に絡んだ事は自分で頑張るしかないだろうね。
- 103 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/24(金) 11:59:47 ID:dJK+lbCf]
- 技術のことはソースで語るんだよ。
- 104 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 12:03:36 ID:t+N1XtKX]
- >>103
つまり自分の書き込みには技術的価値は無い と 分かってるじゃん。
- 105 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2010/12/24(金) 12:12:03 ID:dJK+lbCf]
- おれがここで言うレベルなど、
技術者なら当然知っているべき、基礎の基礎だからな。 前にも書いたが、価値なんていうほどのもんじゃない。 でも、それさえ知らんとなるとねぇ・・・
- 106 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 12:19:11 ID:QYPADZMz]
- もう無視でいいよね
>>102 C#をスクリプトっぽく使いたいんじゃね yield returnをコルーチンとして使ってゲームのシナリオスクリプト書いたりしてて そういうのはdllとして分離して動的に参照したいと シリアライズはまあセーブに使うんだろう ところでセーブってシリアライザ使うのが一般的なの? XmlSerializerやDataContractSerializerはともかく、 他のはバージョン管理がうざいから嫌いなんだけど
- 107 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 12:21:34 ID:n1/ru3ep]
- C++にできないか、面倒くさくてやる気が起きない物が
3っつ並んでるのを 変に思い悩んじゃったんだね うぜー
- 108 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 13:06:13 ID:t+N1XtKX]
- 突っ込みどころが多すぎて、無視するのが勿体ないような気分に…
>>107 誰かと勘違いしてるだろw
- 109 名前:名前は開発中のものです。 mailto:sage [2010/12/24(金) 13:26:19 ID:n1/ru3ep]
- いったい誰とたたかっているんだ
- 110 名前:名前は開発中のものです。 [2010/12/24(金) 16:03:06 ID:c59ct/TR]
- 謎の組織だろjk
- 111 名前:名前は開発中のものです。 mailto:sage [2010/12/25(土) 10:23:42 ID:ekX5bmeQ]
- 俺基礎の基礎分かってないからそういう話あるとありがたい
いろいろな考えあって勉強になる
- 112 名前:名前は開発中のものです。 mailto:sage [2010/12/26(日) 03:16:46 ID:k+BPickK]
- 今冬コミのカタログチェックしてたんだけど
もうXNAやらC#のゲームとか、普通に出回ってるな で、ちょっとだけのつもりでリフレクしちゃったんだけ 2chで言われってる事は嘘ばっかりだな 嘘で去勢はるのにこんだけ熱心になるとか マジキチガイだよお前ら
- 113 名前:名前は開発中のものです。 mailto:sage [2010/12/26(日) 10:43:37 ID:KkuDmqCl]
- え?2chってそれがデフォだろ?
- 114 名前:名前は開発中のものです。 mailto:sage [2010/12/26(日) 10:46:25 ID:hn07w6Cz]
- >で、ちょっとだけのつもりでリフレクしちゃったんだけ
日本語でおk
- 115 名前:名前は開発中のものです。 mailto:sage [2010/12/26(日) 10:54:17 ID:awOm0khx]
- 確かに間違ってる奴はいるけど、どれが間違ってるか具体的に全部指摘してみてよ
そんなに難しいことはここまでひとつも書かれてないよ
- 116 名前:名前は開発中のものです。 mailto:sage [2010/12/27(月) 03:34:23 ID:vJm0vazk]
- 基礎の基礎を明らかに間違ってる奴が約一名居る。
お前らと言うからには他にも沢山あるんだろうが、具体的にどれがどう間違ってんの?w >>114 リフレクするって言い方は馬鹿っぽいと思うけど、普通に考えて.NET Reflectorだろ。.NET使った開発での定番ツールの一つ。 >>112が平気でライセンス違反するような屑だという疑惑が出てくるが、そんな事は別にどうでもいいや。
- 117 名前:名前は開発中のものです。 mailto:sage [2010/12/27(月) 08:43:43 ID:is3ZHvvL]
- 痛々しいなコイツ
新しい話題がでてもこの一手先が読めない猿が 偉そうにオナニー講釈するだけで終わりだな
- 118 名前:名前は開発中のものです。 mailto:sage [2010/12/27(月) 11:09:37 ID:e7NS5L10]
- こういう罵りあいがあると、このスレの板的知名度も大分上がったんだなーとかふと思う。
このスレには、C#ゲームを現在のPCで動かすことを前提とした人と、XNAで動かすことも見越した人がまずいる。 それとは別に、流れがどういうスタンスか考えずにとりあえず持ってる知識で相手を否定したがる人が数名。 速度を過剰に云々語る人は、まぁ十中八苦アマチュアではないよなーとは思う。 まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。 あとこのスレやJava関連で語るのに適した話題として、データ構造やアルゴリズム設計なんかもあるかもね。 シーンをどう定義してどう管理してるとか、メニューを作るとか。 まぁここら辺はちゃんと仕様書がきってあって、変更されにくいポイントだと言う前提なら、ハードコードしてもいいんだが。というかさっさと最速で実装するべきだが。 ・・・ん、背伸びしてレスしてもいいことないな・・・ みんなそんなことよりゲーム作ろうぜ
- 119 名前:名前は開発中のものです。 mailto:sage [2010/12/27(月) 11:39:22 ID:e7NS5L10]
- 流れぶったしたついでにぐぐれば出てくる内容を書いとこう。どれも読んだだけで実装したことないから勘違いしてたらよろ。
>yield return 本来は確かforcach文を実現するために使われる文法の1つ。 匿名メソッドとかラムダ式とかと似たような感覚で、主に既存の文法を省略表記できるように、とっぴな記述を実現できるようにしたやつらの一人。 列挙子あるいは反復子(英語だとイテレータだっけ?デザパタとかとは別で、C#の用語・文法に存在する)とよばれる、 特定の自作クラスをfreeach文で利用する可能にするための一連の記述内で登場する。 実際の動きがマイクロスレッドやファイバーと呼ばれる機構そのままを実現してる。 ゲーム屋はそういう用途で使いたいときに使うことも可能。自分はやったことないけど。 >Reflection関連 メタデータから強引にあれこれしたいときに使う。通常用途はプラグイン機能を実現するための機能。 ここら辺をうまく使うと、理論上C#プログラムのスクリプト言語にC#を選択できるみたいだけど、知らん。C#仮想マシンってそもそも簡単に使える状態で公開されてるの? 実現すればかなり有効な気はしないでもないが、動的コードの読み込みと再起動を実現したいためにスクリプトを使う場合は、情報の多いLua仮想マシンを利用する手段に落ち着く傾向ががが。
- 120 名前:名前は開発中のものです。 mailto:sage [2010/12/27(月) 11:55:53 ID:M20BTjY4]
- >C#プログラムのスクリプト言語にC#を選択できる
現状では無理がある。一度読み込んだらアンロードできないからAppDomainを分けない限りメモリリークする。 CLRには、ILを動的に生成して実行できて生成されたコードはGC対象になるという LCGと呼ばれるとっても便利な機能があって IronPythonなどはそれを使ってるから問題ないんだけど、C#コンパイラは対応してない。
- 121 名前:名前は開発中のものです。 mailto:sage [2010/12/28(火) 00:15:05 ID:w6osm0oX]
- で、具体的にどれがどう間違ってんの?w
- 122 名前:名前は開発中のものです。 mailto:sage [2010/12/28(火) 01:48:16 ID:RS4PyatJ]
- 首尾一貫して.NET CLRは十分高速だから、無駄な最適化の時間をゲーム開発に使えよ って話だろ。
×XNAで動かす/○XNAで作ってXbox360で動かす なら頑張ってGC抑制するしかないってのもずっと上の方で結論出てるじゃん。 ぐぐれば出てくる基礎的な話で、知ってるからといって威張れるような話ではない。でも知らずに書くと上の例のように周りから笑われてしまう。その程度の話。 >まったく作ったことがないか、それとも過去の歴史にしがみつつ、わかってても少し警笛をならしたい老人か。 Javaで作ってると主張してるのに、newがmallocと思ってて、ListのAddとRemoveで都度長さが変わると思ってるJavaの基礎の基礎ができてない人が 間違った知識で講釈垂れ流そうとしたあたりから話がおかしくなった。 >このスレの板的知名度も大分上がったんだなーとかふと思う。 Part1の過疎っぷりを思うと胸が熱くなるな。 みんなそんなことよりゲーム作ろうぜ
- 123 名前:名前は開発中のものです。 mailto:sage [2010/12/28(火) 04:11:28 ID:kmbjQwMU]
- >>120
詳しい情報サンクス。 うふふ、うひゃひゃ寝る暇ねー。。。。また・・・また・・・体験版を刷らなきゃいけないのか・・・ リプレイの機構見直さないとうまく動かないや・・・
- 124 名前:名前は開発中のものです。 mailto:sage [2010/12/29(水) 00:31:16 ID:FINczj2t]
- マイクロスレッドの実装例をWikiのTipsに追加してみた。
突っ込みがあったら容赦なくplz.
- 125 名前:名前は開発中のものです。 mailto:sage [2010/12/29(水) 01:05:46 ID:OFv+y9dv]
- 乙です
IEnumerableは途中で変更されない一連の動作をさせるには便利っぽいんだけど どうも使い所が見つからないw
- 126 名前:名前は開発中のものです。 mailto:sage [2010/12/31(金) 15:18:47 ID:VyXa73To]
- XNAで360のコントローラーを取得するのはわかるんだけど
プログラムから送信するってできる? ボタンが押されていなくても、押した事にするという感じで。 getじゃなくてsetというイメージ。
- 127 名前:名前は開発中のものです。 mailto:sage [2010/12/31(金) 15:30:12 ID:6eev3oNe]
- そういうことをしなくていいように設計する。
InputManagerみたいなクラスを作って、コントローラーの入力を直接取得するのはそのクラスだけにする。 他のクラスは常にInputManagerを経由して入力を取得するようにする。 そうしておけば、InputManagerを使って自由に入力を偽装できる。
- 128 名前:名前は開発中のものです。 mailto:sage [2011/01/03(月) 23:59:18 ID:+Us08eHK]
- 複雑な衝突判定とか必要なくて、
とりあえず自分で作ったポリゴンモデル動かしたいだけなんだけど、 DirectX + C++でやるのとXNAでやるのは生産性全然違うって認識でいいの?
- 129 名前:名前は開発中のものです。 mailto:sage [2011/01/04(火) 00:04:16 ID:vxp4EKHn]
- それならC++でIrrlichtみたいなフレームワーク使ったほうが早いよ
たくさんコード書くならC#の方が遥かに楽だけど
- 130 名前:名前は開発中のものです。 mailto:sage [2011/01/04(火) 00:24:09 ID:ysUfWyLy]
- >>129
Irrlicht.NET by SWIGはどう? 実用に耐える?
- 131 名前:名前は開発中のものです。 mailto:sage [2011/01/04(火) 00:28:52 ID:zGzKnjbP]
- easy 3d(RokDeBone2)や
mikumiku dance が多分お望みの物だな d3dx.hを使わないで済ませられれば飛躍的に楽になる 同様にXNAのSkinnedEffectも忘れた方がいい 結局mikumiku dance for XNAを読むハメになった
- 132 名前:名前は開発中のものです。 mailto:sage [2011/01/04(火) 00:52:44 ID:ysUfWyLy]
- >>131
SkinnedEffect使わなくても、easy3Dかなんかでは簡単に同様の事ができたり? その二つも検討してみるよ、ありがとん
- 133 名前:名前は開発中のものです。 mailto:sage [2011/01/04(火) 18:20:35 ID:IVa0Kycj]
- >>124
コンストラクタでIEnumeratorを受け取るようにすればテンプレートメソッドにする必要がなくなるんじゃね? あとActionを返す反復子を作ってみたら結構使えそうだった
- 134 名前:名前は開発中のものです。 mailto:sage [2011/01/04(火) 23:24:49 ID:zGzKnjbP]
- 質問者はC#で作ることまでは決まっていて、
C++と比較したい訳では無かったのか。 読み返すと全く話が解ってないまま回答してしまった。 とりあえず解決したっぽいし、良いか。
- 135 名前:名前は開発中のものです。 [2011/01/05(水) 18:12:52 ID:4nw3q9lq]
- あげ
- 136 名前:名前は開発中のものです。 mailto:sage [2011/01/05(水) 20:05:41 ID:WpE5qgLi]
- やっぱXNAには動的にファイル入力するクラスとか無いよね
- 137 名前:名前は開発中のものです。 mailto:sage [2011/01/05(水) 22:40:12 ID:mBota3aS]
- 動的にファイル入力って何?
- 138 名前:名前は開発中のものです。 mailto:sage [2011/01/06(木) 01:19:29 ID:3qyNRZky]
- >>137
ファイルからIOしたいわけですよ
- 139 名前:名前は開発中のものです。 mailto:sage [2011/01/06(木) 01:23:27 ID:3qyNRZky]
- くっそwwwww
Keyboard.GetState().IsKeyDown(Keys.Right)とLeftが押してもないのにtrue返しやがる・・・ もうわけわかめ
- 140 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2011/01/06(木) 09:28:24 ID:QYGetP1N]
- Keyboard.GetState()ってのはアテにならんわけか。
そういや使ったこと無いな。 KeyDownとKeyUpのイベントがあれば、そこでフラグをセットだけして、 使用時にそのフラグを見るようにするのがよかろう。
- 141 名前:名前は開発中のものです。 mailto:sage [2011/01/06(木) 17:06:58 ID:wjpby+MQ]
- 他の環境でも再現するならバグ。
でもそんなバグがあったら今までに見つかってないわけがないので、 君の環境がおかしいか使い方が間違ってる可能性が高い。 バグだというなら再現する最小限のコードをMSに提出。 ファイルについてだけど、Windowsなら普通にFileStreamでも使えば読める。 Texture2D.FromStreamで画像読み込んだりすることもできる。 上の人は無視で。
- 142 名前:名前は開発中のものです。 mailto:sage [2011/01/06(木) 17:26:13 ID:uXXSOax9]
- 上の人などいない
- 143 名前:名前は開発中のものです。 mailto:sage [2011/01/06(木) 19:45:49 ID:3qyNRZky]
- >>141
良く見たら同じメソッドがパッドからの入力で呼ばれてたよ 寝ぼけばがらやるもんじゃないね、迷惑かけた
- 144 名前:名前は開発中のものです。 mailto:sage [2011/01/07(金) 01:46:29 ID:/mL8TiWE]
- MMDXのExControlが最高に良いな
Windows.FormでXNAが使えるなんて思わなかった モデルの読み込みが激重だけど・・・
- 145 名前:名前は開発中のものです。 mailto:sage [2011/01/07(金) 10:25:58 ID:GqCoKInr]
- 普通に使えるだろ
公式のサンプルあるよ
|

|