Quote Originally Posted by Sly
I've always considered the use of components or heavy use of Delphi classes to be overkill and quite inefficient. Maybe that comes from my console development background where you have to be careful about every function call that you make.
I don't quite agree with you on this. Enough to say that "OOP vs Procedural" topic can turn a talk-to-death discussion in similar way as "Pascal vs C++".

I believe though OOP can actually increase your overall efficiency since you're dealing with large amounts of small pieces of data that can be manipulated easily and precisely and thus you can optimize on large-level scale. (By the way, accessing a single class physically can be no different than accessing record via pointer, so what's the matter?)

In Asphyre Pro we used both - to optimize both on large and small-level scales (check Billboarding implementation, for instance, which can even use SSE to transform the vertices in AsphyrePrimitivesEx.pas).

It would be a little rough to say that to avoid using OOP is related to lack of experience (check http://www.everything2.com/index.pl?node_id=1323127) but I think that to use OOP is tricky, but if you use it right, you'll get long-term benefits than of Procedural alternative.