Dirrlicht a binary D port of irrlicht

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
Post Reply
ilewis
Posts: 6
Joined: Thu Feb 24, 2011 12:31 pm

Dirrlicht a binary D port of irrlicht

Post by ilewis »

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
Last edited by ilewis on Tue Apr 05, 2011 4:40 pm, edited 1 time in total.
serengeor
Posts: 1712
Joined: Tue Jan 13, 2009 7:34 pm
Location: Lithuania

Post by serengeor »

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)
Working on game: Marrbles (Currently stopped).
Bate
Posts: 364
Joined: Sun Nov 01, 2009 11:39 pm
Location: Germany

Post by Bate »

There's no multiple inheritance in D which is kinda important to a lot of people, including me. ;)
Never take advice from someone who likes to give advice, so take my advice and don't take it.
serengeor
Posts: 1712
Joined: Tue Jan 13, 2009 7:34 pm
Location: Lithuania

Post by serengeor »

Bate wrote:There's no multiple inheritance in D which is kinda important to a lot of people including me. ;)
Well That sucks.... ALOT :?
Guess I'll stay with c++ for a while.
Working on game: Marrbles (Currently stopped).
greenya
Posts: 1012
Joined: Sun Jan 21, 2007 1:46 pm
Location: Ukraine
Contact:

Post by greenya »

Looks like a huge work have been done.
I heard that D got most great from C++ and managed languages.
This is really great.
Luben
Posts: 568
Joined: Sun Oct 09, 2005 10:12 am
Location: #irrlicht @freenode

Post by Luben »

D seems like a very impressive language. Had this port been available a few months ago, me and me mates would've been coding our current project in D. We might decide to change language after hearing about this, since our codebase isn't too big yet.
ilewis
Posts: 6
Joined: Thu Feb 24, 2011 12:31 pm

Post by ilewis »

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.
ilewis
Posts: 6
Joined: Thu Feb 24, 2011 12:31 pm

Post by ilewis »

DIrrlicht can now load and render Quake3 BSP levels in OpenGL and compiles and runs Example 2 from the Irrlicht sdk.
ilewis
Posts: 6
Joined: Thu Feb 24, 2011 12:31 pm

Post by ilewis »

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.
Kriegy
Posts: 2
Joined: Wed Mar 16, 2011 9:36 pm

Post by Kriegy »

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 ?
ilewis
Posts: 6
Joined: Thu Feb 24, 2011 12:31 pm

Post by ilewis »

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
Kriegy
Posts: 2
Joined: Wed Mar 16, 2011 9:36 pm

Post by Kriegy »

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 ?
ilewis
Posts: 6
Joined: Thu Feb 24, 2011 12:31 pm

Post by ilewis »

Ah yes, I didn't realize you were on linux :P, 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 :P

Lewis
Post Reply