[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/16 00:18 / Filesize : 255 KB / Number-of Response : 973
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 [2008/06/09(月) 14:36:53 ID:yieVRZfd]
C#でゲームを作ろうと思う人が情報を交換するためのスレです。
テーマはアクション、パズル、RPG等なんでもOK

551 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 00:30:07 ID:Sp1XDJTx]
4月ぐらいになって暇だったらC#+MDXでゲームでも作ってみよかと思ってます
日記ついでに自分用アンカーおいときますね >>266 >>298 >>300

552 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 22:38:47 ID:TGZXNQHz]
>>509
のWikiにSlimDX関連を少し追加してみました。
盛り上がるといいですねぇ

553 名前:509 mailto:sage [2010/03/10(水) 00:00:49 ID:qKagxpV9]
>>552
乙ー。何気なくスキンメッシュの情報があるWikiって珍しい気がする。

554 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 10:01:29 ID:KVAxguOd]
ラッパーよりもゲームエンジンが欲しい・・・
ソース上でテクスチャ貼るとかポリゴン弄るとか低層のことしないから
ポリゴンデータ集めてきて初期配置するまではiniファイルとか設定メニューで済ませ
ソースはDirectX関連は計算のみ使う状態で始めたい

555 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 14:11:47 ID:657TieNU]
そういうのを自分で作ればいいんじゃね?
そして公開したらみんな幸せ

556 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 14:37:34 ID:ERiS5YJG]
というか探せばいくらでもありそうではあるよね。
XNAベースのそういうの前どっかで見かけたような。

557 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 15:55:00 ID:ftvCaui6]
>>554
>>422で言えばOrge.net、Irrlicht .NET、DXライブラリもゲームエンジンだと思うけど?

CodePlexにもいくつかあるので探せば希望のものが見つかるかもしれない。
www.codeplex.com/site/search?projectSearchText=&sortBy=PageViews&tagName=%2cgame%20engine%2c&licenses=|&refinedSearch=true

あと使ったことないけどUnityがC#で開発できたはず。

558 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 22:04:27 ID:Na9+T2Fv]
>>509
DXライブラリの情報もほしい

559 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 22:07:52 ID:7ZOlEtnk]
ゲームエンジンとフレームワーク、ライブラリはそれぞれ別の物。



560 名前:509 mailto:sage [2010/03/10(水) 23:40:47 ID:qKagxpV9]
>>558
DXライブラリは、C++で無理しようとした頃少しだけ世話になったこともあるので、個人的には推したいねぇ。
今は全然覚えてないけど、C#版とかあるし誰かが記事を書いてくれると信じよう。
メニュー項目追加しときます。

>>559
自分の認識では
ライブラリ→ある目的に沿ったクラスファイルや関数群
フレームワーク→特定の操作や手順強要する、特定のアプリを作るのに特化したシステムのこと。
ゲームエンジン→ゲーム作るのに必要な、フレームワークとライブラリの中間の何か。

561 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 23:41:58 ID:/6lrxuI1]
XNAはシェーダ1.1縛りがあるから無理

562 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 23:56:44 ID:T4bKJA7B]
意味もわからずに縛りとか言っちゃう厨房降臨

563 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 01:45:47 ID:kSgcfpuM]
>>560
今VB.NETを勉強中で作品1つ作ったらC#に移行しようとしてる最中なのでそれはありがたい

564 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 03:00:36 ID:5SRNEDc3]
>>554
よし、ゲームエンジンツクールを今から開発するんだ!

565 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 10:01:30 ID:h8CMp/En]
例えば戦車のゲーム作るとして
戦車のポリゴンデータは
本体
 ├キャタピラ1
 ├キャタピラ2
 ├キャタピラ3
 └砲塔
  ├砲身1
  ├砲身2
  └砲身3
キャタピラと砲身はアニメパターンで切り替え
で、
戦車Mesh = new NonIndexedSkinnedMesh(Device, "戦車.x");
ここから
砲塔角度を与えれば、勝手に戦車Meshが修正されて返ってくる関数って
自分で用意しなきゃならんですか?
それとも
本体
 ├キャタピラ1
 ├キャタピラ2
 └キャタピラ3
砲塔
 ├砲身1
 ├砲身2
 └砲身3
って分けて自分で回転軸指定してやった方がいいかな




566 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 11:14:51 ID:7yJ8PJo2]
>>565
例えば歩くアニメーションが全体で100フレーム分あったとしたら、その中からポーズを任意のフレーム目の状態に出来るって代物だから。
やったこと無いけど今回だと後者のほうが楽じゃね?砲身とかなら、自分で別々に計算して本体側の砲塔手前のFrameにくっつける感じで。

567 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 15:23:30 ID:mzSSqjK7]
心が折れそうだ><;

568 名前:名前は開発中のものです。 mailto:さ [2010/03/11(木) 19:21:56 ID:w7pwXHLD]
>>554
要はUnrealとかUnityのようにレベルエディタが付いてるような物のこと?

569 名前:名前は開発中のものです。 mailto:sage [2010/03/12(金) 08:53:21 ID:EN4bAdNZ]
Unityって何ぞや?ってwikiのチュートリアル見たらブラウザ固まった・・・・
C#使えて一部無償か・・・・



570 名前:509 mailto:sage [2010/03/12(金) 19:17:28 ID:JKkhUh5c]
要望があったので、ファイルのアップロードを許可しました。多分。

571 名前:名前は開発中のものです。 mailto:sage [2010/03/12(金) 23:35:43 ID:R35iyj42]
>>570
乙 特に協力できるような知識がなくてすまない

572 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 00:56:15 ID:kMFW1dn8]
>>565
普通、後者だろ?
砲塔回転させる方が楽だろ。
あと砲身も上下させるなら、それも分割して砲身だけ違う軸で回転させて。

573 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 01:08:02 ID:kiM6cwSv]
>>509>>511
SlimDXページへの編集制限回数を超えてしまいました。
調整をお願いしますー


574 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 02:17:21 ID:AXVFtfJe]
>>572
でも普通のモデラーは全部1ファイルに階層化して吐き出してるし
モーションソフトではボーンで動かしてるよね?

575 名前:509 mailto:sage [2010/03/13(土) 11:55:37 ID:nfJqoL1x]
>>573
マジカー
とりあえず変えますた。ウチも記事を書かねば。

>>574
モデラーにもよるけど、メタセコ内でオブジェクト分けて別途ボーン入れソフト使った場合、
デバッグで確認したが、メッシュの対応がおおよそ一致してる。

ReplacedName0→ReplacedName1→base(腰)→upperLeg
upperLeg→lowerLeg()→foot
↓upperLegR(upperLegと兄弟関係)→lowerLegR→foot

だから、
1、モデラ等でボーン入れるときはオブジェクトを独立させて砲身のボーンは他のメッシュに影響しないようにして、発射アニメーションがあるなら作っとく。
2、プログラム上で砲身を回転させたかったら、砲身のメッシュを持つFrameのオフセットをいじくる。(ローカル軸回転とか利用して)。で別途保持して、描画の直前にそれを元にワールド変換行列を算出。
相対座標の強みは砲身自体を持つフレームの行列だけいじくれば、ちゃんと動いてくれるところだと思うよ。試したことないけど。

576 名前:名前は開発中のものです。 mailto:sage [2010/03/18(木) 21:11:21 ID:1c4y1/VI]
>>509にてSlimDX関連サンプルを載せている者ですが、もし何かリクエストや、
サンプルでもっと説明して欲しいことがありましたらどうぞ。
できる範囲で対応します。

あまり複雑だと無理かもしれませんが・・・。

577 名前:509 mailto:sage [2010/03/19(金) 15:41:45 ID:71r/xMbH]
>>576
お疲れ様です。SlimDX版Fontを元に文字テクスチャを生成する、があると需要があるかと。
Mdxの方は今からあげようと思います。

578 名前:riorio ◆rio2xMQlrQ mailto:sage [2010/03/21(日) 00:19:12 ID:PSZ0VC/R]
こんばんにゃー
求人ですw

鉄道経営系ゲーム製作スレッド
pc11.2ch.net/test/read.cgi/gamedev/1239023536/l50

のほうでFreeTrainEX Avのプロジェクトリーダーやってるものです。
FreeTrainEX Avの現バージョンはdx7vb.dll使ってるものでVista以降で単独では
動かないのですが。
昨年秋に「dll使わないDirectXラッパー書いてみたぜ」ってソース落として行って
くれた方がおられたので。そのラッパー取り込んでみたのですが、C++/CLIで書か
れてて自分はどうにも読解できなくて。今困ってます。
C#とC++/CLI両方書けて興味ある方、助けてください。

579 名前:578 mailto:sage [2010/03/21(日) 15:57:16 ID:PSZ0VC/R]
たびたびどうもです。
さきほど出張してきていただいたかたのおかげでかなりのバグがとれたのですが。

まだDirectMusic使ったwavファイル効果音を鳴らす部分がおかしくて。
連続して発音してるといいんだけど一度音が止まると次の発音がなくなってしまうのです。
DirectMusicもわからんしー……
本体C#でWrapperがC++で、それをExpressEditionでビルドしてるんで。
C++でDLLだけビルドしておいて、できたものを参照してC#でソリューションしてます。

前の人がC++のWrapperあっちこっちにDebug::Printを仕込んでくれてるのですが、これって
Standard以上の統合環境じゃないと見れませんよねぇ。

Debug::Printにかわるものをなんか仕込むか。



580 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 16:10:42 ID:Txt32X4Z]
APIのOutputDebugStringを呼ぶようにすれば
これを表示するツールはいくつかフリーでもあるよ

581 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 16:12:45 ID:Txt32X4Z]
ってそのDebug::Printが最終的にOutputDebugStringを呼んでいるなら
そのツール使えるかもね

582 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 16:25:00 ID:aViYKpOi]
>>579
System::Diagnostics::Debug::Print なら

ツール->オプション->デバッグ->全般 の
出力ウィンドウの文字をすべてイミディエイトウィンドウにリダイレクトする

にチェック入れたら見えるはず。


583 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 17:04:00 ID:PSZ0VC/R]
>>582
C++ Express Editionでそのオプションにチェックを入れてDLLをビルドして、
そのDLLをC# Express Editionで参照してソリューションビルドしてデバッグモードで
動かしたけど、C# Express Editionのイミディエイトウィンドウには何も表示されな
かったのです。

C++で書かれてるのはWrapper部分だけで、Windowアプリ本体はC#なのです。
で、Express Editionでビルドしてる、と。

しょうがないので、std::ofstream ofs;でテキストファイルひらいて追記していく
文をつらつら書き並べてました。さっきまで。


バグのほうは、スレに来ていただいた方に解決していただきました。

584 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 17:14:02 ID:aViYKpOi]
>>583
チェックを入れるのは C# Express Edition のほうなのですが、それでも表示されないですか?

585 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 17:18:23 ID:PSZ0VC/R]
ぉお!?すみません、C# Express Editionにチェック入ってなかったです。
チェック入れたらC++で書いたWrapper DLLのほうもちゃんとイミディエイトに
出てきました。
とほーー

いや、そのDEBUG:::Printしてたパラメータは結局バグとは関係なかったんですけどね……

あーー、でもなんとか形になったかな。
ありがとうございました。

586 名前:名前は開発中のものです。 mailto:sage [2010/03/21(日) 20:43:46 ID:PSZ0VC/R]
引き続きお世話になっております。

本体はなれたどーでもいいところなので全然急がないしなんだったらまるごと
つぶしちゃってなかったことにもできる部分なんだけど。
またひっかかってるのでヒマなかた見ていただけたら。
pc11.2ch.net/test/read.cgi/gamedev/1239023536/837

単純に、ラッパーがコーディングされてるのに使ってあげないともったいないじゃん、
というだけの発想です。

IBasicAudio::put_Volumeのフィルタ指定ではまってるというところ。

587 名前:riorio ◆rio2xMQlrQ mailto:sage [2010/03/22(月) 16:55:02 ID:NRHTgvKr]
お世話になってます。FreeTrainEX Avの開発リーダーです。
最新アルファ版を公開はじめました。
pc11.2ch.net/test/read.cgi/gamedev/1239023536/856

こちら、.NET2.0とDirectX9.0cが入っていればWindows2000/XP/Vista/7で
動作するはずなのですが。
一部Windows Vistaで動作しないという報告も上がってきており、
私の家にVista動作環境がないこともあって確認が遅れております。
Vista/7で動作したしない、また動作しないのであれば原因がどこにあるのか、
対処法はどうなるのか、といったあたり、ゲーム開発に詳しい皆様の力を
お借りしたいと思います。
これがFixできれば晴れて「バージョン1.0」を名乗りたいと思っております。
最後の1マイルを人海作戦で行かせてください。

鉄道ゲーム製作スレのほうは、もともとFreeTrainやるためにVistaにdx7vb.dll
入れて旧版を動かしてるような人が多く、また動く動かないはわかるけど
原因切り分け報告までのスキルはないという人も多いため、プレーンなOS
環境、あるいはいろいろ動作環境を切り替えられるリソースをお持ちであろう
みなさま、ぜひともお力をお願いします。

588 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 19:46:17 ID:NRHTgvKr]
ちょっとDirectX関係のSDKと、動作環境(ビルド環境ではなく)で教えてください。

DirectX SDK August 2007を最後に廃止されたという、DirectMusic関連のヘッダファイル
dmusici.hを組み込んでいるのですが。あ、FreeTrainEX Avです。おさわがせしております。

このdmusici.hを使ってビルドしたバイナリは、実行するときにもこのSDKを要求したり
しますか?
「XPだけど動かない」「Vista/7で動かない」という話がわきおこってるのです。


FreeTrainEX AvはもとからDirectX9.0cと.NET2.0が動作必須だったのですが。
以前はdx7vb.dllを使ってたのでdmusici.hは使ってなかったんです。
今回のバージョンから、dx7vb.dllを外す代わりにじまえでC++ラッパー書いてという
ことになって、そのラッパーがdmusici.hを利用しているのです。

XPにおいて、dx7vb.dll最終版の0.8.1は動作するが、解消版の0.9.0.*は動作しない、
というのの理由を探しています。

589 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 00:35:02 ID:J3ocefBD]
svnファイル同梱するなよクソ野郎



590 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 00:37:24 ID:Ty8DZbGt]
あ、それは気になってた。

どうかこのクソ野郎めに、ワンタッチでsvnファイルを除去できる魔法をおさずけください。

591 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 01:10:54 ID:J3ocefBD]
死んどけ

592 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 01:52:04 ID:8kehcNOI]
>>589
協力もしないのに文句だけはいっちょ前の糞野郎は黙っておけよw

593 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 06:38:00 ID:xiyxYgjD]

なにこのバカ

594 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 07:44:27 ID:8kehcNOI]
↑なにこの糞野郎

595 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 10:14:11 ID:SU4tIHRV]
>>590
チェックアウトじゃなくてエクスポートしたやつをアーカイブすればいい

596 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 10:21:26 ID:Ty8DZbGt]
おーーーーー

言われて、えくすぽーとでぐぐってみた
tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-dug-export.html

なるほど!これは便利そうだ。
さんくす

597 名前:名前は開発中のものです。 mailto:sage [2010/03/23(火) 16:57:18 ID:Ty8DZbGt]
ところでゲーム中に流すBGMや効果音なんだけど。

今はDirectSound/DirectMusicで流してる。
でもこれ、dmucich.hが必要で最新DirectX SDKには入ってなく、旧版を探して
もってこないとビルドできないし。
いつまでもこれでいいのかなって、ふと気になった。
いいならいいで、ビルドする人のちょっとした負担になるだけで実行環境には
影響ないからほっとくし。
もし将来的に実行環境がなくなるようなことがあると困るなと思った。

598 名前:名前は開発中のものです。 mailto:sage [2010/03/24(水) 12:21:47 ID:XbqxS38/]
MIDI使ってるうちは移行は厳しいかもね

599 名前:riorio ◆rio2xMQlrQ mailto:sage [2010/03/25(木) 02:21:01 ID:6G8G5HnF]
たびたびお世話になります。
FreeTrain EX Av Projectのriorioです。

このたび正式版1.0をリリースし、それとともに次期版のベータ2.0.1.0も配布開始しました。
sourceforge.jp/projects/freetrain-exav/

1.0は問題ではなく、2.0.1.0のほうでご協力をお願いします。
ver2から、新たにC++/CLIで記述されたDirectXラッパーを作成して使用するようにしたの
ですが、どうもビルドに問題があるのかソースに問題があるのか、原因いまだ不明なのです
が、本来
・DirectX9.0c
・.NET 2.0
の2つさえ入っていれば動作するはずのFreeTrainEX Av本体が、単独動作せず起動すぐ
クラッシュということになっています。

いろいろ試してみて、Visual C++ 2008がExpress Editionでいいのでインストールされて
いたら動作する、というところまでは突き止めました。
私自身もExpress Editonで開発しているのでC++部分とC#部分の一発ソリューションという
のはできず、まずC++のDirectXWrapper.dllのみをC++でビルドし、そのあとでC#でDLLを
参照してビルドして完成という手順を踏んでいます。
この手順の中になにか不備があるのではと考えられるのですが、わかりません。

SourceForge.jpのほうには2.0.1.0のソースをSVNでコミットしてあります。
ソースから読んでわかる方、ぜひ解明・解決していただけないでしょうか。



600 名前:名前は開発中のものです。 mailto:sage [2010/03/25(木) 02:51:34 ID:ThcdbcJE]
前から思ってたけど、完全にスレチだと思うのだが...
つうか力量不足だからってこのスレに投げられてもなぁと。

601 名前:名前は開発中のものです。 mailto:sage [2010/03/25(木) 02:56:15 ID:19sCPsZw]
>>599
思いつきだからなんにも役に立たないレスだけど
C++2005とC++2008のRedistributableが関係じゃない
C++2005.C++2008のEEをインストールするとこれもインストールされるし
VBとC#にはないけどC++だけにはあるからそうなんじゃないかと思った

602 名前:名前は開発中のものです。 mailto:sage [2010/03/25(木) 11:23:35 ID:7Uo3+URx]
さらにC#から離れてくると本格的にスレチだな
ただC#とvisualstdio周りは関係が根深いから、そこら辺の話題がかすってれば個人的にはセーフだと思う

どちらかというと、>>riorioさんの何でも聞いてる感のニュアンスがしてきてるからだろう、問題は。
うざいので少し自重しろし、と思うところもあるが、技術的なレスだし誘導先がないなら多少のスレ出張は互いに有益だろう。

603 名前:名前は開発中のものです。 mailto:sage [2010/03/25(木) 11:30:07 ID:6G8G5HnF]
すみません。
C++パートをReleaseビルドすれば解決、だったそうです。
罠でした orz

604 名前:名前は開発中のものです。 mailto:sage [2010/03/25(木) 22:46:30 ID:JbalM5RN]
とても有益な流れでしたね

605 名前:名前は開発中のものです。 mailto:sage [2010/03/26(金) 08:03:43 ID:ssC1XAIg]
rorioさんじゃないことに今気付いた。ごめん。

606 名前:名前は開発中のものです。 mailto:sage [2010/03/26(金) 11:52:11 ID:HhxIa7cp]
どうせそんなに細かい制御しないんだろうから
アンマネージC++でDirect3Dのラッパー書いてDllImportすればいいのに
C++/CLIが混ざると後々いろいろと邪魔になるんだよな

607 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 12:34:22 ID:rg9jPJ4K]
質問です
csharpgamedev@wikiにあるSlimDXのサンプルフレームワークを使わないプロジェクトで
IdleでRender()呼び出してますが、この場合マウスをぐりぐり動かしたりしてると
Idle呼ばれなくて描画されなくなったりしませんか?
試してないんで適当にいってますが、参考に見ていて気になったので・・・

608 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 13:28:20 ID:6NV7kv+b]
>>607
マウスイベントはIdleイベントが発生できなくなるほど頻繁には発生しないので、大丈夫です。
もちろん、マウスイベント内で非常に重たい処理を行うと影響が出ますが、それは
Idleイベントでなくても同じですので。

609 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 22:06:36 ID:rg9jPJ4K]
レスありがとうございます。Vista + VC#2005EEでテストしてみました

class Program内
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 frm = new Form1() ;
Application.Idle += frm.IdleProc ;
Application.Run(frm) ;
}

class Form1内
int n_idle = 0 ;
public void IdleProc(Object sender, EventArgs e)
{
this.Text = this.n_idle.ToString() ;
this.n_idle ++ ;
}

ウインドウのタイトルバーにカウント表示するプログラムです。
実行してウインドウ上でマウスを動かすと、自分の予想に反して
カウントが早くなります。

Idleが連続で2回以上くるとウェイトが入るような処理でも入ってるのでしょうか?



610 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 23:04:09 ID:6NV7kv+b]
>>609
私も確実なことは言えないのですが、IdleイベントはMSDNに記載の通り
"アプリケーションが処理を完了し、アイドル状態に入ろうとすると発生します。"

つまり、アプリケーションが何かしら処理をし始め、完了しないとIdleイベントは発生しません。
逆に言うと、ずっとアイドル状態だとIdleイベントは発生しません。
空のフォームだと、何も処理が発生しませんので、なかなかIdleイベントは発生しないことになります。
つまり、アイドル状態が長いということです。

この状態でマウスを動かしたり、フォームの上に別のフォームを置いたりすると
マウスイベントやPaintイベントが発生し、アプリケーションが処理を開始し、
完了するとIdleイベントが呼ばれます。

そのため609さんのプログラムでは、何もしないときよりもマウスを動かしたほうが早く
カウントが進むのだと思います。

多分^^;


611 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 23:31:39 ID:AbGdjg2Q]
横から質問ですが、それだとゲームループとして不完全だと思うのですが・・・
実際にゲームが出来上がれば問題ない動きになるんですか?

ゲームによっては、入力がゲームパッドからのみということもあるでしょうし
(ゲームパッドからの入力がフォームイベントを発生させるとは考えづらいんですが)
どうにも上手く納得できないんですが・・・

612 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 23:33:10 ID:+JNifJsR]
実際XNAのループもApplication.Idle使ってるからなあ

613 名前:609 mailto:sage [2010/03/28(日) 23:44:25 ID:rg9jPJ4K]
>つまり、アプリケーションが何かしら処理をし始め、
>完了しないとIdleイベントは発生しません。
>逆に言うと、ずっとアイドル状態だとIdleイベントは発生しません。
.NetFrameworkでのIdleの仕様がよくわかっていませんでした。
MFCではIdleはアイドル状態の間、何回でもイベントを発生されることもできるので
勘違いしていました。説明ありがとうございました。

この辺(フレーム更新)の処理について調べるきっかけになったのは
自分の作ったテストプログラムのFPSが思ったよりも少なかったからです、
試しに描画を減らしてみてもFPSが変わらないため、他人のプログラムを
参考にしてみようと眺めていました。

FPSが変わらなかった結果からいうとPresentParameters.PresentationInterval
の設定値でした。

つづく

614 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 00:10:45 ID:H0yeDB0b]
以下は日記ですので興味のある人だけどうぞ

class Program内

static void Main()
{
 Application.EnableVisualStyles();
 Application.SetCompatibleTextRenderingDefault(false);
 using(MainForm frm = new MainForm()){
  frm.Show() ;
  while(frm.Created){
   frm.Render() ;   // DirectXでの描画
   Application.DoEvents() ;
  }
 }
}
いわゆるブン回しです。擬似コードです、このままで動くかわかりません。
描画を削ってもFPS上がらないのはおかしいです。
Idleを使った>>609を試してみてIdleでウエイトかかってるのかと
思ったのですが、そうではありませんでした。
さらにつづく

615 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 00:17:56 ID:H0yeDB0b]
frm.Render()呼ばなければブン回ります。
つまり、frm.Render()内でウエイトがかかっています。
Device.Clear(), Device.BeginScene(), Device.EndScene(), Device.Present()
だけでもウエイトかかります。
おそらくDevice.Present()がウエイトかけてるんだと思い、
どっかで設定できるのではないかとヘルプで探しました。
それで見つけたのが
PresentParameters.PresentationInterval
PresentParameters.FullScreenRefreshRateInHz
です。
Device生成するときにわたすPresentParametersに
presentParams.PresentationInterval = PresentInterval.Immediate ;
しとくとウエイトかかりません。
デフォルトではリフレッシュ レートと同期するようです。
PresentParameters.FullScreenRefreshRateInHzでフレームレートが
指定できるようですがフルスクリーンのみ指定できるらしいです
ウインドウモードだとフレームレートが指定できないのが微妙ですね。
どれぐらいの精度があるかは調べてません。

以上

616 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 00:21:38 ID:VsNKVRFO]
>>611
疑問もごもっともです。

一般的なゲームのように、何もしていなくても定期的にゲーム内のオブジェクトや
キャラクタを更新し、画面を描画するには Idleイベントでは足りません。

タイマーイベントなどでも可能ですが、SlimDXでは便利なクラスを用意してくれています。
それが、MessagePumpクラスです。
SlimDXのサンプルフレームワークでは、このMessagePumpクラスが使われています。

このクラスは、内部でPeekMessage関数を呼び出し、メッセージが無い場合に
メインループを回すように実装されています。
使い方はサンプルフレームワークのSampleクラスを見ていただければ分かりますが、

MessagePump.Run( form, () => {
  /* メインループ */
} );

のようにして使います。
これで、CPUが空いているときにメインループを何度も回してくれます。

サンプルは動きを扱っているわけではないので分かり易いかなと Idleイベントを使っていたのですが、
混乱させてしまったようですね。そのうちMessagePumpクラスについても追加しておきます。

もし、私の理解が間違っていたらご指摘ください。
よろしくお願いします。

617 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 00:56:22 ID:yHggtniu]
>>616
ありがとうございます。
なるほど、そんなクラスがあったんですか。

使ってみたところ、確かにゲームのメインループらしい動きになりました。
SampleFrameworkをよく読んでませんでした。申し訳ないです。

# よく見たら>>34なんかも、if(...)じゃなくてwhile(...)なんですね・・・
# ひどい勘違いだorz

618 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 15:16:47 ID:RNEBXSyr]
時間がなくて中身ちゃんと確認できなかったけど、
ウルティマ(違ったかも)の作者だかが書いたゲームプログラミングの本が邦訳されてたね
目次見た限り、セガ本の上位版みたいな感じだったけど、肝心のタイトル忘れた

619 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 15:43:43 ID:fAnb/rf6]
>>618
ゲームコーディング・コンプリート 一流になるためのゲームプログラミング



620 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 16:34:50 ID:SyCIUm2Y]
発売日3/31か

621 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 16:47:06 ID:fAnb/rf6]
>>620
www.sbcr.jp/books/products/detail.asp?sku=4797358438
>出版日/発売日 2010/03/26

622 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 17:31:21 ID:RNEBXSyr]
それだ。ありがとう。
1分くらいしか時間なかったんで全然確認できなかったけど、MFCっぽかった。
しばらく書店行く予定ないんで、読んだ人いたら感想もらえると嬉しい。

623 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 20:15:01 ID:51nkO2MO]
>>622
こっちに池
推薦図書/必読書のためのスレッド in ゲ製作技術5
pc11.2ch.net/test/read.cgi/gamedev/1261811596/

624 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 20:31:09 ID:VsNKVRFO]
>>619-622
目次見て面白そうだったので、さっき買ってざっと流し読みしてみました。

で、感想。
いかにも技術者が書きましたという感じ。中〜上級者向け。
C++とDXUTを使ったコードと文章が1:1くらい。
テクニックやアルゴリズムを説明するというよりも、
「自分はこんな風に考えて、こんな感じでやってる」という経験からの言葉が列挙してある感じ。
コード解説もかなり大雑把。

またメーカーの大規模ゲーム開発の経験者なので、大規模・複数プログラマが前提の解説。
他の人が間違って使わないように、こんな感じにするといいっていう説明が多い。

技術書としてはどうかなと思いますが、個人的には、純粋に現場の人が書いた読み物として読むと
非常に面白いです。思想とか、考え方とかが結構リアルに伝わってきます。

ゲーム作る勉強するよ、という人にはお奨めしません。
ゲーム開発をそれなりにやって、本職さんはどんなことやってるの?というのを"感じたい"人にはお奨め。

ざっと読んだだけなので、じっくり読んだら意見が変わるかもしれません。
ご了承を。

>>623
あら、ごめん。もう書いてしまいました。

625 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 21:04:37 ID:RNEBXSyr]
>>623
失礼。

>>624
なるほど。個人レベルで作業してる人なら、実用書というより読み物みたいな感じね。
スレ違いだったみたいだけどありがとう。ちょっとAmazon行ってくるわ。

626 名前:名前は開発中のものです。 mailto:sage [2010/03/30(火) 12:15:06 ID:WuGVH3oY]
>>621
おっと、アマだと3/31なもんで。
もう売ってるのね

627 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 15:13:23 ID:1GSC4n/1]
で、今日アマでいくつかのものを購入して>>619の本も一緒に入れたんだけど
この本だけ入荷予定日が決まらずに、他のものも待たされている状態だ・・・
他の本屋ではちゃんと出てるみたいだしこれだけキャンセルしてしまおうか

628 名前:名前は開発中のものです。 mailto:sage [2010/04/04(日) 23:46:25 ID:OcQS6D2T]
Visual Studio 2010が発売されたら本気出す。

629 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 02:12:09 ID:jzcw2oWG]





630 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 10:10:22 ID:4acyzVcd]
ぬーそくで晒したやつ
www1.axfc.net/uploader/Sc/so/100004.zip

別にゲームなんて作ろうと思えばゲーム用APIなくてもできる
ttp://tsushima.2ch.at/s/news2ch56318.png

631 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 19:59:30 ID:Rdxb5LrY]
小学生の夏休みの宿題レベルならね。

632 名前:名前は開発中のものです。 mailto:sage [2010/04/05(月) 20:02:54 ID:4acyzVcd]
ゲームループ入れようがかわらんよ
結局はどういうパーツを用意してどういう座標系で表示するかだし

633 名前:名前は開発中のものです。 mailto:sage [2010/04/06(火) 15:21:38 ID:cf/edvfk]
悪いけどパフォーマンス面で絶対に行き詰まるよ
とりあえずマップを滑らかにアニメーションさせようか
存分に苦労したらそのあとDirectXで同じものを書いてみよう
アホらしくなるからw

634 名前:名前は開発中のものです。 mailto:sage [2010/04/06(火) 20:12:19 ID:H3xVlNlc]
>>630
俺も昔そう思っていた時期がありました・・
VBだったかな。pictureboxに画像のっけてアクションゲーム作った
そこまでは良かったんだが、背景入れたり敵の数が多くなったりするととてつもなく重くなる
まぁ、つくっていけばそのうち分かるよ


635 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 04:09:31 ID:WcRGFsqj]
ものすんごいハイスペマシンならゴリ押しでどうにかなるかもしれんがなw

636 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 11:56:14 ID:aaY2qh0H]
>>632の言う通りなんだけど、それなら同様にDirectXでも変わらないんだよね
最初に枠組み作るところだけちょっと難しいけどそれさえ乗り越えたら同じ
でもパフォーマンスは桁違い

637 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 13:34:09 ID:2jjoXGxH]
ゲーム用APIじゃなくゲーム用フレームワークっていいたかったのかな、もしかして。
あとたしかに描画が重要じゃないゲームだったら別にDirectXなくてもいいなとは思うわ。

638 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 13:45:48 ID:aaY2qh0H]
GDI+が特別遅すぎる
SilverlightなんかGPUアクセラレーション切っててもそこそこ速いよ

639 名前:名前は開発中のものです。 mailto:sage [2010/04/07(水) 16:00:19 ID:2jjoXGxH]
WPF/Silverlightが標準になる時代になればGDI+の呪縛から解き放たれるんだよな。



640 名前:名前は開発中のものです。 mailto:sage [2010/04/08(木) 12:40:25 ID:XcY1dVaJ]
俺、週末になったらwikiにSilverlightの記事追加するんだ……

641 名前:名前は開発中のものです。 mailto:sage [2010/04/08(木) 13:27:13 ID:SGnCXT7k]
どっちの死亡フラグになるんだそれw

642 名前:名前は開発中のものです。 mailto:sage [2010/04/08(木) 19:35:53 ID:U/1ONzT8]
Silverlight使うためだけにwebdeveloperインストールで1.5Gも食うからやだ

643 名前:名前は開発中のものです。 mailto:sage [2010/04/08(木) 23:10:44 ID:vT3vctvB]
WebDeveloperはExpressの中では最強だぞ
ちょっと工夫すればVC#でできることは全てVWDでできる
WinFormsとかWPFとかSlimDXとか使って普通のアプリケーションも作れる
超高機能なHTML/XML/JavaScriptエディタとしても使える

644 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 00:17:13 ID:8ektChN1]
ちょっと工夫ってのがわからん

645 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 07:52:44 ID:9+WQFt1i]
C#で作成されたソースコードが公開されている最も有名なゲームはなんですか?
今度会社でJavaからC#に移行するだのどうだの話してるので、勉強がてらにゲーム製作したいです
よろしくお願いいたします


646 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 07:55:11 ID:3zYPfRuC]
>>645
仕事でやるなら本くらい買いなよ
ゲームはあんまりねーんじゃないかな?
あんまり効率いいとはいえんし

専ブラなら何種類か.netのやつがソース公開されてたな

647 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 08:14:42 ID:mLMsOfB3]
>>645
XNAだったら色々サンプルプロジェクトがある
どこにあるかは忘れた・・・

648 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 08:16:35 ID:3zYPfRuC]
XNAって生きてたんだ・・・

2chのスレも消滅してなかったっけ?

649 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 08:32:56 ID:mLMsOfB3]
>>648
すくなくとも死んではいないと思う
beebee2see.appspot.com/i/agpiZWViZWUyc2VlchQLEgxJbWFnZUFuZFRleHQYsepnDA.jpg




650 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 08:36:13 ID:9F4GyvSZ]
>>645
creators.xna.com/ja-JP/education/starterkits/
msdn.microsoft.com/ja-jp/library/dd254702%28v=XNAGameStudio.31%29.aspx
www.codeplex.com/site/search?query=game&sortBy=Relevance&licenses=|&ac=8
XNAでも良ければこの辺を見てみて。

>>648
死んでないし2chのスレも残ってはいるけど過疎状態だよ。

651 名前:名前は開発中のものです。 mailto:sage [2010/04/09(金) 08:51:09 ID:mLMsOfB3]
勢いで行けばここの方が過疎ってるけどな
ただゲーム製作と関係無い話しかしてないっぽいけど・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<255KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef