PDA

View Full Version : Is this possible with qt?



Nathan2222
3rd December 2013, 01:00
Hi all. I’m new to the forum.

Sometime in the future (not so far future), i’ll start creating my game engine :). It’ll be based on the ogre3d rendering engine.
I’m a windows guy and i like what directx does. The problem is qt uses opengl but it’s also open source.

This is a part of what i intend on integrating into ogre 3d to make a full game engine:

Physics:
1. Physx + source code for physics engine
3. Beam Ng (car physics and by the time it’s completed, everthing PS: I contacted them)
2. Custom physics engine for the game engine (combination)
3. Havok Physics, Havok Cloth etc.
4. ODE
5. Bullet

Sound:
1. Fmod Studio

Graphics Renderer:
1. The base which is Ogre 3d

Game Engine Camera:
1. All views

Asset creator:
1. Blender
2. Zbrush
3. Gimp

Graphical Interface/API:
1. DirectX
2. Open GL (later on)

Platform:
1. Windows PC
2. Others later on

Language:
1. C++ (obviously)
2. Lua as scripting language

Genre of games for engine:
1. OPEN WORLD
2. Racing
3. FPS (maybe)

AI:

1. Custom AI for engine (combination) – Character AI – NPC AI – Enemy AI etc.
2. Universal AI Kit from torque (i’ll just use it to as a reference for creating mine)
3. Tactical AI Kit from torque (reference also)
4. Havok AI

Lighting:
1. Ogre 3d

World Size supported by engine:
1. Large worlds up to 10km x 10km. :D

Loading Screens:
1. For open world- NONE
2. For Levels: Maybe

Others:
1. Ragdoll physics
2. Motion Capture support
3. etc.

I’ve not yet downloaded qt, trying to evaluate how i’m going to download such a large program. :confused:
At the moment, i’m using vc++ and it does be able to do what i want or i may not just really know how to use it.

I really need to be able to design the gui, and i don’t thing vc++ can allow me that pleasure without killing me.

I know making this engine is going to take a considerable amount of time but at least, i have a plan and i also have a software idea that if it works out, it'll reduce development time by up 30-50%.
I am not making the engine to learn game creation so i already know about the “create games, not engine” article. Rather, i’m creating the engine to create a game because no engine gives the functionality i need even though two came very close, Torque 3d and cryengine but they still lack some things i will need.

Is it possible to do all this with qt and please is it possible to code/enable directx11 support for qt?

I really like the feel of qt and would love it if this is possible.
Thanks :)

Nathan2222
3rd December 2013, 23:03
I probably misunderstood the purpose of this forum. I thought it was a help forum for newbies but considering the reply rate i shouldn't have expected anything else. No offence but that's what i've seen:mad:

ChrisW67
3rd December 2013, 23:32
The purpose of the forum is to support Qt Newbies. The is no service level agreement that requires answers from volunteers within minutes, hours, or even at all.

Qt is a cross-platform library not a compiler. If you can build C++ code for your engine/game that uses all those libraries and components without the Qt library then you can almost certainly build the same program including the Qt library for some components. You will need to use a consistent C++ compiler toolchain across the project's C++ components, including Qt. There also some documented collisions (and workaround) between Qt and Boost Signals if they are also present somewhere it that pile of pieces.

If you want to use DirectX directly in a program that is also using the Qt library nothing is stopping you (in some configurations Qt5 uses a DirectX abstraction layer (ANGLE) itself). Of course you will have to develop for Windows only and you will likely have to use Microsoft's SDK and compilers (possibly counter to your "Platform: 2. Others later on" goal). Ogre3d abstracts some of that away but requires Microsoft's tool chain on Windows AFAICT.

stampede
3rd December 2013, 23:42
What kind of answer do you want ? If you are able to code all those things on your list, then using Qt as a gui layer will be trivial for you.
If the only thing you are asking is "Is it possible to use DirectX in Qt ?" then why bother posting all those fancy engine features ? Yes it is possible to use DirectX, even a quick google query "directx in Qt" will return some useful links. Be more specific if you want reasonable answers, and please, don't be rude, because this is a community forum, nobody is obliged to even read your posts.

Nathan2222
4th December 2013, 00:31
Sorry about the rudeness. :o Sorry.




If you want to use DirectX directly in a program that is also using the Qt library nothing is stopping you (in some configurations Qt5 uses a DirectX abstraction layer (ANGLE) itself). Of course you will have to develop for Windows only and you will likely have to use Microsoft's SDK and compilers (possibly counter to your "Platform: 2. Others later on" goal). Ogre3d abstracts some of that away but requires Microsoft's tool chain on Windows AFAICT.

If there isn't a possibility of integrating both opengl and directx support like ogre3d does, then it looks like i'll have to settle for windows only:confused:

Added after 6 minutes:

Just read a thread on the ogre3d forums on how it manages both directx and opengl. It says it uses separate rendersystem plugins for dx and opengl. I don't know if that is feasible for a game engine:confused:

ChrisW67
4th December 2013, 01:10
If you use Ogre3d's abstraction, and not DirectX directly, then you get whatever features that Ogre provides on whatever platforms it is supports them. Plugins, like the DirectX/OpenGL support in Ogre, are dynamically loaded implementations of a common abstract interface. This is a very common technique you can implement yourself (also used inside the Qt library).

anda_skoa
4th December 2013, 10:26
Just read a thread on the ogre3d forums on how it manages both directx and opengl. It says it uses separate rendersystem plugins for dx and opengl. I don't know if that is feasible for a game engine:confused:

Most serious game engines do that. OpenGL is needed for console and mobile gaming but it is badly implemented on Windows, so they need Direct3D there.

As ChrisW67 said, Qt also works around that Windows limitation by using ANGLE, thus only having to support OpenGL on all platforms.

Cheers,
_