engine/editor interaction

Started by
1 comment, last by neonic 10 years, 4 months ago

Hi,

I have my little engine/framework in c++ and dx 11. I am using vs 2013 rc with the latest compiler. My engine is compiled to static lib library and used in few sample applications. Now I want to have a world editor based on that engine and use qt for ui. The problem is that qt cannot be compiled at the moment for vs 2013 and I want to use the latest visual studio version for my engine so I can't link my engine as static library.

What would be the best way to use my engine with qt?

regards

Advertisement

You *could* get the Qt sources from http://qt-project.org/wiki/Get_The_Source

If I recall correctly there should be (at least) a VS2010 project coming with the Qt code - You could just use Visual Studios project converter to convert the VS2010 project to a VS2013 project.

However bear in mind that compiling Qt from source will most likely take some time.

Apart of that I highly recommend you to compile your engine as a dynamic library instead of a static library.

Think of a scenario where you would need to patch your game. If your engine is statically linked to the game executable, you'll always end up patching both, the game and the engine - regardless of where you fixed the bug (game or engine codebase). If you'd have a game executable AND a engine library you'd only need to patch one of them - depending on where you fixed the bug. (And that's just one example of why you should compile your engine as a dynamic library)

Visit my blog, follow me on twitter or check out my bitbucket repositories.

I did something similar only with WinForms for the editor application. I wrote a C# winforms application that spawned my engine.exe (C++) with a command line argument. This made the engine initialize without creating a window, and instead opened a network socket. It waited for the C# app to communicate with the engine, and when it did, the C# app passed in the HWND of a panel in my winforms app. Then, from there, whenever anything was done in the editor, it communicated via socket communication any changes that needed to be reflected in the engine application.

It worked pretty well for my needs.

This topic is closed to new replies.

Advertisement