Dirrlicht a binary D port of irrlicht
Dirrlicht a binary D port of irrlicht
I have been working on in my spare time (a few weeks) a complete port of irrlicht to Digital Mars D, As of writing this there is MUCH work to be done, however, a core OpenGL driver, and most interface's have been ported.
At the moment it only supports windows with OpenGL, A fair wack of the GUI is ported, All scene nodes except for quake shaders are ported. Some Mesh loaders still need to be ported. I have turned the engine toward easier stereoscopic use. However everything is backward compatible with Standard Irrlicht at this time.
You can find a current WORKING snapshot on my SVN:
http://www.retsim.com/svn/DIrrlicht/
Also a wiki here:
http://www.retsim.com/wiki/index.php/DIrrlicht
If your interested in taking part please let me know.
You may ask why D? And the reasons are quite simple, D is a VERY powerful language that takes the best parts of Java C++ and C# and combines them into one language that is compiled to native byte-code. It is almost as fast as C++ (in some things), it has a built in garbage collector, so you no longer need to have an IReferenceCounted. It is module oriented, which makes projects much easier to understand as there are no "includes" and compile time is unbelievable. Array's and strings are automatically built into the language and its run-time libraries are very complete.
For more information, refer to the Digital Mars D website.
Cheers,
iLewis
At the moment it only supports windows with OpenGL, A fair wack of the GUI is ported, All scene nodes except for quake shaders are ported. Some Mesh loaders still need to be ported. I have turned the engine toward easier stereoscopic use. However everything is backward compatible with Standard Irrlicht at this time.
You can find a current WORKING snapshot on my SVN:
http://www.retsim.com/svn/DIrrlicht/
Also a wiki here:
http://www.retsim.com/wiki/index.php/DIrrlicht
If your interested in taking part please let me know.
You may ask why D? And the reasons are quite simple, D is a VERY powerful language that takes the best parts of Java C++ and C# and combines them into one language that is compiled to native byte-code. It is almost as fast as C++ (in some things), it has a built in garbage collector, so you no longer need to have an IReferenceCounted. It is module oriented, which makes projects much easier to understand as there are no "includes" and compile time is unbelievable. Array's and strings are automatically built into the language and its run-time libraries are very complete.
For more information, refer to the Digital Mars D website.
Cheers,
iLewis
Last edited by ilewis on Tue Apr 05, 2011 4:40 pm, edited 1 time in total.
Cool, I read about D language some time ago, tough hadn't got much time to do something with it.
I'd like to try it out, but I'm too busy with my own project atm.
Hows the performance of samples compared to c++ ones?(if you had written any)
I'd like to try it out, but I'm too busy with my own project atm.
Hows the performance of samples compared to c++ ones?(if you had written any)
Working on game: Marrbles (Currently stopped).
No worries, I shall continue my efforts, I generally get around 8 hours a day free time or more. So it may be some time until a working version is available.
Multiple inheritance does come into play in irrlicht i can respect that, however, there are in fact ways around it. And as such am implementing the port in such a way.
Multiple inheritance does come into play in irrlicht i can respect that, however, there are in fact ways around it. And as such am implementing the port in such a way.
DIrrlicht now has enough implementation to build and compile example 8 and example 4.
In reply to the speed of the engine, there is NO significant gain or loss in FPS. Another interesting point id that somebody brought up multiple inheritance - D can in fact do multiple inheritance, but, only on interfaces. It can not derive from multiple CLASSES! which is handy because Irrlicht mainly uses multiple interface inheritance. And on the occasional occurrence that it used more than one class to derive something, i used some work around which work fine.
In reply to the speed of the engine, there is NO significant gain or loss in FPS. Another interesting point id that somebody brought up multiple inheritance - D can in fact do multiple inheritance, but, only on interfaces. It can not derive from multiple CLASSES! which is handy because Irrlicht mainly uses multiple interface inheritance. And on the occasional occurrence that it used more than one class to derive something, i used some work around which work fine.
Hi,
I'm interested in contributing to this project.
I'm a beginner in the 3D world, but I started playing with Irrlicht some months ago, and after I played with D, and I like both
I think I can translate C++ sources to D sources, as soon as it doesn't require some 3D-knowledge that I don't have yet.
Are you using D2 and is the work you have done windows-only at this step ?
I'm interested in contributing to this project.
I'm a beginner in the 3D world, but I started playing with Irrlicht some months ago, and after I played with D, and I like both
I think I can translate C++ sources to D sources, as soon as it doesn't require some 3D-knowledge that I don't have yet.
Are you using D2 and is the work you have done windows-only at this step ?
Kriegy, Welcome!
Yes The work i have done to date is only using OpenGL and Windows. However, I have almost completely translated the scene manager and all scene nodes.
The only things still to translate/port is the GUI controls and various Mesh Loaders.
I have in fact already added several features independent of Irrlicht, such as an MD5 loader supplied by another member on this forum.
Please if you would like to chat, you can contact me at ilewis_isradd at hotmail dot com. I am also on facebook if that is easier.
Alternatively you may visit http://www.retsim.com/wiki/index.php/DIrrlicht for a little more information. I have set up an independent DIrrlicht forum http://www.retsim.com/forums/, feel free to register and get involved!
I now only upload subversion revisions that build properly. Early in the peace (A few weeks ago) I uploaded several broken development snapshots.
The project uses DevIL for image loading and not built in loaders anymore.
edit: I forgot to add: Yes it is with D2 (using phobos) and i am keeping the source compatible with the very latest stable D2 versions. It uses win32 headers from dsource and derelict. (Refer to the wiki link i posted)
Cheers
Yes The work i have done to date is only using OpenGL and Windows. However, I have almost completely translated the scene manager and all scene nodes.
The only things still to translate/port is the GUI controls and various Mesh Loaders.
I have in fact already added several features independent of Irrlicht, such as an MD5 loader supplied by another member on this forum.
Please if you would like to chat, you can contact me at ilewis_isradd at hotmail dot com. I am also on facebook if that is easier.
Alternatively you may visit http://www.retsim.com/wiki/index.php/DIrrlicht for a little more information. I have set up an independent DIrrlicht forum http://www.retsim.com/forums/, feel free to register and get involved!
I now only upload subversion revisions that build properly. Early in the peace (A few weeks ago) I uploaded several broken development snapshots.
The project uses DevIL for image loading and not built in loaders anymore.
edit: I forgot to add: Yes it is with D2 (using phobos) and i am keeping the source compatible with the very latest stable D2 versions. It uses win32 headers from dsource and derelict. (Refer to the wiki link i posted)
Cheers
First, the work you've done is amazing ! Many thanks for that, I hope it wille be usefull to a lot of people (including me, of course =).
The bad news is that I failed and refailed using your work :/
I'm using Linux on a 64 bits architecture, and I have some troubles with derelict ; I cannot use it for the moment. Will retry and retry again...
For the linux thing, I started to look at the code needed to use DIrrlicht on Linux, I just don't understand a lot of things right now but I don't spent enough time on that. However, I'm confident, it seems to be not very difficult to just translate, so when I will be able to run the Derelict bindings I hope many things will happens ;)
So, that won't be easy for me, at least with these versions of dmd and gdc (I used both) and on my OS. I will continue to try, maybe I missed something.
You've done a great work, and almost complete, so what will help you now ?
I also see you started to change some things from the original engine, like you said the MD5 loader and the "DevIL" thing, do you plan to "fork" it ? If yes, what are the main ideas for that ?
The bad news is that I failed and refailed using your work :/
I'm using Linux on a 64 bits architecture, and I have some troubles with derelict ; I cannot use it for the moment. Will retry and retry again...
For the linux thing, I started to look at the code needed to use DIrrlicht on Linux, I just don't understand a lot of things right now but I don't spent enough time on that. However, I'm confident, it seems to be not very difficult to just translate, so when I will be able to run the Derelict bindings I hope many things will happens ;)
So, that won't be easy for me, at least with these versions of dmd and gdc (I used both) and on my OS. I will continue to try, maybe I missed something.
You've done a great work, and almost complete, so what will help you now ?
I also see you started to change some things from the original engine, like you said the MD5 loader and the "DevIL" thing, do you plan to "fork" it ? If yes, what are the main ideas for that ?
Ah yes, I didn't realize you were on linux , I do have a linux box at home here, however I am a full time uni student so finding time to port huge amounts of code at the moment difficult.
If I get a few spare hours ill have a go at getting it ported to linux. I have never used dmd or gcd on linux before. But, having said that, It shouldn't be a huge issue. Derelict is definitely cross platform, i just have not ported the linux driver.
Regarding forking it, I am not sure. I have begun (and finished, it still has bugs) porting XEffects to it. Among several other subtle modifications.
I have been provided the opportunity to use the virtual reality laboratory at my University whenever I like for personal software development. Its a stereoscopic lab, using OpenGL Quadbuffereing (Nvidia Quadro 4000FX cards). And so I have been modifying the engine to work with this and so far so good. I have a few more GUI classes and Mesh Loaders to port now and the majority of work left will be cross platform devel and bug fixing.
Please inbox me if you would like to get properly involved and begin committing code
Lewis
If I get a few spare hours ill have a go at getting it ported to linux. I have never used dmd or gcd on linux before. But, having said that, It shouldn't be a huge issue. Derelict is definitely cross platform, i just have not ported the linux driver.
Regarding forking it, I am not sure. I have begun (and finished, it still has bugs) porting XEffects to it. Among several other subtle modifications.
I have been provided the opportunity to use the virtual reality laboratory at my University whenever I like for personal software development. Its a stereoscopic lab, using OpenGL Quadbuffereing (Nvidia Quadro 4000FX cards). And so I have been modifying the engine to work with this and so far so good. I have a few more GUI classes and Mesh Loaders to port now and the majority of work left will be cross platform devel and bug fixing.
Please inbox me if you would like to get properly involved and begin committing code
Lewis