
We sat down again with Stephane Denis, of Realtech VR, for part II of our ongoing interview.
We expect to present the final, and third part of this interview tomorrow.
** Please note that english is not Stephane's native language, so bear with him as he tries his best to provide answers in english.
Welcome back Stephane...
Hello again!
We didn't have enough time last time to discuss your latest project, namely the directX - openGL wrapper, and it's use on BeOS. Can you explain more about this for our readership?
Yes, well V3X is a 3d engine, which is developed since 1995, was a MS DOS engine, and was ported for BeOS around 1996 for the Bebox and PowerPC.
...so it is now ported for Windows, MacOS and Windows CE.
The project has two goals : 1st, write an Win32 OpenGL wrapper in order to demonstrate that it is possible to emulate DirectX 8 using OpenGL (thing me and others people have done) and the second goal is to port that wrapper to BeOS.
At the end, any programmer would be able to write a DirectX 8 program under BeOS, eventually, recompile an existing DirectX 8 program for BeOS with few changes. I believe it would help a lot many people or game companies that would be interested to port some games for BeOS.
How much contact have you made with companies such as YellowTab, groups like Cosmoe, B.E.O.S., who might benefit from these technologies you're developing?
Well, at this time, BeOS was still here, so after releasing a first version, we saw that BeOS had difficulties and we stalled the production. One year later, we decided to release to code as Open source. Later again, the 'alternative' BeOS platforms came, but the project was already in Open Source. So, the sole really support was from Be, but later, they made an statement that such project wouldn't be necessary because OpenGL was available.
The problem is the current OpenGL implementation had a lot of problems, and the DirectX wrapper would have hidden them all (like initialisation, multithreading management, support for more functionnality (the OpenGL API was 1.1 under BeOS, that's means no extensions, no multitexturing, etc..)
We had indirect feedback from Open BeOS, asking us for adding the technology into the OS, but now it's open sourced! So there is no problems for that.
How many outstanding issues are there with your directX wrapper?
The main issue is the code compilation. I think it requires GCC 3.x. That was a stopper for BeOS 5, because DirectX uses some declarations which are not compatible with GCC 2.9.
And BeOS 5 only supports GCC 2.9. In the functionnality, there is still things missing like the vertex and pixel shaders, I think this is the most complex part, but again, solutions exist.
All the rest, rendering primitives, transformation, texture loading is working and have been demonstrated. Other stopper is OpenGL of course. This last should at least 1.2, see 1.3 and support OpenGL extensions.
Actually, we are focusing on the MacOS X version, because it has all of that, when it will completed, we will have just to wait that OpenGL has a better support on it.
In fact, theorically, we could write a wrapper that would use display drivers calls instead of using OpenGL, that's also a solution. There is so many possibilities in fact, that's why it's a very interesting project.
Can you tell us how man hours it took you to complete the win32 openGL wrapper? Also, how many hours have you spent so far in trying to port to BeOS?
I can't remember, but it wasn't so hard. I think it took few month, but later, it wasn't a priority for me. Of course, If for example, Yellow Tab release an new BeOS with a decent OpenGL support, I could finish the project quickly. In fact, it could in few months, or before the end of this year. Also, Direct X 9 is planned to be supported too, and with the work which has been done, it could released at the same time!
Actually me and some other guy are focusing to a better version of the wrapper, which should released for september. The biggest difficulty to write the wrapper is to know DirectX 8 programming AND OpenGL programming, and my experience on 3D engine (with V3X) helped a lot in fact.
Which operating systems are you presently working on/for at this point?
Actually i'm finishing the adaptation for MacOS X, which is fine because it uses the same compiler than BeOS, completing this port will also allow the Linux port for it. The Win32 version is just for 'demonstration' purpose, and it isn't our primary focus.
How important is this project to small gaming companies who are starting out on some new game this year?
Direct X become more and more important in fact for developers for many reasons. Because and DirectX game can be ported for XBOX easily, because writing an OpenGL game that's fully use latest video card is more and more difficult (you need to write different render path for ATI or nVidia, handles more and more OpenGL extensions). So DirectX is a good choice, but was not portable. The wrapper is aim to add portability. If DirectX 8 was ported on XBOX, was it shouldn't ported on other OS ? Previous version of DirectX relied on the COM interface, but DirectX 8 has less dependencies on COM, so porting DirectX is possible.
Of course, when OpenGL 2.0 will be released, the DirectX Wrapper might loss is interest a bit, but we have still time for that.
It sounds like portability is key to this project. How important is this in your opinion to a small gaming company? Why would they choose to use your layer versus targetting directly for the windows platform?
Portability is important because the language used by games is C or C++ and it is portable by definition. If your game works in two or more platform, then you can say that it's stable enough. Also, if you can release game for many platform at a time, it's more potential customers.
Games doesn't use OS specific things most of the time, they need just to be able to render in a window, play sounds, networking, and handle input.
Anyway, the wrapper is also to help people to port quickly their DX8 applications into non Windows platform. I think it's an interesting project. If you can recompile your application, with few changes, seeing that it works, why you shouldn't release the game on that platform and make money?
Have you had a lot of interest from gaming companies, whether they be small or large? How much interest?
I used to work on small ones and large ones. Now, most of them are doing a PS2 version, and then a PC version, later they need to adapt the DX8 code under Mac by asking a porting company. Of course, using the wrapper, they could have the Mac and even BeOS or linux version. Linux version is also more and more important. Biggest companies are doing a Linux version : Look Unreal Tournament 2003, Quake 3 etc..
The idea is to put BeOS on that list.
If you remember, BeOS was called 'Media OS' and has everything for gaming or at least has the potential for that.
A small clarification, if you don't mind... You said, "small ones and large ones.". What do you mean by that, exactly?
Small companies and larger companies
Care to name a few for us?
Well they are no more small anymore now. Yes, I used to work for Ubisoft once, Cryo (a french game companies but has disappeared), Darkworks (Infogrames / ATARI)
Thanks Stephane. I realize this is all the time you can spare for today, so I guess I will say goodbye for now, and we'll finish up part III tomorrow.
Right! See you tomorrow.
Stephane Denis is the creator of V3X, a gaming engine designed wtih portability in mind from the start, as well as lead developer of DXGL Wrapper, a directX wrapper for BeOS. Information on both projects can be found at the official home of
Realtech VR.