Sly wrote:
I would like to use someone else's engine, but I have never found one that I would deem suitable. Most engines I have seen, especially for Delphi, heavily use classes and dynamic strings. Yeah, they're easy to use, but horribly inefficient when it comes to memory usage. This may come from my commercial game development background, but efficiency is key to making a good engine.
Regarding strings: Note that even as simple operation as string assignment ("s1 := s2") produces (at least one) procedure call since Delphi (and also FreePascal) uses reference-counting to manage string (de)allocation.

object-s vs class-es: Object-s have one great advantage that you don't need to allocate them. On the other hand, there are some tricky situations with them that you need to worry about, like this one: if you have virtual method inside object, you _have_to_ call constructor to initialize VMT, otherwise, VMT is not initialized, and you get really stupid bug! :x
[/quote]