If i modify the engine source code, can i make the engine run on older pc's or laptops
I was just wondering, because for the game i am working on, i plan on making the game accessable to any pc user who owns a DX9 or DX11 PC.
asked Apr 17 '14 at 04:19 AM in C++ Programming
The engine with the code generation setup is very complex....
In older engines (not sure about the workflow of ue3) like Id's idtech3 (quake3) you would have precompiled dlls as engine modules and use the engine as a sandbox... These moduls had only a single target platform... which is nice from a developer's viewpoint.
If you want to target a platform you have to consider many things besides if you want to use directx or opengl.... What's about the Networking, File System, i/o controls and so on...
As far as i know quake3 was written in c... After they pushed the code to opensource fans instantly began to port it to unix... And that took quite some effort even though it was in c and used opengl...
Now ue4 is developed with the most general cross platform ambitions in mind. As far as i can tell they wrote their codebase in a way that in theory they can support every platform there is...
To do so they don't simply build the game for one platform change some lines of code and build it for another platform...
If you look into a Game project you have 3 folders... "Engine" "Games" "Programs"
In Programs you have a lot of tools like (very important) the UnrealBuildTool or the AutomationTool
When you compile in Visual Studio you DONT compile the Game or the Engine Code... You compile the Programs like the UnrealBuildTool and then they are run by Visual Studio... The UnrealBuildTool then Compiles the other sources depending on which target you are choosing...
And here is why:
If you want for example use your network Connection to simply "talk" to other devices in your LAN you open a socket and send some data on it... But opening a Socket works completely different on Windows than on Android or IOS or what if your game runs on HTML5.... or Playstation or Xbox.... Not only different OS-specific APIs but different workflows and restrictions you have to take into consideration.
And that's what the buildtools do for you so you can only say "jea send some package to xyz" and dont care about if you are on android or xbox...
to conclude and get back to your question: You would have to code a new Target... that means you have to dig into the whole buildtoolsystem, find out how the lightning system works in this whole process and how the shaders for different platforms are compiled and then create your own target platform....
So... it would be interesting and you would learn more about software architecture than any university in the world could teach you but basically overkill if you just want to run your game on older pcs...
i hope this answer provides you with a "No" you can accept because you know why :)
P.s. If you do so please write some Tutorials because i am still scraping just on the surface of how things really work in ue4....
answered Apr 17 '14 at 07:03 AM
I think the simple answer is no.
answered Apr 17 '14 at 05:03 AM
Yes, through OpenGL support.
From post #6 by a developer. Obviously, this may change, but...
Does UE4 support DX9? What about WinXP?
UE4 does not currently support DX9 or WinXP. We plan to use OpenGL to run on WinXP in the future. Most of our features are supported on OpenGL3 as you can see on Mac OSX today and we have been working with NVIDIA to support our full feature set on OpenGL4.
Will UE4 support DX12?
Yes. Epic will be working closely with NVIDIA and Microsoft to create a world-class implementation of DX12 in Unreal Engine 4.
answered Apr 17 '14 at 04:40 PM
the question is yes but also why would you because you would have remove so much from the engine as well or make it very lite where you be better off with current get then using last gen or use something like idtech engine and customize that instead.
answered Feb 03 '18 at 09:32 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here