Two loosely related news items.
During presentations and hands-on demos at Crytek’s GDC booth, attendees can see for the first time ever full native Linux support in the new CRYENGINE. The CRYENGINE all-in-one game engine is also updated with the innovative features used to recreate the stunning Roman Empire seen in Ryse – including the brand new Physically Based Shading render pipeline, which uses real-world physics simulation to create amazingly realistic lighting and materials in CRYENGINE games.
Second, Valve has released ToGL as open source, a Direct3D-to-OpenGL translation layer, which the company itself uses for Dota 2.
DirectX 9c is a bit old, however I’m glad it’s open source since it will probably make it’s way into Wine where we can end the dependency on MS redistributables.
(which is explained here)
http://www.dedoimedo.com/games/wine-directx.html
Wine are already working on Direct-X, but lots of todos.
http://wiki.winehq.org/DirectX-ToDo
Edited 2014-03-11 14:45 UTC
You need to understand that Valve’s translator only needed to be good enough for the Source engine. Wine’s aims to be feature complete. It probably already is better than Valve’s
The fact that it works well with the original libs from MS should be proof of that.
Edited 2014-03-11 14:53 UTC
Well, that depends on what your aiming for. The trouble with that setup is that MS Direct X implementation isn’t technically written to operate on top of Linux’es OpenGL stack. Wine has to masquerade as emulated video drivers such that MS directX will work, which is a bit backwards from wine’s philosophy and is probably not very optimal. MS’es licensing terms prohibit mirroring of their DirectX libs, not to mention it’s a binary blob. It should not be viewed as more than an interim solution, IMHO. A better solution is needed for the long term. Linux + Wine needs to support directx natively, and based on my own experience it’s extremely hit or miss.
Wine has come a long way over the years. Never the less assuming CRYENGINE’s native DirectX implementation is more mature/complete, then I see a good opportunity for cross-pollination for these two open source projects.
Edited 2014-03-11 15:42 UTC
No. A thousand times no. Writing a decent graphics-card driver is already a vast undertaking, and that’s ‘just’ if you aim to support OpenGL (as current Linux drivers do).
Direct3D has no place being a first class citizen in Linux anyway. It’s Microsoft’s, and no-one else’s. Running Direct3D applications on GNU/Linux absolutely should mean mapping to OpenGL through Wine/Winelib/toGL.
Edited 2014-03-11 16:49 UTC
Wootery,
Then you must have misunderstood my post since I do not suggest making DirectX a first class citizen in Linux any more than the win32s are. However these *should* be first class citizens within Wine without dependance on proprietary MS software. The whole point of wine is to run windows software on linux. Those who see no value in this need only not install it.
Edited 2014-03-11 17:56 UTC
With respect, no, I didn’t really misunderstand. You were unclear.
You conflated Wine and Linux.
In what sense does Wine not already do as you are describing? It does support a respectable subset of Direct3D.
Looking at this Wikipedia article ( https://en.wikipedia.org/wiki/Wine_%28software%29#Software_a… ) I see that nowadays, using Gallium3D, Linux itself can be said to actually support at least some subset of Direct3D natively. Impressive bit of work, that.
Wootery,
I regret having caused the confusion and turning the thread into a train wreck However I really did mean Linux PLUS Wine. Linux does not support DirectX without Wine, and Wine can not support DirectX without the 3d graphics driver code from Linux, hence the “Linux + Wine”.
Parts of it are incomplete, unmaintained, and broken, which is the reason I was happy for this news.
Cool, that’s a recent development though, if it is merged in the next linux distro I install, I’ll be sure to take a look!
http://article.gmane.org/gmane.comp.video.mesa3d.devel/60445
Edited 2014-03-12 04:21 UTC
Please remember wine runs on BSD and OS X as well.
Also Linux can support so much direct x without wine. http://www.osnews.com/story/613/Direct_3D_8_0_Wrapper_for_OpenGL_Op…
Yes this is not the first time a Direct x to opengl wrapper has appeared.
History of the direct x 8 wrapper and the direct x 1-7 wrapper before us that wrappers have zero effect on wine development and historically very min effect on applications ported.
“A better solution is needed for the long term. Linux + Wine needs to support directx natively, and based on my own experience it’s extremely hit or miss.”
I couldn’t agree with less. We don’t need the **** that MS makes. Linux programmers can do better. It’s better just to intercept the calls and make better libraries which eventually, yes that word, the programs will run better on Linux than on Windows.
Sabon,
It’s funny, I keep getting responses purportedly disagreeing with me that I never the less agree with
Keep in mind that Wine is NOT about doing things better; it’s about bringing more commodity software to linux, that’s it. There’s really no insinuation here that linux is inferior.
This is what makes me so unsure what you disagree with me about. This is what the wine project is doing, and I made no suggestion to change that. My earlier statement was probably confusing, so please allow me to rephrase it so as to avoid further confusion:
Linux WITH Wine needs to support directx software directly, meaning that installing the proprietary MS DirectX redistributables is only a stop gap measure until Wine’s own libraries can implement DirectX fully with open source alternatives.
I’l get hate from the Valve and Linux fans (and for the record I love Steam and Valve games, own nearly all their catalog and I only game through Steam and Humble Bundles) but the simple fact of the matter is….sigh….the Source Engine? kinda shit.
I’m sorry but its true, that engine was out of date in 2007 and it hasn’t really gotten any better. the reason is its stuck at 9c (which is fricking ancient, we’ve had two and soon to be three DirectX releases since then) and it really hasn’t progressed much on either DirectX or on the OpenGL fronts.
So I really don’t know how much help a translation layer built for a 7+ year old engine is really gonna do. Maybe for legacy games? While its true that many games have a “Oh you are on XP?” crap mode (Saints Row series for example) the problem is the main game defaults to NON crap mode DX10 or DX11 which this just won’t help.
You do know that the just released Titanfall uses that “shit” engine, right?
Sure, it’s been modified… but it’s the Source engine. Enjoy.
You forgot to include “heavily” before “modified” in your comment. Further, those mods are what made using the source engine feasible to use in the first place and still get the desired results.
You saying the engine in Titanfall is modified but it’s still the source engine… is like saying a Nissan Skyline thats been modified with high performance street racing parts and kicks out 600+ horsepower, is still `just a Nissan Skyline`. In other words, don’t downplay the significance of the modifications – they make all the difference in the world.
Every game is based on modified engines. There is no “one size fits all” game engine.
You want to modify it in order for it to do whatever it is that you want it to do.
Please don’t downplay the importance of gameplay simply because you deem some game engine or another as being unworthy.
Don’t like it? Don’t buy it. Simple as that.
I don’t think every game is modified to the extent the Respawn developers seem to indicate it was.
To me, it more than likely might’ve been an early on technology decision that probably came back to bite them. I don’t know if they’d make the same call in hindsight.
They were probably aided significantly by the off client AI processing freeeing up what likely could’ve been a CPU bottleneck
It’s common for a game engine to be modified. Sometimes only slightly, other times very heavily as is the case with Titanfall. Whether or not the engine was modified was never in question.
You tried to pass off the heavily modified source engine used for Titanfall as just being the source engine. I corrected you and told you not to downplay how important those modifications are. I made no reference to gameplay or anything being unworthy. Rather than that nonsense you should have just said `you’re right, the Titanfall engine isn’t just the source engine when you consider the extent of modification done to it. My bad.`
Is there any information on just how far the modifications go, how extensive they were?
Well here is what the wiki says..”The company built upon the engine during development in features such as lighting, rendering, visibility, networking, and tools pipelines. The game also uses Microsoft’s cloud computing for multiplayer servers, physics, and artificial intelligence.”
So from the sounds of it they pretty much gutted the engine and built their own on top. Oh and the wiki confirms what the other poster said, they chose it specifically because it could do 60FPS on the 360 and PS3 which is 8 year old tech, not exactly a ringing endorsement for the Source engine not being ancient.
People can argue with me all they want but they an’t change the facts and the facts are that DirectX 9c was released in Apr 2004 which means it is a decade old, Source doesn’t support anything newer, in fact under the Source Engine on wikipedia one of the complaints listed is that the tools haven’t changed since GoldSRC which was released in 1998 so anyway you slice it Source is as old as dirt and behind the times. Could you build something good if you mod it enough? Titanfall proves this to be true but one could argue if they spent that same amount of effort on Unreal 2 engine they’d have the same and nobody here is arguing that Unreal 2 isn’t ancient.
At the end of the day while this release might be useful for legacy gaming modern games have progressed a pretty large amount since Apr 2004 and for those games this really won’t be of use.
Call me pendatic, but Respawn picked Valve’s Source Engine only because it could hit consistently 60fps on both the Xbox 360 and the PS3 (source: http://www.polygon.com/e3-2013/2013/6/12/4419110/titanfall-respawn). Given that they are almost 9 and 8 years old respectively, I don’t think that’s saying much about the technical prowess of the Source Engine but, on the other hand, I agree that this Direct3D-to-OpenGL translation layer is going to be useful nonetheless.
RT.
Edited 2014-03-12 08:05 UTC
That depends on what your definition of better is.
Is it running random Windows program X on Linux? Then yes.
Is it running Valve’s games on Linux? Then no.
As a matter of fact, all Valve games, that I had the time to test, run with wine without the need to install any additional stuff.
These were: Half Life 2, Portal 2 and Dota 2
Feel free to test the others and let me know.
The ToGL code probably only solves problems for developers who have an existing DirectX program they wish to use on OpenGL. It currently not a normal library or anything like that. You can’t use it as is. It to me seems just as a starting point for incorporating it in an existing code base.
If the Wine developers use anything of this, it is as a knowledge base on how to do translation of certain commands.
Lennie,
I suppose we don’t know yet if this is “pseudo Direct-X” or the real deal. However even assuming this code is only source level compatible with the DirectX API, it shouldn’t be too difficult to take that a build a binary compatible directX DLL. It’s a matter of getting the compiler to produce identical structures and calling conventions to those used by MS.
Alfman reality is the valve project will most likely never make it into wine. Wine is answering programs how they would have been on windows. This valve solution is designed more with source code access in mind. So complete replacement of functions is possible in the valve solution.
Yes the valve solution can be a lot faster than wine due to lower overheads.
Alfman wine project todo pages are always badly updated. 2013-07-14 last edit.
Also valve library is only part direct x 9c. So application source will have to be altered at times to support it.
It’s finally goddamn over. Star Citizen will have a Linux native port, and I am never booting into Windows ever again. Thanks for nothing Microsoft. I don’t need your bad software anymore. Good bye.
Wine is a great tool, but ultimately native ports are the way to go. Wine will never be as good. Simply because the volunteer efforts it relies on means that only popular parts of windows get ported. We see this in the fact that new DirectX games get a lot of love and attention, but older more obscure games still don’t run in wine. DirectX 5 and 6 titles with immediate mode rendering don’t run at all, and many games that relied on older Voodoo hardware just don’t run. On the other side of the equation, the moving target that is Windows means that DirectX 10,11, and 12 do not run in wine properly yet. The Xbox 360 helped with that by halting windows game development as everyone made Xbox ports. But ultimately unless the Xbox One causes a similar halt in Windows graphics development. Engine remake projects and native ports are more likely to make games flow to Linux.
Darkmage you miss understand wine. Large percentage of Wine developers are in fact paid full time to do it. But due to limited numbers their time is spent on what is classed will make the most number of programs work. Its not because they are Volunteers there is only X number of hours in day.
Most voodoo hardware using games do in fact work in wine you do have to install a glide wrapper just like on windows to play them. http://www.sierrahelp.com/Utilities/DisplayUtilities/GlideWrappers…. Yes it different game to game just like under windows.
Basically the don’t run claim of the voodoo stuff is wrong.
Direct 10,11 and 12 have not been that high up the wine project list mostly due to lack of games to test the functionality out with.
I was looking at running Rome Total War (the first one released in 2004) on my Linux install via wine, lots of fussing when a reboot is quicker.
Except id Software. :<
Not like iD is making any games these days anyway.