Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

irrlicht

Name: Anonymous 2009-09-30 1:54

Anyone have any experience with Irrlicht? I really hate the design of the thing. What is the deal with every fucking class being wrapped by a pure virtual interface?

Take IImage and CImage for example. I understand the need for an interface to wrap different underlying libraries, but the whole *POINT* of IImage is that it holds platform independent image data. The parameters of the data are in the fucking interface for crying out loud! You would think I could just create one from a blob of pixel data, but no. That implementation is hidden away. I have to either

a) Copy CImage out from the source so I can use it;
b) Implement an IImage myself (including all the locking and mutability); or
c) Statically link the whole fucking library.

How completely stupid is that? And EVERY SINGLE CLASS is like this, especially ones you would want to actually supply data to yourself. All the texture shit, meshes, animation data, fucking everything. The thing is completely unusable unless I put all my shit in stupid goddamn .x files and jpegs.

Also, why is it so huge? Why is 01.HelloWorld over 20 megs on Linux? Why is it that even when I strip it, it's still 3 megs? It doesn't even contain the media! Is it just because it's a gigantic template whore?

Does anyone have any suggestions for engines that aren't so broken (preferably under permissive licenses)? Or should I just use SDL and do the fucking rest myself?

Name: Anonymous 2009-09-30 2:36

What is the deal with every fucking class being wrapped by a pure virtual interface?

Read Large-Scale C++ Software Design.

Name: Anonymous 2009-09-30 11:26

How can Irrlicht be broken when it works as it is intended?

Name: Anonymous 2009-09-30 12:01

It's ENTERPRISE QUALITY

Name: Anonymous 2009-09-30 12:31

>>1
Sorry to break it to you, but you aren't cut out to write professional code.

Name: TRUE TRUTH EXPERT !tQq1sLlmuk 2009-09-30 13:00

>>3
bROKEN BY DESIGN.

Name: Anonymous 2009-09-30 15:36

I always wanted to post this in their forums, but it wasn't quite constructive enough. Of course on /prog/, that's not a problem.

Note that this evaluation was from almost exactly 1 year ago.

Problems
x no clear list of conventions used (transformation order, euler angle order, matrix layout, axis definition, etc.)
x material system sucks (how?)
x separate world and eye matrix unecessary
x vertex types suck:
____ x no way to have 3d (s, t, w) texture coords
____ x no way to have 2d vertex coords
____ x no way to use glColor (i.e. no way to have colorless verticies)
x rendering pipeline sucks:
____ x no access to the pipeline between OnAnimate() and render(), so you only get old data between frames
x no way to use fixed point math
x doesn't use hardware to speed up matrix manipulations
x opengl projection matrix is buggy (and still is)
x missing ability to change FrontFace between CC and CCW
x missing ability to globally disble color rendering for just depth rendering, or visa-versa
x color types suck (but was fairly easy to mostly fix, though it really needs a wider variety than just ABGR, RGB565 and RGBA5551)
x apparently the model loading code is a mess (not unexpected, but at least plib is clearer about what is supported)
x missing math:
____ x quaternion - rotateVect
____ x plane - mirror point
____ x transformation classes: using quaternions, euler, angle/axis, etc.
____ x glFrustum

Pluses
+ image loading was easily replaced with embedded sdk
+ variety of model formats are nice

Name: Anonymous 2009-09-30 16:57

"separate world and eye matrix unecessary"

How is that unnecessary? You need the world matrix for a lot of view independent purposes.

Name: Anonymous 2009-09-30 19:53

>>2
How the fuck does wrapping everything help scalability? You do know that 'private' is for encapsulation, right? You do know that you can make constructors private and friend factories if that's what you're worried about? And if you find later that you do need multiple implementations of a shared interface, you do know you can actually convert a class this way without external code changes, right?

The *only* reasoning I can see behind this is so that the internal class structure can be changed at will in a shared object without having to recompile dependent binaries. There are better solutions to this, e.g. the pimpl idiom; but either way, such a restriction imposed on a high-performance 3D game engine is really fucking stupid to begin with.

>>5
Right, I guess I should just quit my day job then. If Irrlicht is not broken, then is anyone going to give me a valid solution to my problem?

Name: Anonymous 2009-09-30 19:56

>>7
Also, is there some other engine that is better than these two? Is G3D any good? I've used CS somewhat but it's also a template whore, and kind of way too large in scope. Never used OGRE, even though it seems the most popular foss engine, because it only recently dropped from GPL to LGPL...

Name: Anonymous 2009-09-30 22:17

I agree with >>8. I much prefer to have a separate World and View matrix.

Name: Anonymous 2010-12-06 9:57

Back to /b/, ``GNAA Faggot''

Don't change these.
Name: Email:
Entire Thread Thread List