3

I currently have some issues while developing a game. I wanted to use the Unreal Engine 3 (or rather UDK) since it suits perfect to our needs. Whatsoever, a multi-platform experiencies is a essencial aim. The UDK and Unreal Engine 3 is compatible with a lot of platforms though in my eyes there is no official documentation of OpenGL support.

I thought a while and asked myself, why don't "just" change the core of UE3 to use OpenGL calls instead of DirectX?

What do you think, would that be working and suitable?

vallentin
  • 23,478
  • 6
  • 59
  • 81
DevilsJin
  • 109
  • 1
  • 13
  • 1
    Sounds like you would like to replace the complete DirectX usage of the core with OpenGL ? I guess this WOULD be possible, if you have deep knowledge of the UE3 and its rendering techniques. But even then, it probably takes A REALLY LONG TIME to get that done and you will not have the expected results. I just did a quick reseach and, as it seems, in 2011 there was an option in the UDKengine configuration file that might still be there, however, the option did not seem to work properly. Maybe you should research something like "UDK OpenGL Configuration". – Hexo Jan 07 '14 at 22:46
  • 1
    Yes listen to this guy (@SlapY)... Technically it would be possible to replace DirectX with OpenGL in UE3, but as SlapY said, it would take a huge amount of time and knowledge of how both UE works and how OpenGL works, as well as how to translate all the DirectX calls into OpenGL calls, since they don't have and/or share the same function names, etc... When that is said, you would probably be way better of if you made your own engine for the game, that have a lot of advantages when doing that instead! – vallentin Jan 07 '14 at 23:17
  • 1
    @Vallentin: Actually replacing the renderer of a game engine is not so hard, as it's only a small part of a game engine. – datenwolf Jan 07 '14 at 23:27
  • @datenwolf: That kinda depends on the engine and how smart it was made. If it was cleverly made, then probably would be easy, but if it wasn't then it can be a really huge pain! – vallentin Jan 07 '14 at 23:37
  • I agree to both of you. It strongly depends on the wrapping technique of the UE3. In my engine, it would definatly take more time - while in Delta Engine the wrapping is nearly atomic. Even a cleverly made engine can be hard to port. Back in the days, the rendering of a Triangle in OpenGL required no vertex buffers, while DirectX strongly relays on them until today. I don't know how OpenGL currently works but back then, you could not just switch prefixes to make stuff work - and I guess it's still not that easy. So: I would strongly advise against porting the UE3 core to OpenGL on your own !!! – Hexo Jan 07 '14 at 23:44
  • @SlapY: The Unreal Engine is incredibly well modularized and as a matter of fact there exist several unofficial OpenGL renderers for the older versions of the Unreal Engine. I'd say for the UE this is a manageable task, although with all the modern rendering techniques involved it's quite an amount of work to port all of this. – datenwolf Jan 07 '14 at 23:49
  • 1
    You would not want to attempt this in the first place. The whole point of using an engine like Unreal is portability, and if you start interfacing directly with a particular API then you just lessened the overall value of licensing the engine rather than developing your own or licensing a less expensive / less portable engine. By the way, in the context of games, D3D and OpenGL are only a small portion of the number of APIs you have to deal with - there are proprietary APIs for every game console (and they are ***very different*** between generations in the case of PlayStation). – Andon M. Coleman Jan 07 '14 at 23:59
  • 1
    Also, UE3 already has an OpenGL backend, otherwise there would be no UE3 based games shipping on OS X. To that end, it even has support for OpenGL ES. – Andon M. Coleman Jan 08 '14 at 00:07
  • @datenwolf: I've read, that OpenGL renderers exist and I would rather recommend to use one of them than write one. Never the less, everything can be a manageable task. If you have the time, knowledge and skill (or enough of the former to gain the latter). But seriously, if somebody has to ask about this, I would suggest it would be way to much for him. However: Even if the UE3 is well modularized etc, and as Andon said, this is not the point of using UDK/UE3 in the first place. – Hexo Jan 08 '14 at 00:10
  • Andon: We are actually talking about UDK. As stated above, I've only found out about a configuration option that did not seem to work in 2011 and as @datenwolf said, there are many custom OpenGL renderer - so I think we have succeeded this point of information already. – Hexo Jan 08 '14 at 00:11
  • Thanks for your replys ! I think I stated some facts wrong - it's not about the licensed UE3 than the free UDK. I don't even know if changing their engine that way is compatible to the license. I know the UDK/UE3 is made for portability to such different OS and machines as consoles, desktop pc's etc. Though I don't think developing and adding an OpenGL renderer would be painful or just a mass waste of time since the UE3 is a very powerful engine with much more features than just the portability to go ! And I googled a lot but only found a reference to this thread... would be glad about a link – DevilsJin Jan 13 '14 at 13:41

0 Answers0