スタンドアロンとしても、winformアプリケーション内でも実行できる小さなエンジンで作業しています。 これまで私は両方とも動作していましたが、唯一の問題は、ビジュアルスタジオでのデバッグ中に、winformアプリケーションのゲーム画面の更新が遅くなり、結果としてプレーヤーが遅れてしまうことです。Native C++ OpenGLからManform C++へのWinform C# - デバッグ中の遅い
ただし、作成した.exeをデバッガなしで開くと、スムーズに実行されます。
私は簡単にwinformを編集して、自分の変更を見て、遅滞なくゲームをプレイできるように頼んでいます。
https://github.com/insanepure/SweetEngine/
Sweet.Editorが管理C++アプリケーションであるSweet.Wrapperに依存C#Winフォーム、次のとおりです。
あなたはここに私のコードを見ることができます。これは、Sweet.Game(ゲーム専用コンポーネント、スタンドアロンとしても実行可能)とSweet.Engine(Sweet Coreなどに依存しますが、Sweet.EngineをSweet.Gameに含める必要があるため抽象化しています)
このツールは、特定のPanelのHWNDを取得し、新しいHWNDを作成するのではなくそのHWNDを使用してエンジンを作成するという仕組みです。これがスタンドアロンとツールの唯一の違いです。
私はSweetEngine内で自分のループを実行している可能性があります。 winformがUpdateとRenderを呼び出すようにこれを変更しようとしましたが、これは何とか別のループで実行するよりも遅かったです。 また、アプリケーションとUpdateおよびRenderを呼び出すよりも速い理由がわかりません。
私が遭遇したもう1つの問題は、ネイティブのC++コードをデバッグできないため、その内部でステップできないことです。これは何とか修正できますか?