Golf It!
Icy Sep 14, 2017 @ 2:21pm
Differnce between DirectX 10 and just Play Golf It!
Exactly what the title is. I'm wondering if there is any differnce between the two and if so what are they. Thank you
< >
Showing 1-2 of 2 comments
Perfuse Entertainment  [developer] Sep 15, 2017 @ 1:13am 
Hey,

the normal "Play Golf It!" is with DirectX 11.

Take care,

Jonas
Rahorah Sep 15, 2017 @ 2:10am 
short answer: "Play Golf It!" starts the game with DirectX 11 and the option "DirectX 10" starts it with DirectX 10. Some graphics cards don't support DirectX 11 and this was added to make the game playable for them.


long answer: DirectX is a collection of APIs to handle multimedia. An API is an interface to talk to a program. It is like you say: "Draw a line here, play a sound there." Why? Because your computer is a combination of hardware and software. And both have to work together.

To talk to a processor, here the graphics processor (GPU), you have to use its instruction set. And this can be different from manufacturer to manufacturer but also from generation to generation or even from model to model. AMD uses different architecture and instruction sets than Intel. So if you would want to make a game under this circumstances, you would need to make an extra version for every graphics card and processor out there.

Microsoft created DirectX to prevent this as a middle man. A game is sending DirectX-instructions to DirectX, this translates and sends it to the driver and he is doing the work on the hardware. (This explanation is not really correct but sufficient.) And that is one reason, why you have to update your games, (steam), the graphics card driver AND windows.

(The hardware limits the usable instruction set, because it understands what it knows and it is like it is created. When you have DirectX 12 installed on your computer and your graphics card only supports DirectX 10, then DirectX will only use the part of its instructions, which can be understood by the graphics card. You should have an up to date version of DirectX nontheless.)


Many recent games don't have their own game engine but use a premade one. That is not a bad thing, as we all want to have games and not wait for game developers to spend years on their own (and not working) engine. We all know, how many problems even big companies have with theirs. Golf It! uses the UE4 engine. So Jonas only has to care about the peculiarities of the unreal engine. And the chain is Golf It! > UE4 > DirectX > Driver > Hardware.

The unreal engine normally needs DirectX 11 as a minimum. But you can tell it to leave away some features and effects and still use it with DirectX 10. This is a part of UE4 itself and not the game. After the release of UE4 it was not possible to use DirectX 10 but over time they added support of it to make it playable on older systems.

From Wikipedia: "Direct3D 11 is a strict superset of Direct3D 10.1 — all hardware and API features of version 10.1 are retained, and new features are added only when necessary for exposing new functionality. This helps to keep backwards compatibility with previous versions of DirectX."

One of the main differences between 10 and 11 is multi-threading and tesselation. "Parts of the new API such as multi-threaded resource handling can be supported on Direct3D 9/10/10.1-class hardware. Hardware tessellation and Shader Model 5.0 require Direct3D 11 supporting hardware."


DirectX is a closed source monster of code. Everyone who worked with it, I talked to, said it is a nightmare to program using the DirectX-API directly. There is an alternative from the open source community called OpenGL. It is independent from Microsoft but a monster of code by itself. UE4 supports it too and Jonas activated it some day. (Remember, he doesn't have to deal with DirectX/OpenGL directly because he uses the unreal engine.) Because of that, I can play the game on Linux running in another "emulator".

But there is some light at the horizon. A new graphics API is on the way: Vulkan
This was created to have less overhead between it and the drivers. It will be usable when your graphics card driver supports it. UE4 already is prepared for it and only the game developers need to activate it, if their customers ask for it. Lets see how this will work out in some month/years.

Please correct me if anything is stupidly wrong.
< >
Showing 1-2 of 2 comments
Per page: 1530 50

Date Posted: Sep 14, 2017 @ 2:21pm
Posts: 2