Niko: event driven or animators?

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
uzik
Posts: 24
Joined: Wed Sep 22, 2004 4:56 pm

Niko: event driven or animators?

Post by uzik »

Hey Niko,

Will IrrLicht, when it's finished, be event driven or will we write animator
classes for everything? I notice there are no Collision or Deletion events,
and the FPS camera uses a custom animator.

If we're going to write custom classes it would be nice to be able
to derive from nodes. The only problem there is the library does all
the node creation. I can't make a derived node class and use it
with the library because I don't create the nodes.
niko
Site Admin
Posts: 1759
Joined: Fri Aug 22, 2003 4:44 am
Location: Vienna, Austria
Contact:

Post by niko »

Yep, that's a small problem. Deriving is not that easy with all classes irrlicht, if you use it as dll. However, currently you could simply reconfigure irrlicht and make it link directly static to your project. But maybe I'll find another way how this could be easily achieved in next versions. Ideas anyone?
uzik
Posts: 24
Joined: Wed Sep 22, 2004 4:56 pm

static linking

Post by uzik »

I didn't think the problem with inheritance was due to it being a DLL.
Maybe that's something I did not know about though. I can derive classes
from Microsoft MFC and they're DLL based I thought.

I believe the problem is a design choice made for Irrlicht.

Irrlicht hides the classes used internal to the engine. The user
sees a different class derived from the same parent. This makes
it impossible to pass the engine a derived class (such as a node).
The internal information in the hidden classes could be very useful.
I believe it would be a big improvement to expose that information.
It would also make the Irrlicht simpler if only one class needed to be
maintained instead of two similar ones.

Examples:

I put a mesh into the scene and did some
transforms on it. I wanted to look at the mesh after the transforms
were applied. I could not because it was hidden.

If I've created an object and put a automatic delete on it
how can I be notified if the object is deleted? I can't get to
the post or pre render method, there are no events, and
no way to invoke a callback.

I tried to derive a class from the 3d sprite. I wanted to attach a 2d
sprite to the 3d object so information about the object could be
presented. It should have been easy but was also impossible
without rewriting the engine.

About DLL's and static linking:

I've argued with many people over many years
that DLL's are heavily over used and used incorrectly.
I think Microsoft has finally seen the mess they created
with them and responded with a redesign in .NET. A DLL is
great if you have two applications running that are going
to use the same large piece of code at the same time. You only need
to use memory to load one copy of the code. If the shared code is
not large the large overhead for loading the DLL outweighs any
benefits. On a personal PC, if you're developing a game, it's pretty
much worthless. The chances of running two separate games on the
same PC at the same time are almost zero. When running processor
intense games you should try not to run anything else at the same
time. It might be useful in a multi monitor setup, but even then
I believe you will be running one application with two outputs,
not two different applications that use Irrlicht.

I liked Irrlicht because it was simple and fast, but I've decided not
to use it. I couldn't make it do what I needed without having
to rewrite large portions of it. I'm searching for an alternative
now.
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

Post Reply