タグ付けされた質問 「c#」

C#は、Microsoftが.NETプラットフォームと組み合わせて作成した、マルチパラダイムで管理され、強く型付けされ、ガベージコレクションされたプログラミング言語です。

5
C#はリアルタイムゲームサーバーに適していますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 閉まっている 5年前にました。 質問のほとんどはタイトルにあります。 基本的に、2Dマルチプレイヤーアクションゲームの開発を始めています。クライアントは(おそらく)XNAに参加することになるので、サーバー側の開発にもC#を使用することをお勧めします。 言語が管理されているという事実は、MMOゲームサーバーでさえJavaが使用されているため(問題がある場合は修正してください)、問題にはならないので、この目的でC#を避ける理由はありますか?TCPを介して通信し、SQLサーバーとチャットするために、高速で応答する必要があります。そして、C#を避ける理由がない場合、そのようなWebサーバーをどのように展開しますか?それはサーバーマシン上で実行される.NET EXEでしょうか?
22 c#  server 

4
物理エンジンの更新の問題の勢いと順序
この質問は、衝突の検出と解決に関する以前の質問からの「フォローアップ」質問であり、こちらで見つけることができます。 前の質問を読みたくない場合は、私の物理エンジンがどのように機能するかについて簡単に説明します。 すべての物理エンティティは、SSSPBodyと呼ばれるクラスに格納されます。 AABBのみがサポートされています。 すべてのSSSPBodyは、すべてのボディを更新し、重力を処理するSSSPWorldと呼ばれるクラスに格納されます。 すべてのフレームで、SSSPWorldはすべてのボディを更新します。 更新されたすべてのボディは、空間ハッシュで近くのボディを探し、それらとの衝突を検出する必要があるかどうかをチェックします。「はい」の場合、「衝突」イベントを呼び出し、それらとの衝突を解決する必要があるかどうかを確認します。はいの場合、侵入ベクトルと方向の重なりを計算し、侵入を解決するために位置を変更します。 ボディが他のボディと衝突すると、ボディの速度をそれ自体に設定するだけで、ボディの速度が他のボディに転送されます。 ボディの速度は、最後のフレームから位置を変更していない場合、0に設定されます。また、移動する物体(リフトや移動するプラットフォームなど)と衝突する場合、リフトの移動差を計算して、物体が最後の位置から移動していないかどうかを確認します。 また、ボディは、AABBのすべての角がフレーム内の何かと重なったときに「クラッシュ」イベントを呼び出します。 これは私のゲームの完全なソースコードです。3つのプロジェクトに分かれています。SFMLStartは、エンティティの入力、描画、更新を処理するシンプルなライブラリです。SFMLStartPhysicsは、SSSPBodyクラスとSSSPWorldクラスがある最も重要なものです。PlatformerPhysicsTestは、すべてのゲームロジックを含むゲームプロジェクトです。 そしてこれは、SSSPBodyクラスの「更新」メソッドであり、コメント化および簡略化されています。SFMLStartSimplePhysicsプロジェクト全体を見たくない場合にのみ、これを見ることができます。(そして、たとえ行ったとしても、コメントされているので、これを見てください。) .gifは2つの問題を示しています。 ボディが異なる順序で配置されている場合、異なる結果が発生します。左側のクレートは右側のクレートと同じで、逆順でのみ配置されます(エディターで)。 両方のクレートを画面の上部に向けて推進する必要があります。左側の状況では、木枠は推進されません。右側では、そのうちの1つだけです。両方の状況は意図していません。 最初の問題:更新の順序 これはかなり簡単に理解できます。左側の状況では、最上位のクレートが他のクレートの前に更新されます。下部のクレートが速度を他のクレートに「転送」しても、次のフレームが移動するのを待つ必要があります。移動しなかったため、下枠の速度は0に設定されます。 これを修正する方法がわかりません。物理エンジンの設計全体で何か間違ったことをしていると感じているため、更新リストの「ソート」に依存しないソリューションを好むでしょう。 主要な物理エンジン(Box2D、Bullet、Chipmunk)は更新順序をどのように処理しますか? 2番目の問題:1つのクレートのみが天井に向かって推進されます 私はまだこれが起こる理由を理解していません。「スプリング」エンティティが行うことは、ボディの速度を-4000に設定し、スプリング自体の上に再配置します。再配置コードを無効にしても、問題は引き続き発生します。 私の考えは、下のクレートが上のクレートと衝突すると、その速度は0に設定されるということです。これがなぜ起こるのかわかりません。 最初の問題をあきらめる誰かのように見える可能性にもかかわらず、私は上記のプロジェクトソースコード全体を投稿しました。私はそれを証明するものは何もありませんが、信じてください、私はこれを修正するために一生懸命努力しましたが、解決策を見つけることができず、物理学と衝突に関する以前の経験はありません。私はこれらの2つの問題を1週間以上解決しようとしてきましたが、今は必死です。 ゲームから多くの機能(速度転送やスプリングなど)を取り除くことなく、自分で解決策を見つけることはできないと思います。 この質問を読んでくれてありがとう。また、解決策や提案を考えてみてください。

2
XNA 4.0でスプライトスケーリングのテクスチャフィルタリングを無効にするにはどうすればよいですか?
XNAで拡大しようとしているスプライトがありますが、XNAはそれを滑らかにして見苦しくする何らかのテクスチャフィルタリングを適用しています。補間の代わりにピクセルの倍増を行うだけです。どうすればそれを達成できますか?

4
アイランドマップマスクを作成する簡単な方法
私は、C#を使用して島のマップのマスクを生成するための素敵で簡単な方法を探しています。 基本的には、地形が水に囲まれていないパーリンノイズで生成されたランダムハイトマップを使用しています。 次のステップは、マスクを生成して、角と境界がただの水であることを確認することです。 その後、perlinノイズ画像からマスクを差し引くだけで島を取得できます。 コントラストをいじって 勾配曲線を使用すると、希望どおりに島の高さマップを取得できます。 (これらはもちろん単なる例です) ご覧のとおり、島の「エッジ」は切り取られていますが、カラー値が白すぎない場合は大きな問題ではありません。グレースケールを4つのレイヤー(水、砂、草、岩)。 私の質問は、2番目の画像のように見栄えの良いマスクをどのように生成できますか? 更新 私はこの手法を見つけましたが、それは私にとって良い出発点のようですが、目的の出力を得るためにどの程度正確に実装できるかわかりません。 http://mrl.nyu.edu/~perlin/experiments/puff/ 更新2 これが私の最終的な解決策です。 makeMask()このように正規化ループ内に関数を実装しました。 //normalisation for( int i = 0; i < width; i++ ) { for( int j = 0; j < height; j++ ) { perlinNoise[ i ][ j ] /= totalAmplitude; perlinNoise[ i ][ j ] …

2
オブジェクトが何であるかに基づいてコンテキストメニューを設計する方法
「右クリックオプション」動作のソリューションを探しています。 基本的に、ゲーム内のすべてのアイテムは、右クリックすると、オブジェクトが何であるかに基づいて一連のオプションを表示できます。 さまざまなシナリオの例を右クリックします。 インベントリ:ヘルメットはオプション(装備、使用、ドロップ、説明)を表示します 銀行:ヘルメットにオプションが表示されます(テイク1、テイクX、すべてテイク、説明) フロア:ヘルメットはオプションを表示します(テイク、ここを歩く、説明) 明らかに、各オプションは、言われていることを行う特定の方法を何らかの形で指し示しています。これは、私が理解しようとしている問題の一部です。単一のアイテムに非常に多くのポテンショニングオプションがあるのに、クラスを非常に乱雑にならないように設計するにはどうすればよいですか? 私は継承について考えましたが、それは本当に長くかかり、チェーンが巨大になる可能性があります。 インターフェイスを使用することを考えましたが、Xmlファイルからアイテムデータをロードして汎用の「Item」クラスに配置することができないため、これはおそらく少し制限されます。 Runescapeと呼ばれるゲームに基づいて、目的の最終結果を作成しています。ゲーム内ですべてのオブジェクトを右クリックすると、オブジェクトの種類や場所(インベントリ、フロア、銀行など)に応じて、プレーヤーが操作できるさまざまなオプションセットが表示されます。 これをどのように達成しますか?まず、どのアプローチをとるべきか、どのオプションを表示すべきかを決定し、クリックしたら、対応するメソッドを呼び出す方法を決定する必要があります。 私はC#とUnity3Dを使用していますが、実際のコードとは対照的にパターンを追っているので、提供された例はどちらにも関係する必要はありません。 どんな助けでも大歓迎です。質問や希望する結果が明確でない場合は、コメントを投稿してください。できるだけ早く対応します。 ここに私がこれまで試したものがあります: 私は実際に、さまざまな種類のアイテム(追加攻撃、追加防御、コストなど)のすべての値を保持する一般的な「アイテム」クラスを実装することができました。これらの変数には、Xmlファイルのデータが入力されます。 可能な限りすべての対話メソッドをItemクラス内に配置することを考えましたが、これは信じられないほど面倒で貧弱なフォームだと思います。おそらく、1つのクラスのみを使用し、異なるアイテムにサブクラス化することにより、この種のシステムを実装するための間違ったアプローチを取っていますが、Xmlからデータをロードしてクラスに保存できる唯一の方法です。 Xmlファイルからすべてのアイテムをロードすることを選択した理由は、このゲームが40,000以上のアイテムを使用できる可能性があるためです。私の数学が正しければ、各アイテムのクラスは多くのクラスです。

2
シーン全体をグレースケールにフェードさせる
プレイヤーがすべての命を失ったとき、ゲーム画面全体をグレースケールにしたいが、すぐに更新を停止したくない。また、突然すべての色が失われるのではなく、グレースケールにフェードインすることを好みます。私がこれまでに見つけたのは、スクリーンショットを撮ってグレースケールにするか、特定のテクスチャをグレースケールにすることです。すべてを繰り返すことなく、競技場全体とその中のすべてのオブジェクトをグレースケールに変更する方法はありますか?
20 xna  c# 

2
宇宙人工物からの大気散乱空
私は宇宙からの惑星の大気散乱を実装する過程にいます。http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.htmlからSean O'Neilのシェーダーを出発点として使用しています。 ここにあるGroundFromSpaceシェーダーではなく、SkyFromSpaceシェーダーを除いて、fCameraAngleに関連する問題はほとんどあります。http://www.gamedev.net/topic/621187-sean-oneils-atmospheric-scattering/ fCameraAngle = 1内側のループで使用していない場合、スペースシェーダーから空の奇妙なアーティファクトを取得します。これらのアーティファクトの原因は何ですか?fCameraAngleが1に制限されると、アーティファクトは消えます。O'Neilのサンドボックス(http://sponeil.net/downloads.htm)にある色相も欠けているようです。 カメラ位置X = 0、Y = 0、Z = 500。左側のGroundFromSpace、右側のSkyFromSpace。 カメラ位置X = 500、Y = 500、Z = 500。左側のGroundFromSpace、右側のSkyFromSpace。 カメラの角度は、ソースに応じて非常に異なる方法で処理されるようであることがわかりました。 元のシェーダーでは、SkyFromSpaceShaderのカメラアングルは次のように計算されます。 float fCameraAngle = dot(v3Ray, v3SamplePoint) / fHeight; 一方、スペースシェーダーの地面では、カメラの角度は次のように計算されます。 float fCameraAngle = dot(-v3Ray, v3Pos) / length(v3Pos); しかし、さまざまなソースがオンラインで、レイを否定しています。どうしてこれなの? 問題を示し、画像の生成に使用したC#Windows.Formsプロジェクトは次のとおりです。https : //github.com/ollipekka/AtmosphericScatteringTest/ 更新: O'NeilのサイトにあるScatterCPUプロジェクトから、カメラがシェーディングされているポイントの上にあるときにカメラレイが無効になり、ポイントからカメラへの散乱が計算されることがわかりました。 光線の方向を変更すると、実際にアーティファクトは削除されますが、次に示すように他の問題が発生します。 さらに、ScatterCPUプロジェクトでは、O'Neilは光の光学的深さが0未満の状況から保護します。 float fLightDepth = Scale(fLightAngle, fScaleDepth); …


7
2Dゲームをプログラミングする最も簡単で楽しい方法は?フラッシュ?XNA?他のエンジン?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 これは、趣味のゲームプログラマーがゲームを作る自由な時間を甘くするための最も楽しい方法についての私の検索を詳述する投稿です。 私の要件: 最初にFlashを見て、いくつかの小さなゲームを作成しましたが、パフォーマンスには疑問があります。数百のユニットが同時に戦闘し、爆発とアニメーションを含む、かなり大きな戦略ゲームを作りたいです。また、ズーム可能なマップ。AdobeにはFlash用の新しい3D APIがあることがわかりましたが、2Dのパフォーマンスが向上するかどうかはわかりません。MAX10セッションでその質問に関連するものは見つかりませんでした。Flashは大規模な2Dゲームを簡単に作成するための優れた技術だと思いますか?私はActionscriptが大好きで、Flashのすべてがとても簡単です。さらに簡単にするエンジンがいくつかあります。 私はただ楽しみのためにこれを行いますが、適切なアニメーション/パーティクルエディタが利用でき、使用するエンジンが複数のプラットフォームで利用可能であればさらに良いでしょう。(したがって、より多くの人が私のゲームをプレイできます)。多くのモバイルプラットフォームでも利用できるようにしたいと思います。(何らかの理由でタッチ入力が大好きだから) XNAフレームワークはかなりよく知っていますが、使用できる適切なエンジンはなく、Windowsでのみ実行されます。これは大きなターンオフです。さらに大きいのは、誰かにゲームを提供するたびにXNA再頒布可能パッケージをインストールする必要があるということです。XNAを使用する場合、すべてのツールを自分で作成する必要があり、おそらくWPFで作成する必要があります。(Adobe AIRでツールを作成したいのですが、残念なことに、画像操作などのAPIはXNA / WPFよりもFlashの方がはるかに悪いです。)これらのプラットフォームのそれぞれをサポートしていますが、率直に言って、APIをすり抜けるのは面倒です。結局、エンジンではなくゲームを作りたいです。 質問は次のようになります:2D開発に使用できるクロスプラットフォーム(無料または開発無料)エンジンが利用可能か 私は好む:C#、Actionscript。ツールセットが平均以上であればc ++を使用しても構いませんが、そのようなものが存在することは非常に疑わしいです。間違っていることを証明してください:)だから要約:Flashを使用したいのですが、十分に拡張できるかどうかわかりません。私はスクリプト作成者ではありません。適切なIDE内で作業できる実際のAPIが必要です。 情報を得るためだけに、いくつかの選択肢を検討しましたが、実際にはすでに長い間探しています。あなたは最終的に決定を下すために私をたくさん助けてくれるでしょう。 機能的にはFlatredballエンジンが理想的です。しかし、私は彼らのツールを試しましたが、率直に言って、それらは恐ろしいものです。絶対に使えないので、自分で作る必要があります。私は彼らのAPIを見ていませんでしたが、もし彼らのツールが非常に悪いのであれば、私はこれ以上調べるつもりはありません。 Unity3D。これは非常に素晴らしいですが、私は本当に3Dを必要としません、そして、それは非常に...学ぶべき多くの仕事です。また、さまざまなプラットフォームで使用するのが非常に高価であり、スクリプトでしかコーディングできないことも気に入らない。各プラットフォームを個別に購入する必要があります。編集者の使いやすさは平均的で、製品全体はほとんどの目的に十分ですが、自分で学習するのはやり過ぎです。 シヴァ3D。十分に見えますが、繰り返しますが、3Dは本当に必要ありません。私の意見では、エディターの使いやすさはUnity3Dより少し悪く、プログラミングを開始する方法が明確ではありませんでした。コーディングにはC ++が必要だと思うので、それもマイナスです。私は楽しみたいです、そしてc#は楽しいです;) SDL。率直に言って、私はまだこれらすべての異なるSDL実装に移植する必要があります。また、OpenGLスタイルのプログラミングは好きではありません。また、C ++が必要です。使用可能なラッパーがあるかもしれませんが、ラッパーを使用するのは好きではありません。 不条理。多くの機能がありますが、サポートは低く、マニア向けです。C#バインディングは繰り返しドロップされます。私はエンジン愛好家ではありません。ゲームを作りたいだけです。Irrlichtでこれが発生することはありません。 Ogre3D。あまりにも多くの作業、それは単なるグラフィックエンジンです。また、複数プラットフォームのサポートとc ++もありません。 Torque2D。使用するには費用がかかりますが、サポートやドキュメントについての良いことはあまり聞いていません。プラットフォームごとに追加料金もかかります。
20 c#  2d  actionscript-3 

11
XNA開発チュートリアル[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 閉じた3年前。 XNAフレームワークを使用して開発するための基本的なスターターチュートリアルはどこで入手できますか?
20 c#  xna 

7
XNA用のいくつかの既知の2D / 3D物理エンジンとは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 XNAプロジェクト(2Dまたは3D)で使用する物理エンジンを探しています。XNA用であるため、いくつかの要件を満たす必要があります。 必ずしも無料ではありませんが、それに近いことが明らかに好まれます マネージコードのみ(または360では実行されません) 3Dの場合-BulletX(動作し、現在使用していますが、アクティブではなく、より多くの作業を使用できます) 私が知っている2Dの場合-Farseer
20 c#  xna  physics-engine 

2
ゲームの仕事でC ++の実務経験を積む最良の方法(C#から提供)[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私はソフトウェア開発者であり、他のいくつかの言語とともにC#(5年の経験)を経験しています。 私の「夢の仕事」は、開発者としてビデオゲームで働いています。 ほとんどの仕事にはC ++の知識が必要ですが、私は現在持っていません(一部の基本を除きます)。 私は見て回ったが、ほとんどの大手ゲーム会社は、C ++の3〜5年の過去の経験に沿って何かを必要としています。 私の質問は、C#から来て、この必要な経験レベルに到達するための良いルートは何でしょうか? 私はそれを行ういくつかの可能な方法を考えました: C ++についての知識を書籍から入手してください。C ++で記述されたオープンソースプロジェクトに参加します。特にゲーム業界で、C ++を学習し、実用レベルの経験を積むための最良の方法は何でしょうか?

2
Visual C#Express Editionで作成されたXNAゲームを合法的に販売できますか?
Visual C#Express Editionをダウンロードしましたが、起動時に「評価目的のみ」と表示されます。これは何を意味するのでしょうか? これは、作成したゲームを合法的に販売するためにフルバージョンを購入する必要があるということですか?または、無料のエクスプレス版のみを使用できますか?私は本当にゲームを作りたくなくて、売れないことを知りたくありません。
19 xna  c#  legal 

5
円(画像)内のランダムポイント(ピクセル)を計算する
特定の場所に特定の直径の円を含む画像があります。私がする必要があるのは、円内のランダムな点を計算し、その点が相関するピクセルを操作できるようにすることです。私はすでに次のコードを持っています: private Point CalculatePoint() { var angle = _random.NextDouble() * ( Math.PI * 2 ); var x = _originX + ( _radius * Math.Cos( angle ) ); var y = _originY + ( _radius * Math.Sin( angle ) ); return new Point( ( int )x, ( int )y ); } …
19 c#  algorithm 

2
「インスタンス化するオブジェクトはnullです」しかし、動作します。エラーを無視できますか?
これは私には一度も起こったことがないので、少し混乱しています。 GameObject someObject = Instantiate (Resources.Load ("Prefabs/Items/" + someName)) as GameObject; これによりエラーがスローされますが、オブジェクトは実際にインスタンス化され、すべてが意図したとおりに機能します。このエラーを何度再現しても、プログラムは停止しません。 このエラーを無視できますか、または表示されない問題がありますか?
18 unity  c# 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.