2011-07-20 8 views
1

完全なネイティブアプリケーションでwin32を使用する必要がありますか、代わりにVC++ Expressのビジュアルモードを使用するとよいです。ネイティブアプリケーションでwin32を使用する

私はゲームエンジンのような大きなプログラムについて知りたいのですが、win32を使ってツールを提示していますか?

答えて

1

Win32 APIは、基本的にウィンドウ、コントロール、ソケットなどの低レベルのWindowsオブジェクトで動作するプロシージャのセットです。だから、あなたが "ネイティブ"と言うならば、あなたが何でもできる唯一の方法はWin32 APIを使うことです。

ゲームエンジンは、低レベルの観点からは非常に原始的です。ゲームエンジンは主にアルゴリズム、ポリゴン(低レベルの三角形の代わりに)、テクスチャなどのような抽象クラスです。 Windowsの観点からは、「ウィンドウを作成する」、「OpenGLを初期化する」のようなものです。他のすべてのものは、ほとんどがWindowsに関係していませんが、かなりクロスプラットフォームです。たとえば、OpenGLはWindows、Linux、Mac OSなどの特定のプラットフォームとは関係なく、OpenGLは常に同じです。異なるのは、ウィンドウを作成してOpenGLを初期化する方法だけです。

+0

私はそれを知っています。私は異なるエンジンで7年間ゲームを作っています。 SFMLを使って2次元のゲームエンジンを作成したいので、開始に関する情報を得るべきだと考えました。 – MahanGM

+1

これを7年間やったことがあれば、多かれ少なかれ優れたゲームエンジンがクロスプラットフォームであることを知っているはずです。これらのすべての低レベルのものをあなたのために行うので、あなたが本当にやることに集中することができます。私は10年間のWindowsプログラマであり、Win32 APIなしで行うことができれば、Win32 APIなしで実行できると信じています。それは「本当の」開発のために時代遅れです。たとえば、空のウィンドウを作成したいだけの場合、純粋にネイティブの実装は約50行のコードです。 – agibalov

+0

@ loki2302:「本当の」開発のための珍しい定義がありますか?特に、Windowsオペレーティングシステムの* APIなので、すべてのWindowsアプリケーションはある時点でWindows APIとやりとりする必要があります。はい、あなたはウィンドウを作るために少しのコードが必要ですが、あなたはそれが低レベルだと言って、あなたは何らかのフレームワークやライブラリでそれをラップします。 –

1

Windowsの場合、「Win32」と「ネイティブコード」は基本的に同じです。 .NETを使用してインターフェイスを構築している場合は、ネイティブコードではありません。もちろん、ネイティブコンポーネントと.NETコンポーネントを混在させたコードを記述することもできます。

大きな予算のゲームは、通常、Windows、Xbox 360、PS3、おそらくWiiやMacで実行する必要があるため、移植を容易にするためにネイティブコードで書かれています。私は例外があると確信していますが、私は複数のプラットフォーム上で実行され、マネージコードで完全に書かれた主要なソフトウェアは認識していません。

+1

「ネイティブコード」を書くと、移植が楽になると思われる理由を詳しく説明してください。私は同意しない。私はゲームがこれを行う理由はパフォーマンスのためだと思うだろう。 – kenny

+0

私はあなたが私の要点を得ていないと思う。とにかくありがとう。 – MahanGM

+0

(ほとんど)すべてのプラットフォームにC++がありますが、C#ではNintendo 3DS用のゲームを作成することはほとんどありません。それは私が意味するすべてです。 –

関連する問題